Macro excel vba et copier coller entre onglets

Résolu/Fermé
ThierryH Messages postés 4 Date d'inscription mercredi 31 juillet 2013 Statut Membre Dernière intervention 31 juillet 2013 - 31 juil. 2013 à 08:55
ThierryH Messages postés 4 Date d'inscription mercredi 31 juillet 2013 Statut Membre Dernière intervention 31 juillet 2013 - 31 juil. 2013 à 13:24
Bonjour
Je débute avec Excel et j'aimerai créer la macro suivante:
Dans un classeur j'ai plusieurs onglets avec 6 colonnes identique qui sont réactualisés automatiquement chaque jours avec des nouvelles lignes.
Je souhaite sélectionner chaque ligne de chaque onglet si la colonne A est non vide et coller les données à la suite dans un nouveau onglet pour faire un onglet de synthèse.
Merci pour votre aide.
Thierry.
A voir également:

4 réponses

ThierryH Messages postés 4 Date d'inscription mercredi 31 juillet 2013 Statut Membre Dernière intervention 31 juillet 2013
31 juil. 2013 à 09:36
Bonjour et merci pour ton aide
J'ai copié et collé la macro mais ça ne fonctionne pas
Pour Information les onglets sont nommés "Mag01" "Mag12" "Mag36" Etc ...
et les 6 colonnes sont "A B C D E et F"
Je dois copier les lignes non vides de chaque onglet dans un onglet de synthèse que j'ai bien nommé "Synthèse"
Les lignes doivent se compiler de cet onglet avec toujours les 6 colonnes "A B C D E et F"
Encore merci pour ton aide
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
31 juil. 2013 à 10:19
mets ton tichier ou une copie de ton fichier sur cjoint.com.
Il y a peut être des choses à adapter.

tes onglets commencent à la ligne 1 par exemple?
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
Modifié par melanie1324 le 31/07/2013 à 10:20
en plus, y a une toute petite erreur,

la bonne macro à copier :


sub copiercoller ()

dim a,f, i , j as variant

a = application.sheets.count ' compte le nombre de feuille
j=1

for f= 1 to a 'ce qu'elle fera sur tous les onglets
if sheets(f).name <> "Synthèse" then 'avant de lancer la macro, pense à créer une feuille nommée synthèse, car si la feuille ne s'appelle pas synthèse alors
do while sheets(f).cells(i,1) <> "" 'tant que la cellule de la ligne i colonne 1 de la feuille f contient une donnée
Sheets(f).Rows(i).Copy Sheets("Synthèse").Rows(j) 'alors on copie la ligne de la feuille f de la ligne i dans la feuille synthèse ligne j
i=i+1
j=j+1
loop
end if
next
end sub
0
ThierryH Messages postés 4 Date d'inscription mercredi 31 juillet 2013 Statut Membre Dernière intervention 31 juillet 2013
31 juil. 2013 à 12:24
Merci beaucoup pour ton aide
Je viens de déposer mon fichier Excel sous cjoint
Thierry

https://www.cjoint.com/?3GFmvXviLto
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
31 juil. 2013 à 13:10
0
ThierryH Messages postés 4 Date d'inscription mercredi 31 juillet 2013 Statut Membre Dernière intervention 31 juillet 2013
31 juil. 2013 à 13:24
Merci beaucoup tu es vraiment sympa
Thierry
0
melanie1324 Messages postés 1505 Date d'inscription vendredi 25 mai 2007 Statut Membre Dernière intervention 31 janvier 2018 154
31 juil. 2013 à 09:05
bonjour,

voici la macro :

sub copiercoller ()

dim a,f, i , j as variant

a = application.sheets.count ' compte le nombre de feuille
j=1

for f= 1 to a 'ce qu'elle fera sur tous les onglets
if sheets(f).name <> "Synthèse" then 'avant de lancer la macro, pense à créer une feuille nommée synthèse, car si la feuille ne s'appelle pas synthèse alors
do while sheets(f).cells(i,1) <> "" 'tant que la cellule de la ligne i colonne 1 de la feuille f contient une donnée
Sheets(f).Rows(i).Copy Sheets("Synthèse").Rows(j) 'alors on copie la ligne de la feuille f de la ligne i dans la feuille synthèse ligne j
i=i+1
loop
end if
next
end sub
-1