Macro excel vba et copier coller entre onglets [Résolu/Fermé]

Signaler
Messages postés
4
Date d'inscription
mercredi 31 juillet 2013
Statut
Membre
Dernière intervention
31 juillet 2013
-
ThierryH
Messages postés
4
Date d'inscription
mercredi 31 juillet 2013
Statut
Membre
Dernière intervention
31 juillet 2013
-
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.

4 réponses

Messages postés
4
Date d'inscription
mercredi 31 juillet 2013
Statut
Membre
Dernière intervention
31 juillet 2013

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
melanie1324
Messages postés
1513
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
119
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?
melanie1324
Messages postés
1513
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
119
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
Messages postés
4
Date d'inscription
mercredi 31 juillet 2013
Statut
Membre
Dernière intervention
31 juillet 2013

Merci beaucoup pour ton aide
Je viens de déposer mon fichier Excel sous cjoint
Thierry

http://cjoint.com/?3GFmvXviLto
melanie1324
Messages postés
1513
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
119
voici ta demande :
http://cjoint.com/?CGFnkmWlDEz
Messages postés
4
Date d'inscription
mercredi 31 juillet 2013
Statut
Membre
Dernière intervention
31 juillet 2013

Merci beaucoup tu es vraiment sympa
Thierry
Messages postés
1513
Date d'inscription
vendredi 25 mai 2007
Statut
Membre
Dernière intervention
31 janvier 2018
119
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