VBA - Assembler des lignes nouvelle feuille
Résolu
derout
Messages postés
23
Date d'inscription
Statut
Membre
Dernière intervention
-
derout Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
derout Messages postés 23 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- VBA - Assembler des lignes nouvelle feuille
- Darkino nouvelle adresse - Guide
- Extreme download nouvelle adresse - Accueil - Outils
- Nasm assembler - Télécharger - Édition & Programmation
- Partager des photos en ligne - Guide
- Comment faire un livret avec des feuilles a4 - Guide
2 réponses
Toujours personne pour m'aider?
J'ai réalisé le début du code qui me permet:
* de créer la nouvelle feuille (celle où les données des 3 autres feuilles doivent être collées)
*d'importer les données de la 1ère feuille avec le titre
Voici le fichier que j'ai également légèrement modifié:
https://www.cjoint.com/?fmrbKpxwmo
Ce que ne parvient pas à trouver et qui concerne l'import des lignes des feuilles B et C, c'est la façon d'ecrire "pour la feuille "Assemblage", si la ligne est vide alors colle la feuille B puis si la ligne est vide alors colle la feuille C".
Voici mon code:
Sub add_sheet_and_copy_1st_sheet()
Dim new_sheet As Worksheet
Set new_sheet = Worksheets.Add
new_sheet.Name = "Assemblage"
Set new_sheet = Nothing
Sheets("A").Range("1:65536").Copy Destination:=Sheets("Assemblage").Cells.Range("A1")
End Sub
Lorsque vous visionnerez mon code vous constaterez que concernant la zone à copier/coller de la feuille A, j'ai mis: Range("1:65536"). Le soucis c'est que le nombre de lignes est variable (car de nouveaux fichiers sont régulièrements créés).
Avec l'enregistreur de macro j'ai sélectionné la zone de la manière suivante:
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
J'aimerai conserver cette manière de sélectionner la plage à copier/coller.
J'ai essayé d'adapter le code mais quelque chose manque, voici ce que j'ai réalisé :
Sub total_selection()
Dim new_sheet As Worksheet
Set new_sheet = Worksheets.Add
new_sheet.Name = "Assemblage"
Set new_sheet = Nothing
Sheets("A").Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select.Copy Destination:=Sheets("Assemblage").Cells.Range("A1")
End Sub
Donc si quelqu'un pouvait m'aider à écrire la condition "si ligne vide alors collage" ce serait splendide et si quelqu'un connait le code pour les touches CLTR+shift pour sélectionner la plage de données alors qu'il n'hésite pas.
J'attends vos suggestions,
derout
J'ai réalisé le début du code qui me permet:
* de créer la nouvelle feuille (celle où les données des 3 autres feuilles doivent être collées)
*d'importer les données de la 1ère feuille avec le titre
Voici le fichier que j'ai également légèrement modifié:
https://www.cjoint.com/?fmrbKpxwmo
Ce que ne parvient pas à trouver et qui concerne l'import des lignes des feuilles B et C, c'est la façon d'ecrire "pour la feuille "Assemblage", si la ligne est vide alors colle la feuille B puis si la ligne est vide alors colle la feuille C".
Voici mon code:
Sub add_sheet_and_copy_1st_sheet()
Dim new_sheet As Worksheet
Set new_sheet = Worksheets.Add
new_sheet.Name = "Assemblage"
Set new_sheet = Nothing
Sheets("A").Range("1:65536").Copy Destination:=Sheets("Assemblage").Cells.Range("A1")
End Sub
Lorsque vous visionnerez mon code vous constaterez que concernant la zone à copier/coller de la feuille A, j'ai mis: Range("1:65536"). Le soucis c'est que le nombre de lignes est variable (car de nouveaux fichiers sont régulièrements créés).
Avec l'enregistreur de macro j'ai sélectionné la zone de la manière suivante:
Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
J'aimerai conserver cette manière de sélectionner la plage à copier/coller.
J'ai essayé d'adapter le code mais quelque chose manque, voici ce que j'ai réalisé :
Sub total_selection()
Dim new_sheet As Worksheet
Set new_sheet = Worksheets.Add
new_sheet.Name = "Assemblage"
Set new_sheet = Nothing
Sheets("A").Range("A1").Select
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select.Copy Destination:=Sheets("Assemblage").Cells.Range("A1")
End Sub
Donc si quelqu'un pouvait m'aider à écrire la condition "si ligne vide alors collage" ce serait splendide et si quelqu'un connait le code pour les touches CLTR+shift pour sélectionner la plage de données alors qu'il n'hésite pas.
J'attends vos suggestions,
derout
Vive le monologue...
Merci pour votre soutien à tous. Le peu de code que je demandais était clairement basic (2 minutes d'écriture), j'apprécie votre empressement à répondre aux débutants...
Voici pour ceux qui pourrait avoir besoin de ce code (la feuille a été renommé Z):
Sub ImportLines()
' This will add a new worksheet called "Z"
Worksheets.Add().Name = "Z"
' This will copy all the contents of Worksheets "A" into worksheet "Z"
Worksheets("A").Cells.Copy Destination:=Worksheets("Z").Cells(1, 1)
' This will copy all the contents of Worksheets "B" into the last row of worksheet "Z"
Worksheets("B").Range("A2:G" & Worksheets("B").Range("A65536").End(xlUp).Row).Copy _
Destination:=Worksheets("Z").Range("A" & Worksheets("Z").Range("A65536").End(xlUp).Row + 1)
' This will copy all the contents of Worksheets "B" into the last row of worksheet "Z"
Worksheets("C").Range("A2:G" & Worksheets("C").Range("A65536").End(xlUp).Row).Copy _
Destination:=Worksheets("Z").Range("A" & Worksheets("Z").Range("A65536").End(xlUp).Row + 1)
End Sub
Merci pour votre soutien à tous. Le peu de code que je demandais était clairement basic (2 minutes d'écriture), j'apprécie votre empressement à répondre aux débutants...
Voici pour ceux qui pourrait avoir besoin de ce code (la feuille a été renommé Z):
Sub ImportLines()
' This will add a new worksheet called "Z"
Worksheets.Add().Name = "Z"
' This will copy all the contents of Worksheets "A" into worksheet "Z"
Worksheets("A").Cells.Copy Destination:=Worksheets("Z").Cells(1, 1)
' This will copy all the contents of Worksheets "B" into the last row of worksheet "Z"
Worksheets("B").Range("A2:G" & Worksheets("B").Range("A65536").End(xlUp).Row).Copy _
Destination:=Worksheets("Z").Range("A" & Worksheets("Z").Range("A65536").End(xlUp).Row + 1)
' This will copy all the contents of Worksheets "B" into the last row of worksheet "Z"
Worksheets("C").Range("A2:G" & Worksheets("C").Range("A65536").End(xlUp).Row).Copy _
Destination:=Worksheets("Z").Range("A" & Worksheets("Z").Range("A65536").End(xlUp).Row + 1)
End Sub