VBA/Macro dans Excel: Comment ca marche
Fermé
cris0709
Messages postés
2
Date d'inscription
lundi 28 mars 2011
Statut
Membre
Dernière intervention
30 mars 2011
-
28 mars 2011 à 19:41
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 30 mars 2011 à 08:29
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 30 mars 2011 à 08:29
A voir également:
- VBA/Macro dans Excel: Comment ca marche
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si et excel - Guide
- Déplacer une colonne excel - Guide
1 réponse
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 757
29 mars 2011 à 08:47
29 mars 2011 à 08:47
Bonjour débutant en VBA,
On va procéder point par point... Voyons déjà à quel point tu débutes...
Peux tu faire ton code avec ces éléments :
- copier une ligne définie :
- test si la feuille est la feuille "Feuil1" :
- Coller dans une feuille : en gras dans le code la destination du "collage"; il y a juste un espace après copy.
On va procéder point par point... Voyons déjà à quel point tu débutes...
Peux tu faire ton code avec ces éléments :
- copier une ligne définie :
Sheets("Feuil1").Range("A6:V6").Copy- numéro de la première ligne vide de la feuille 2 (en supposant que la colonne A ne comporte pas de "trous") :
Sheets("Feuil2").Range("A65536").End'xlUp).Row- boucle sur toutes les feuilles du classeur :
Dim Ws As Worksheet For Each Ws In ThisWorkbook.Worksheets MsgBox Ws.Name Next
- test si la feuille est la feuille "Feuil1" :
Dim Ws As WorkSheet If Ws.Name = "Feuil1" Then
- Coller dans une feuille : en gras dans le code la destination du "collage"; il y a juste un espace après copy.
Sheets("Feuil").Range("Source").Copy Sheets("Feuil2").Range(destination)Le tout, placé dans une sub, à l'intérieur d'un module peux créer ta macro. Essaye de la faire et reviens nous ici avec ton code final.
30 mars 2011 à 02:11
Premièrement, merci pour ton aide! Ma base en VBA est relativement très, très, très limitée. Voici ce que cela donne avec ton code:
Sub Copier_Ligne()
Sheets("Feuil1").Range("A:V").Copy
Sheets("Feuil2").Range("A4:A65536").End 'xlUp).Row
Dim Ws As Worksheets
For Each Ws In ThisWorkbook.Worksheets
MsgBox Ws.Name
Next
If Ws.Name = "Feuil1" Then
Sheets("Feuil").Range("Source").Copy Sheets("Feuil2").Range(Destination)
End If
End Sub
J'avais oublié de spécifier que chaque feuile a un en-tête de 3 lignes. Également, les colonnes ne sont pas de la même largeur partout sur la feuille, mais, selon ma compréhension de VBA, ceci n'a pas d'importance.
Aussi, je présume que les cellules A6:V6 étaient un exemple. Donc, j'aimerais savoir comment on spécifie dans VBA les cellules des colonnes (A_n'importe quoi :V_n'importe quoi).
Finalement, je sais qu'il y a une erreur et ceci concerne l'appel des "sheets" mais je ne sais pas comment faire dans VBA.
Merci de ton aide encore Pijaku!
Cris0709
30 mars 2011 à 08:29
Bon alors c'est pas très compliqué, on va reprendre à 2. Ce que tu veux faire c'est :
- copier une ligne de ta feuille Feuil1
- la coller dans toutes les feuilles en dernière ligne.
En VBA on traduirait cela comme :
- Quel est le numéro de la ligne à copier
- Boucle toutes les feuilles du classeur
- Si nom de la feuille = Feuil1 alors on ne fait rien
- Sinon on copie la ligne en feuil1 et on la colle dans cette feuille.
- Suivante...
Ce qui se traduit en code VBA par :