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 :

Macro Rechercher un code et copier les données dans une autre feuille [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut Macro Rechercher un code et copier les données dans une autre feuille
    Bonjour,
    J'ai plusieurs feuilles de 1 à N-1, et une feuille N.
    Sur la feuille N j'ai des codes sur la colonne D, je souhaiterai comparer la valeur de chaque cellule de cette colonne avec les cellules de la colonne A des feuilles de 1 à N-1, si la comparaison est OK, je prends la valeur des lignes des feuille 1 à N-1 et je la met dans ma feuille N à coté du code qui correspond.

    j'ai réfléchi à un algorithme du style :

    Pour j de F1-->F(N-1)
    pour i de ligne 1 à la ligne K
    Si la cellule Numéro i (feuille j) == cellule numéro x de la feuille N
    instruction : copier la ligne i de la feuille j et la mettre dans la ligne x de la feuille N
    Sinon on sort de la boucle


    J'ai donc besoin de la version Macro
    Merci d'avance

  2. #2
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour Adnane, bonjour le forum,

    je prends la valeur des lignes

    Pas très clair tout ça !...

    Si tu trouves une occurrences tu copie la ligne (ne serait-ce pas plutôt les cellules éditées de la ligne?) en colonne E donc ?
    Si tu trouves plusieurs occurrences tu insères des lignes alors ?

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Bonjour,
    Quand je trouve une occurence je copie uniquement la ligne
    Par exemple :
    J'ai un code 40 sur la feuille N et je cherche un code pareil dans les feuille de 1 à N-1 si je trouve un qui correspond par exemple dans la feuille 5 je copie la ligne qui corresponds et je la met dans la feuille N en face de mon code 40
    Je suis clair ?

  4. #4
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Re,

    Non !...
    Si il en existe un autre code 40 à l'onglet 7. Que fait-on ?...

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    s'il existe dans une autre feuille il est unique

  6. #6
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Re,

    Tu veux dire : si il en existe dans d'autres onglets on les ignore ! C'est ça ?

    [Édition]

    Essaie ce code :
    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
    Sub Macro1()
    Dim OV As Worksheet 'déclare la variable OV (Onglet des Valeurs)
    Dim DL As Integer 'déclare la variable DL (Dernière ligne)
    Dim TC As Variant 'déclare la variable TC (Tableau de Cellules)
    Dim O As Worksheet 'déclare la variable O (Onglets)
    Dim R As Range 'déclare la variable R (Recherche)
     
    Set OV = Sheets(Sheets.Count) 'définit l'onglet OV (le dernier onglet du classeur)
    DL = OV.Cells(Application.Rows.Count, 4).End(xlUp).Row 'définit la dernière ligne éditée DL de la colonne 4 (=D) de l'onglet OV
    TC = OV.Range("D1:D" & DL) 'définit le tableau de cellules TC (la liste des codes)
    For I = 1 To UBound(TC, 1) 'boucle 1 : sur toutes les lignes I du tableau de cellules TC
        For J = 1 To Sheets(Sheets.Count - 1) 'boucle 2 : sur tous les onglets J du classeur (du premier à l'avant dernier)
            Set O = Sheets(J) 'définit l'onglet O
            Set R = O.Columns(1).Find(TC(I, 1), , xlValues, xlWhole) 'définit la recherche R (recherche le code TC(I, 1) dans la colonne 1 (=A) de l'onglet O)
            If Not R Is Nothing Then 'condition : sil il existe au moins une occurrence trouvée
                Set PL = O.Range(R, O.Cells(R.Row, Application.Columns.Count).End(xlToLeft)) 'définit la plage PL (les cellules éditées de la ligne de l'occurrence trouvée)
                PL.Copy OV.Cells(I, 5) 'copie les cellules dans la colonne E à coté du code
                Exit For 'sort de la boucle 2 (donc ignore d'éventuelles autres occurrences possibles)
            End If 'fin de la condition
        Next J 'prochain onglet de la boucle 2
    Next I 'prochaine ligne de la boucle 1
    End Sub

  7. #7
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Août 2015
    Messages : 8
    Points : 5
    Points
    5
    Par défaut
    Superbe ça marche !

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

Discussions similaires

  1. [XL-2010] Copier les données dans un autre classeur
    Par idhmida dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/12/2013, 15h17
  2. trier et copier des données sur une autre feuille excel
    Par mirage37 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 09/07/2012, 17h08
  3. [Toutes versions] Remplir une ListBox avec les données d'une autre feuille
    Par Valoche37 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/01/2012, 16h25
  4. Rechercher des données dans une autre feuille
    Par pedrito75 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 15/05/2011, 18h40
  5. Macro :Transfert de données dans une autre feuille excel
    Par bakaouf dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/07/2010, 14h14

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