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 les lignes ayant un critère vers des feuilles cibles


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Septembre 2009
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Septembre 2009
    Messages : 67
    Points : 44
    Points
    44
    Par défaut copier les lignes ayant un critère vers des feuilles cibles
    Bonjour à tous

    toujours débutant en vba , je souhaiterai une aide. J'ai un classeur de 5 feuilles
    la feuille 1 a des données importée d'un fichier texte. les autres feuilles sont des feuilles representant chacune un pays, la France ,l'Allemagne ,la Pologne , l'Autriche . J'aimerai copier de la feuille 1 vers les autres feuilles toutes les lignes se rapportant à leur pays le critere utilisé se trouvant dans la colonne E ( a pour l'autriche , F pour France ,D pour l'Allemagne, et PL pour la Pologne (anoter que dans le fichier réel j'ai 9 feuilles dont les criteres sont tous dans la colonne E soit Tntpour feuille TNT- Tof pour feuille Tof- A pour Feuille Autriche-D pour feuille Allemagne I pour feuille Italie-Ch pour feuille Suisse-CZ pour pour feuille Tschecoslovaquie-DK pour feuille Danemark-PL pour feuille Pologne
    De tous coeur merci pour votre aide ?
    Ci joint un petit fichier ne comportant que 4 pays

    (serait il possible d'ajouter des commentaires pour que je comprenne mieux )
    Fichiers attachés Fichiers attachés

  2. #2
    Membre émérite Avatar de Fvandermeulen
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 869
    Points : 2 662
    Points
    2 662
    Par défaut
    Salut,
    J'ai jeté un oeil à ton fichier, une remarque par facilité, après l'import du Txt fais une copie valeur pour "casser" les liens.
    Sinon j'ai retenu l'option des "select case", je te laisse voir et reviens ici si tu as des questions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Sub CopieLigne()
     
    Dim NbLig As Long, i As Long, NbL As Long
    Dim Pays As String
     
    NbLig = Cells(Columns(4).Cells.Count, 4).End(xlUp).Row 'colonne 4 car données en D
     
    For i = 6 To NbLig 'de 6 car 1ère données en D6, boucle sur toutes les lignes de la feuille Globale
        Select Case Cells(i, 7).Value 'Récupère la valeur de la colonne G pour définir le pays
        'Case va choisir en fonction de la lettre récupérée via le Select Case
            Case Is = "A"
                Pays = "Autriche"
                NbL = Sheets(Pays).Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
                Sheets("Globale").Range(Cells(i, 4), Cells(i, 18)).Copy Destination:=Sheets(Pays).Cells(NbL + 1, 1)
     
            Case Is = "F"
                Pays = "France"
                NbL = Sheets(Pays).Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
                Sheets("Globale").Range(Cells(i, 4), Cells(i, 18)).Copy Destination:=Sheets(Pays).Cells(NbL + 1, 1)
     
            Case Is = "D"
                Pays = "Allemagne"
                NbL = Sheets(Pays).Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
                Sheets("Globale").Range(Cells(i, 4), Cells(i, 18)).Copy Destination:=Sheets(Pays).Cells(NbL + 1, 1)
     
            Case Is = "PL"
                Pays = "Pologne"
                NbL = Sheets(Pays).Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
                Sheets("Globale").Range(Cells(i, 4), Cells(i, 18)).Copy Destination:=Sheets(Pays).Cells(NbL + 1, 1)
            'Ajouter ici les autres Case selon ton fichier final
        End Select
     
    Next i
     
    End Sub
    A+
    N'oubliez pas le si votre problème est solutionné.

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

Discussions similaires

  1. copier coller toutes les lignes d'un onglet vers un autre
    Par lili3183 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 15/11/2012, 18h31
  2. [AC-2000] Copier les donées d'une table vers une autre ligne de cette même table
    Par tibogaet dans le forum VBA Access
    Réponses: 4
    Dernier message: 09/06/2010, 09h39
  3. copier/coller lignes sous condition colonne vers autre feuille
    Par juniorglobal08 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 21/05/2009, 17h29
  4. Copier les lignes avec la même largeur des colonnes
    Par k-eisti dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 23/04/2007, 10h42
  5. [VB .NET] Copier les Items d'un ComboBox Vers un Autre
    Par D4rkTiger dans le forum Windows Forms
    Réponses: 6
    Dernier message: 06/08/2006, 12h05

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