Una famiglia di software per fogli di calcolo Microsoft con strumenti per l'analisi, la creazione di grafici e la comunicazione dei dati.
Allora.
Ho un foglio Exel,
devo ciclare su tutte le righe da E3 a E999
prendermi per ogni riga il valore A corrispondente alla riga.
Questo valore và ricercato nel Foglio BASE, ciclando le righe A1:A9999 , quando trovo la corrispondenza del valore devo fare un ulteriore confronto con la cella B (corrispondente alla riga) foglio BASE con una Variabile che mi sono salvata e derivante dal foglio1.
Se trovo corrispondenza inserisco nel foglio1 sulla cella in cui mi trovo il valore C corrispondente alla riga foglio BASE.
Praticamente è una corrispondenza su due fogli, solo che devo verificare più dati posizionati sulla stessa riga del foglio BASE e portarli nel foglio1 attivo solo se campo A e campo B sono uguali alle variabili che trovo sul foglio1 alla riga corrispondente al ciclo.
Per questo pensavo di fare prima un ciclo sul foglio1 per riga, e poi al suo interno un ciclo sul foglio BASE per cercarmi i valori corrispondenti.
Il primo ciclo mi esce tranquillamente, quello al suo interno non riesco a dargli il riferimento al foglio BASE per il ciclo, continuo a ciclare sullo stesso foglio.
Capito ancora poco(non ti preoccupare, colpa mia).
Se devi ciclare 997 celle del primo foglio, confrontandole con 9999 celle del secondo foglio, raggiungi un totale di 9.969.003 cicli. Un bel po' di tempo macchina....
Questa macro, comunque, confronta le celle A3:A999 del Foglio1 con le celle A1:A9999 del Foglio2 e se trova una corrispondenza, colora di blu la cella C del Foglio1. Serve solo per far capire come confrontare celle di due fogli diversi. Tempo biblico....:
Public Sub m()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim lng1 As Long
Dim lng2 As Long
With ThisWorkbook
Set sh1 = .Worksheets("Foglio1")
Set sh2 = .Worksheets("Foglio2")
End With
With sh1
For lng1 = 3 To 999
For lng2 = 1 To 9999
If .Range("A" & lng1).Value = _
sh2.Range("A" & lng2).Value Then
.Range("C" & lng1).Interior.ColorIndex = 5
End If
Next
Next
End With
Set sh1 = Nothing
Set sh2 = Nothing
End Sub