IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

copier/coller des lignes dans feuilles crées


Sujet :

Macros et VBA Excel

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut copier/coller des lignes dans feuilles crées
    Bonsoir,

    grâce au code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub CréerFeuilles()
      i = 1
        Do Until IsEmpty(Feuil1.Cells(i, 1))
           Sheets.Add after:=Worksheets(Worksheets.Count)
           ActiveSheet.Name = Feuil1.Cells(i, 1).Value
           i = i + 1
      Loop
    End Sub
    J'arrive à créer des feuilles avec le nom se trouvant dans les cellules A.
    exemple :
    A1 europe
    A2 asie....

    les feuilles créés s'appellent europe, asie, etc...
    En fait, j'ai un listing ~1000 lignes où il y a europe, asie, usa, afrique....
    j'ai le listing total dans une feuille "total" et j'aimerai copier/coller les valeurs des lignes+colonnes dans chaque feuilles crées par rapport à leur nom.

    En clair, dans la feuille "europe" uniquement les valeurs de la colonne A de "europe"+ toutes les données des colonnes B,C, etc....

    Jusqu'à présent, je copiais/collais dans chaque feuilles puis appliquais un filtre automatique, mais ça plante quand il n'y a pas de valeurs....

    Merci
    A+

  2. #2
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Tu peux essayer un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub test()
    Dim i As Integer, j As Integer
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
        For j = 2 To Sheets.Count
            If Cells(i, 1) = Sheets(j).Name Then
            Rows(i).Copy Sheets(j).Cells(Rows.Count, 1).End(xlUp)(2)
            Exit For
            End If
        Next j
    Next i
    End Sub
    Ce code est à adapter si par exemple tu comptes faire des mises à jour, tel quel le code va te recopier toutes les valeurs trouvées à chaque mise à jour.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut
    Merci Fring,

    Super ce code !!!
    J'essaye juste de l'améliorer depuis ce matin : ton code réparti bien dans toutes les feuilles Afrique,....mais il faut que je puisse remettre la première ligne ("A1:IU1") car c'est là que se trouve les titres de colonnes....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub test()
    Dim i As Integer, j As Integer
    Range("a1:iu1").Copy
     
    For i = 1 To Cells(Rows.Count, 1).End(xlUp).Row
        For j = 2 To Sheets.Count
            If Cells(i, 1) = Sheets(j).Name Then
            Rows(i).Copy Sheets(j).Cells(Rows.Count, 1).End(xlUp)(2)
     
            Exit For
            End If
        Next j
    Next i
    End Sub
    Et je plante....pourtant, je sais que c'est simple, mais j'arrive pas à placer range("A1:IU1").paste pour coller la première ligne dans chaque feuille....

    Merci,
    A+

  4. #4
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Essaye comme ceci (pas testé)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub test()
    Dim i As Integer, j As Integer
    With Sheets(1)
    For i = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
        For j = 2 To Sheets.Count
        .Rows(1).Copy Sheets(j).Cells(1, 1)
            If .Cells(i, 1) = Sheets(j).Name Then
            .Rows(i).Copy Sheets(j).Cells(Rows.Count, 1).End(xlUp)(2)
            End If
        Next j
    Next i
    End With
    End Sub

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut
    Super cool de venir à mon secours....Merci

    Mais je galère : ton code copie bien dans les feuilles, mais il prend la ligne A1:IU1 de la première feuille, alors qu'il faudrait qu'il copie la première ligne de la deuxième feuille, de plus, il met à la dernière ligne dans chaque feuille, les éléments du premier classeur....je vois pas où ça coince...

    Merci
    A+

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 855
    Par défaut
    TROP COOOOOOLLLLLLLLL,

    En fait, j'ai utlisé ton deuxième code :
    Par macro, je supprime ma feuil1, celle qui donne le nom des feuilles, une fois supprimée, je rappatrie mes données, j'exécute ton code, et....nickel...!!!!!!!

    Lors de mes premiers essais, ,je gardais toujours la première feuille qui attribuait les noms des feuilles et ça me plantait à chaque fois.....en faisant la manip, tout baigne....

    Merci fring, top cool (pour moi, une journée de recherche...., mais c'est comme ça qu'on avance...)

    A+ pour de prochaines aventures...
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Problème macro copier-coller des cellules dans deux feuilles Excel
    Par benadry dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 01/04/2014, 20h05
  2. Copier coller des lignes à l'inverse
    Par SybVicious dans le forum Excel
    Réponses: 4
    Dernier message: 23/02/2008, 12h56
  3. Réponses: 3
    Dernier message: 10/01/2008, 11h12
  4. Réponses: 2
    Dernier message: 01/08/2007, 16h46
  5. copier/coller des graphiques dans le presse-papier
    Par legos dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 11/01/2007, 14h04

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo