Macro excel vba et copier coller entre onglets

Résolu
ThierryH Messages postés 4 Statut Membre -  
ThierryH Messages postés 4 Statut Membre -
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. ThierryH Messages postés 4 Statut Membre
     
    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. melanie1324 Messages postés 1561 Statut Membre 156
       
      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. melanie1324 Messages postés 1561 Statut Membre 156
       
      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. ThierryH Messages postés 4 Statut Membre
     
    Merci beaucoup tu es vraiment sympa
    Thierry
    0
  3. melanie1324 Messages postés 1561 Statut Membre 156
     
    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