Copier un tableau dont le nombre de ces lignes est variable

Résolu/Fermé
nihadlahit - Modifié par Chris 94 le 25/07/2016 à 15:05
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 - 26 juil. 2016 à 17:06
Bonjour,

je suis débutante en vba et je suis en train de créer une macro pour mon stage. Le but est de copier un tableau et de le mettre dans une autre feuille . Le problème est que le nombre de lignes de mon tableau est variable.
j'ai essayé le code suivant mais ça ne marche pas du tout
For i = 2 To Cells(Rows.Count, 8).End(xlUp).Row
Sheets("F1").Select
Range("H" & i & ":J" & i).Select
Selection.Copy
Sheets("F2").Select
Range("H" & i & ":J" & i).Select
ActiveSheet.Paste
next i


pouvez vous m'aider a trouver la bonne solution, Merci a vous !

Amicalement,

2 réponses

ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
Modifié par ThauTheme le 25/07/2016 à 17:14
Bonjour Nihadlahi, bonjour le forum,

Deux options pour commencer :
Si les deux colonnes I et J reçoivent chacune obligatoirement une donnée, tu détermine la dernière ligne éditée de la colonne (I ou J c'est pareil). Avec un code du style :
Dim DL as Integer

DL = Sheets("F1").Range("H" & Application.Rows.Count).End(xlUp).Row
'ou DL = Sheets("F1").Range("I" & Application.Rows.Count).End(xlUp).Row


Si une des deux colonnes peut ne pas recevoir de données, il faut prendre celle qui reçoit obligatoirement une donnée pour définir la dernière ligne du tableau. Par exemple tu as "Prénom" en H et "Nom" en I. Le prénom n'est pas toujours renseigné alors que le nom, lui, l'est toujours. Tu auras :
Dim DL as Integer
DL = Sheets("F1").Range("I" & Application.Rows.Count).End(xlUp).Row


Ensuite, inutile de boucler ! Tu copies/colles le tableau en une seule fois :
Range("H2:I" & DL).Copy Sheets("F2").Range("H2")


Évite autant que tu le peux les Select qui ne font que ralentir l'exécution du code...
À plus,
ThauTheme
0
Merci infiniment!! ça marche
0
ThauTheme Messages postés 1442 Date d'inscription mardi 21 octobre 2014 Statut Membre Dernière intervention 29 juillet 2022 160
26 juil. 2016 à 17:06
Tiens un pseudo anagrammesque !... Je ne connaisais pas.
0