|
| HOMEPAGE | INDICE FORUM | REGOLAMENTO | ::. | NEI PREFERITI | .:: | RSS Forum | RSS News | NEWS web | NEWS software | |
| PUBBLICITA' | | | ARTICOLI | WIN XP | VISTA | WIN 7 | REGISTRI | SOFTWARE | MANUALI | RECENSIONI | LINUX | HUMOR | HARDWARE | DOWNLOAD | | | CERCA nel FORUM » | |
03-05-2012, 16.12.36 | #1 |
Newbie
Registrato: 03-05-2012
Messaggi: 1
|
Ciclo For su un foglio diverso da quello attivo
ho un problema con una macro che stò cercando di finire. Praticamente dovrei posizionarmi sul foglio attivo corrente, ciclare su determinate colonne per riga (e fin qui tutto bene) per ogni riga dovrei salvarmi il valore, ricercare il valore su un altro foglio exel al range A1:A999. A questo punto dovrei prendermi il valore B1 e confrontarlo con quello del ciclo precedente. Se la cella ha il valore vuoto vorrei uscire dal 2* ciclo e proseguire con il 1* ciclo. Vi posto il codice inserendo il maiuscolo le parti che non riesco a completare. Windows(oldfile).Activate 'Sheets(foglioatt).Activate Worksheets(foglioatt).Activate Dim myVal As String Dim myVal2 As String 'legge il primo valore myVal = Range("d1").Value Set D = Worksheets("Base") 'inizia il ciclo dalla riga 1 all'ultima della colonna A For r = 3 To Range("e78").End(xlUp).Row Range("e" & r).Select ActiveCell.Interior.ColorIndex = 3 'rosso myVal2 = Range("a" & r).Value ********** PARTE DA FINIRE ************************* QUI DOVREI CICLARE SU UN ALTRO FOGLIO CHE SI CHIAMA "BASE" For g = 2 To Range("a9999").End(xlUp).Row CONFRONTO I VALORI DEL 2* FOGLIO CON QUELLI DEL PRIMO If Range("a" & g).Value = myVal2 Then SE TROVO IL VALORE VERIFICO SE B1 DEL PRIMO FOGLIO è UGUALE A QUESTO (B1 LO SALVO IN UNA VARIABILE) Else If Range("a" & g).Value = "" Then SE TROVO VUOTO FOTTEI USCIRE SOLO DAL CICLO FOR G MA PROSEGUIRE CON FOR R End If End If Next g Next r Range("E1:E78").Interior.ColorIndex = 2 'bianco Attendo un aiutino da chi ne capisce più di me :-) io qui mi sono arenata e non riesco a proseguire. grazie mille |
03-05-2012, 23.27.50 | #2 | ||
Guest
Messaggi: n/a
|
Rif: Ciclo For su un foglio diverso da quello attivo
Ciao Perla e benvenuta!
Per il momento ho potuto scrivere questo: Codice:
Sub zzz() Dim myVal As String Dim myVal2 As String Dim Sh1 As Worksheet, Sh2 As Worksheet Set Sh1 = ActiveSheet 'Sh1 adesso punta al foglio corrente Set Sh2 = Worksheets("Base") 'Sh2 punta al foglio di nome Base myVal = Range("d1").Value 'legge il primo valore 'più avanti parli invece di cella B1, è questa? With Sh1 '<== i riferimenti che iniziano col punto sono relativi a questo foglio For r = 3 To .Range("e78").End(xlUp).Row .Cells(r, 5).Interior.ColorIndex = 3 'Range("e" & r) myVal2 = .Cells(r, 1) 'Range("a" & r).Value For g = 2 To Sh2.Range("a9999").End(xlUp).Row '<==Sh2 punta al foglio di nome Base 'CONFRONTO I VALORI DEL 2* FOGLIO CON QUELLI DEL PRIMO If Sh2.Cells(g, 1) = myVal2 Then 'If Range("a" & g).Value = myVal2 Then ' SE TROVO IL VALORE VERIFICO SE B1 DEL PRIMO FOGLIO è UGUALE A QUESTO (B1 LO SALVO IN UNA VARIABILE) ElseIf Sh2.Cells(g, 1) = "" Then ' If Range("a" & g).Value = "" Then Exit For 'SE TROVO VUOTO FOTTEI USCIRE SOLO DAL CICLO FOR G MA PROSEGUIRE CON FOR R End If Next g Next r Range("E1:E78").Interior.ColorIndex = 2 'bianco End With ' Sh1 End Sub Quota:
Quota:
Parli di cella B1 ma nel codice assegni D1 alla prima variabile, sono la stessa cella? Il confronto lo puoi includere nella condizione della stessa if Codice:
If Sh2.Cells(g, 1) = myVal2 AND .Range("B1")= myVal2 Then ... -usare il metodo Select e fare riferimento ad Activecell è un buon sistema per sbagliare! questo è il metodo usato dal registratore di macro, ma per un essere umano è inutile; fai riferimento direttamente al range. -nel codice ho usato la proprietà Cells che è particolarmente comoda nei cicli o se devo compiere operazioni diverse a partire da una certa cella. Al contrario della notazione A1 i due numeri fra parentesi sono Cells(riga,colonna) -quando devi fare riferimenti a celle in fogli diversi usa le variabili Codice:
Sh1.Range("A1") ' cella A1 di activesheet Sh2.Range("A1") ' cella A1 del foglio "Base" Dovresti riuscire a finire da sola, ma se hai problemi... |
||
Utenti attualmente attivi che stanno leggendo questa discussione: 1 (0 utenti e 1 ospiti) | |
Strumenti discussione | |
|
|
Discussioni simili | ||||
Discussione | Autore discussione | Forum | Risposte | Ultimo messaggio |
Quelli che... | Trinity | Chiacchiere in libertà | 117 | 09-03-2005 02.03.43 |
Problemi col CICLO DEL SISTEMA | ilcielo | Windows 7/Vista/XP/ 2003 | 3 | 05-12-2004 14.04.39 |
Ancoa VBA in Excel, creare Macro estrazione dati da un foglio | Gabry | Programmazione | 6 | 16-05-2004 15.19.03 |
Foglio Excel | Skipper | Office suite | 8 | 21-04-2004 12.52.03 |
Riasumere dati in unico foglio in Excel | Gabry | Software applicativo | 6 | 21-02-2004 01.19.35 |