Recórrer totes les fulles d'un llibre d'EXCEL i recuperar determinades dades que escriurem en una fulla que anomenarem resum amb Codi VBA insertat en un botó vinculat a una macro
Abans de res has de guardar el fitxer d'EXCEL en format .xlsm (Libro de Excel habilitado para macros)
Després crearem un codi VBA per a Excel que fa el següent:
-
Recorre totes les fulles del llibre, excepte la fulla de recopilació (anomenada "Resum").
-
Busca dues dades en una fila i columna específica de cada fulla.
-
Escriu aquestes dades en una fila i columna específica de la fulla "Resum".
S'ha de crear un botó que activi aquest procés.
Com utilitzar el codi:
-
Obre l'editor de VBA a Excel (Alt + F11).
Enganxa el codi proporcionat. ( Veure al final del document )
-
Crea una fulla anomenada "Resum" per recopilar les dades.
-
Insereix un botó al full (Desenvolupador > Controls) i assigna-li la macro
RecopilarDades
. -
Executa el botó per obtenir les dades de cada fulla.
* Nota 1: Per captar l'adreça de la cel·la una fila superior a una cel·la específica en VBA, pots fer servir aquesta sintaxi:
vbacel.Offset(-1, 0).Address
Explicació:
-
cel.Offset(-1, 0)
: Es desplaça una fila amunt i 0 columnes a la dreta/esquerra respecte a la cel·la original. -
.Address
: Captura l'adreça d'aquesta nova cel·la.
Exemple d'implementació en el teu codi:
vbawsResum.Cells(filaResum, 3).Value = cel.Offset(-1, 0).Address ' Adreça de la fila superior
✅ Nota: Assegura't que no estàs a la primera fila, o et donarà un error. Pots afegir una comprovació:
vbaIf cel.Row > 1 Then wsResum.Cells(filaResum, 3).Value = cel.Offset(-1, 0).Address Else wsResum.Cells(filaResum, 3).Value = "Primera fila" End If
- Obtén l'enllaç
- X
- Correu electrònic
- Altres aplicacions
Comentaris
Publica un comentari a l'entrada