Selectionner une plage de cellules VBA
simonbaron
Messages postés
10
Statut
Membre
-
melanie1324 Messages postés 1561 Statut Membre -
melanie1324 Messages postés 1561 Statut Membre -
Bonjour,
J'ai un problème avec ma macro. Je devrais être capable de selectionner dans plusieurs tableaux une plage de cellules dans l'avant-dernière et dernière colonne completée et les copier dans un seul fichier. Je suis capable de copier la dernière cellule d'une ligne (ex. Range("IV1").end(xlToLeft).Select), mais pas une plage. Exemple: j'ai besoin de copier la plage "U3:V11", la colonne V étant la dernière colonne completée du tableau, en sachant que le tableau est alimenté chaque mois et donc le mois prochain la dernière colonne completée sera par exemple la Z (et donc ma plage sera la "Y3:Z11").
J'espère avoir été assez clair!!!
Merci beaucoup pour votre aide
J'ai un problème avec ma macro. Je devrais être capable de selectionner dans plusieurs tableaux une plage de cellules dans l'avant-dernière et dernière colonne completée et les copier dans un seul fichier. Je suis capable de copier la dernière cellule d'une ligne (ex. Range("IV1").end(xlToLeft).Select), mais pas une plage. Exemple: j'ai besoin de copier la plage "U3:V11", la colonne V étant la dernière colonne completée du tableau, en sachant que le tableau est alimenté chaque mois et donc le mois prochain la dernière colonne completée sera par exemple la Z (et donc ma plage sera la "Y3:Z11").
J'espère avoir été assez clair!!!
Merci beaucoup pour votre aide
A voir également:
- Selectionner une plage de cellules VBA
- Somme de plusieurs cellules excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Verrouiller cellules excel - Guide
- Excel concatener une plage de cellules ✓ - Forum Excel
- Incompatibilité de type vba ✓ - Forum Programmation
1 réponse
Bonjour,
Pour pouvoir le faire, il te suffit de deux boucles :
i=1
do while cells(i,1) <> "" 'travailleras jusqu'à ce que la ligne i et la colonne 1 n'a rien ==> compte les lignes :
i=i+1
loop
i=i-1
j=1
do while cells(1,j) <> "" 'idem mais pour les colonnes
j=j+1
loop
j=j-1
'pour copier les deux dernières colonnes :
range(cells(1,j-1),cells(i,j)).copy
Pour pouvoir le faire, il te suffit de deux boucles :
i=1
do while cells(i,1) <> "" 'travailleras jusqu'à ce que la ligne i et la colonne 1 n'a rien ==> compte les lignes :
i=i+1
loop
i=i-1
j=1
do while cells(1,j) <> "" 'idem mais pour les colonnes
j=j+1
loop
j=j-1
'pour copier les deux dernières colonnes :
range(cells(1,j-1),cells(i,j)).copy