Macro excel / vba

Résolu/Fermé
matbleu Messages postés 3 Date d'inscription mercredi 21 novembre 2012 Statut Membre Dernière intervention 21 novembre 2012 - 21 nov. 2012 à 12:03
matbleu Messages postés 3 Date d'inscription mercredi 21 novembre 2012 Statut Membre Dernière intervention 21 novembre 2012 - 21 nov. 2012 à 14:12
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!
A voir également:

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 754
21 nov. 2012 à 12:09
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é :

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) 

1
matbleu Messages postés 3 Date d'inscription mercredi 21 novembre 2012 Statut Membre Dernière intervention 21 novembre 2012
21 nov. 2012 à 14:10
Merci Pijaku!!!

J'ai adapté à mon fichier... tout fonctionne à merveille!

bon travail!
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 754
21 nov. 2012 à 14:11
Mais de rien.
A+
0
matbleu Messages postés 3 Date d'inscription mercredi 21 novembre 2012 Statut Membre Dernière intervention 21 novembre 2012
21 nov. 2012 à 14:12
c'est parfait! mes remerciements!
0