Macro excel / vba
Résolu
matbleu
Messages postés
3
Statut
Membre
-
matbleu Messages postés 3 Statut Membre -
matbleu Messages postés 3 Statut Membre -
Bonjour,
Pour faire simple. Je suis débutant en création de macro et j'ai besoin d'aide pour l'un de mes fichiers.
J'ai un fichier excel avec 2 feuilles :
1 feuille "retard"
1 feuille "recap"
la feuille "retard" est mise à jour régulièrement. Elle contient 1 tableau dont la 1ère cellule est en C3 et qui a 7 colonnes fixes (il va jusqu'à la colonne I ) MAIS son nombre de lignes peut varier légèrement à chaque nouvelle alimentation.
à chaque alimentation, je souhaite copier ce tableau à lignes variables vers ma feuille "recap" (en quelques sortes j'archive mes données sur cet onglet) à la suite des autres données à partir de la colonne B... actuellement ma première ligne vide est en B710
là j'ai fait :
Worksheets("retard").Range("C3:I23").Copy Worksheets("recap").Range("B710")
ça fonctionne mais ce n'est pas ce que je veux puisque je veux selectionner une plage variable et que je veux la coller sur l'autre onglet sur la dernière ligne vide...
Aussi, la dernière ligne de mon tableau de la feuille "retard" est un total, j'aimerai qu'elle ne soit pas copiée dans l'onglet recap
Comment faire?
Par avance merci!
Pour faire simple. Je suis débutant en création de macro et j'ai besoin d'aide pour l'un de mes fichiers.
J'ai un fichier excel avec 2 feuilles :
1 feuille "retard"
1 feuille "recap"
la feuille "retard" est mise à jour régulièrement. Elle contient 1 tableau dont la 1ère cellule est en C3 et qui a 7 colonnes fixes (il va jusqu'à la colonne I ) MAIS son nombre de lignes peut varier légèrement à chaque nouvelle alimentation.
à chaque alimentation, je souhaite copier ce tableau à lignes variables vers ma feuille "recap" (en quelques sortes j'archive mes données sur cet onglet) à la suite des autres données à partir de la colonne B... actuellement ma première ligne vide est en B710
là j'ai fait :
Worksheets("retard").Range("C3:I23").Copy Worksheets("recap").Range("B710")
ça fonctionne mais ce n'est pas ce que je veux puisque je veux selectionner une plage variable et que je veux la coller sur l'autre onglet sur la dernière ligne vide...
Aussi, la dernière ligne de mon tableau de la feuille "retard" est un total, j'aimerai qu'elle ne soit pas copiée dans l'onglet recap
Comment faire?
Par avance merci!
A voir également:
- Macro excel / vba
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
2 réponses
Bonjour,
Alors on va, pour chaque feuille, calculer le numéro de la première ligne vide colonne C (Columns(3)) ou B (Columns(2)), stocker ces nombres dans deux variables et les utiliser dans le copié-collé :
Alors on va, pour chaque feuille, calculer le numéro de la première ligne vide colonne C (Columns(3)) ou B (Columns(2)), stocker ces nombres dans deux variables et les utiliser dans le copié-collé :
Dim DernLigneRetard As Long, DernLigneRecap As Long With WorkSheets("retard") 'Ici, feuille retard, derniere ligne colonne C = .Columns(3) DernLigneRetard = .Columns(3).Find("*", , , , xlByColumns, xlPrevious).Row + 1 End With With WorkSheets("recap") 'Ici, feuille recap, derniere ligne colonne B = .Columns(2) DernLigneRecap = .Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row + 1 End With Worksheets("retard").Range("C3:I" & DernLigneRetard).Copy Worksheets("recap").Range("B" & DernLigneRecap)
J'ai adapté à mon fichier... tout fonctionne à merveille!
bon travail!
A+