Macro excel vba et copier coller entre onglets

Résolu
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

  1. 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
    1. 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
    2. 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
  2. Merci beaucoup tu es vraiment sympa
    Thierry
    0
    1. 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