Copie de ligne en fonction du nom de la feuille
Bonjour,
Après recherche, je n'ai pas trouver mon bonheur sur le net...
Je vous demande donc de l'aide.
Voici mon problème :
Je me retrouve avec une feuille de données brute (ici Data1) qui reprend un ensemble de règles liée à la sécurité. Mais totalement illisible en l'état.
J'ai pour mission de devoir mettre en page (1 ligne par page, soit 178 pages) ces données afin de les imprimer en version papier.
J'ai donc essayé de créer une macro en premier lieu pour copier une feuille (ici "0") ou j'ai créer un tableau de mise en page avec un renommage automatique.
(Désolé pour l'écriture je suis tout neuf en VBA :)
Sheets("0").Select
Sheets("0").Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Select
Sheets(Sheets.Count).Name = (Sheets.Count - 1) + 1Premier problème que je rencontre c'est que ma première feuille générée commence par le n°3...
Par la suite j'ai codé un simple copier/coller de la première ligne (A1: V1) de Data1 dans la structure d'une feuille lambda (étant donné que je ne sais pas comment associé le numéro de la ligne au numéro de la feuille)
(encore désolé, ça va vous piquer les yeux ...)
Sheets("Data1").Activate
Range("A1: F1").Select
Selection.Copy
Sheets(Sheets.Count).Activate
Range("A2: F2").Select
ActiveSheet.Paste
Sheets("Data1").Activate
Range("G1: J1").Select
Selection.Copy
Sheets(Sheets.Count).Activate
Range("A6: D6").Select
ActiveSheet.Paste
Sheets("Data1").Activate
Range("K1: M1").Select
Selection.Copy
Sheets(Sheets.Count).Activate
Range("A10: C10").Select
ActiveSheet.Paste
Sheets("Data1").Activate
Range("N1: Q1").Select
Selection.Copy
Sheets(Sheets.Count).Activate
Range("A14: D14").Select
ActiveSheet.Paste
Sheets("Data1").Activate
Range("R1: V1").Select
Selection.Copy
Sheets(Sheets.Count).Activate
Range("A18: E18").Select
ActiveSheet.PasteVoilà, ma recherche est donc d'associer le numéro de feuille à la place de la ligne tel que :
Sheets("Data1").Activate
Range("A'numérofeuille': F'numérofeuille'").Select
Selection.Copy
Sheets(Sheets.Count).Activate
Range("A2: F2").Select
ActiveSheet.PasteJe ne sais pas si ma demande est possible.
En attente de vous lire.
Cordialement.
Bonsoir,
Pas sûr d'avoir tout compris....mais peut-être essayer d'adapter ceci :
.../...
Range("A" & numérofeuille & ":F" & numérofeuille).Copy
.../...où numérofeuille est une variable contenant le numéro (lequel? le N° d'ordre ou le nom) de la feuille souhaitée (laquelle?)
A+
Bonjour,
Super ça a fonctionné !
Excel assimile bien la numérotation automatique des onglets à un résultat numérique.
Il a donc pu automatiser la copie des lignes en fonction de la numérotation du dernier onglet.
Je l'ai adapter avec la fonction "Sheets.Count".
tel que :
.../...
Range("A" & Sheets.Count & ":F" & Sheets.Count).Copy
.../...Un grand merci a toi AlgoPlus !