Dans le [if range("G" & i).value = 11 caractères] la macro va compter pour chaque cellule le nombre de caractères contenus ?
C'est du pseudo code, donc utiliser la bonne syntaxe et les bonnes instructions (voir la fonction Len)
Cette instruction étant dans une boucle For i ........Next, à chaque itération i prend une nouvelle valeur . C'est comme si on avait range(G3) puis range(G4) puis G5 ...
l'idée est de garder les 2 derniers caractères d'un nombre de 11 chiffres pour chaque cellules non vide de la colonne G, avant de CC / CV cette colonne sur une autre feuille. Je pense que c'est plus simple que de créer une nouvelle colonne "tampon" avant de faire un CC / CV.
plutôt qu'un copier coller on peut écrire directement dans une colonne d'une autre feuille:
par exemple pour écrire dans la feuille "AUTREFEUILLE" en colonne B:
dim ligne as Integer
For i= 3 to Range("G" & Rows.Count).End(xlUp).Row ' de la ligne 3 à dernière ligne remplie de colonne G
if range("G" & i).value = 11 caractères, then
ligne=ligne + 1 ' à chaque itération on augmente le N° de ligne pour écriture
WorkSheets("AUTREFEUILLE").range("B" & ligne).Value = Right(range("G" & i).Value, 2)
end if
Next
Mais comme le nombre de ligne est indéfinissable ...
Non justement.
l'instruction Range("G" & Rows.Count).End(xlUp).Row donne le N° de la dernière ligne remplie de la colonne G
et l'instruction For i= 3 to Range("G" & Rows.Count).End(xlUp).Row donne:
dans une boucle qui démarre à 3 et finit au N° de la dernière ligne remplie de la colonne G, faire les instruction suivantes