Sélectionner des colonnes distancées
Bonjour,
Je suis nouveau sur le forum et un nouvel utilisateur de VBA, j'ai appris uniquement par internet et par moi même.
Je me heurte à un problème. J'ai un deux fichiers excels comportant la même structure, en gros il s'agit de tableaux avec des en-têtes avec des données en colonnes. Ma mission est de copier/coller les colonnes du fichier 1 pour les coller dans le fichier 2.
Voilà ce que j'ai et qui fonctionne pour l'instant:
Sub CopyFromFile1()
Workbooks("File1.xlsm").Worksheets("C").Range("A11:A1000,C11:C1000,D11:D1000,E11:E1000,Q11:Q1000,AF11:AF1000").Copy
Workbooks("File2.xlsm").Worksheets("C").Activate
Workbooks("File2.xlsm").Worksheets("C").Range("A11").Select
Selection.PasteSpecial Paste:=xlPasteValues
End SubToutefois, la macro doit copier de les colonnes de la ligne 11 à la dernière ligne non-vides (les colonnes font toutes la même taille mais en fonction du mois d'ouverture, des lignes additionnelles peuvent être ajoutées au fichier) d'où l'intérêt d'adapter le code.
J'ai déjà utilisé ce code pour copier/coller de simples colonnes mais je ne l'ai jamais fait pour plusieurs colonnes ne se "touchant" pas.
derniereligne = Range("A" & Rows.Count).End(xlUp).RowMais j'aimerais le faire en une seule macro si possible.
Pourriez vous me donner un coup de main ? Merci !
Salut,
J'ai modifié un peu ton code afin de te montrer comment utiliser ta variable derniereligne.
derniereligne = Workbooks("File1.xlsm").Worksheets("C").Range("A" & Rows.Count).End(xlUp).Row
Workbooks("File1.xlsm").Worksheets("C").Range("A11:A" & derniereligne & ",C11:C" & derniereligne & ",D11:D" & derniereligne & ",E11:E" & derniereligne & ",Q11:Q" & derniereligne & ",AF11:AF" & derniereligne).CopyDans les fichiers ci-joint ça semble fonctionner. La prochaine fois fourni deux fichiers modèles.
Il y aurait probablement d'autres choses à améliorer, mais sans avoir tes fichiers réels, c'est un peu compliqué.
Cordialement.