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 :

RECHERCHEV plusieurs données VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2015
    Messages : 15
    Par défaut RECHERCHEV plusieurs données VBA
    Bonjour à tous,

    Je dispose d'un fichier xlsm avec deux onglets : sheet1 et sheet2. Dans l'onglet sheet1 j'ai un tableau qui se schématise un peu de la façon suivante :

    A B ... H (colonne)
    1 Alain
    1 Pierre
    1 Alain
    2 Fabrice
    2 Stéphanie
    2 Stéphanie
    3 Paul

    L'onglet Sheet2

    A B C D
    1
    1
    1 Responsable
    1 Responsable
    1 Responsable
    1
    2
    2
    2 Responsable
    2 Responsable
    2 Responsable
    2
    3
    3
    3 Responsable
    3

    Je souhaiterais voir apparaître, par ordre chrono, dans la colonne D de sheet2 les noms qui sont initialement décrits en colonne H de sheet1 uniquement pour les lignes où il y a écrit "responsable" en colonne C en sheet2.

    Je ne demande pas forcément un code complet clé en main mais aussi des pistes de ce qui pourrait être mis en place car je sèche un peu depuis hier...

    Merci beaucoup.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2019
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Septembre 2019
    Messages : 151
    Par défaut
    Bonjour
    si j'ai bien compris

    Nom : si capture.JPG
Affichages : 204
Taille : 40,6 Ko

    voir la formule en D3

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =SI(B3="Responsable";Feuil1!B3;"")

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mai 2015
    Messages : 15
    Par défaut
    Merci pour ton retour.

    Ce n'est pas vraiment ça. Pour être plus clair, je mets un fichier en pièce jointe où tu trouveras l'architecture du fichier que j'utilise. Je souhaiterais avoir les noms en rouge dans les cellules en jaune du deuxième onglet.

    Le fichier est ici : Exemple.xlsx

    Si c'est plus clair...

    J'essaie d'imbriquer de FindNext pour arriver à mes fins sans succès pour le moment :

    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
            Set Investig = Worksheets(name2).Columns(ActLead).Find("Responsable investigation")
            If Not Investig Is Nothing Then
            FirstAddress = Investig.Address
            InvestigName1 = Investig.Row
            Set InvestId = Worksheets(name1).Columns(EventColumnid).Find(Cells(InvestigName1, 1).Value)
            InvestIdRow = InvestId.Row
                Do
                Cells(InvestigName1, InvestName).Value = .Cells(InvestIdRow, InvestigName).Value
                Set Investig = Worksheets(name2).Columns(ActLead).FindNext(Investig)
                If Investig Is Nothing Then
                GoTo DoneFinding
                End If
                InvestigName1 = Investig.Row
                Set InvestId = Worksheets(name1).Columns(EventColumnid).FindNext(InvestId)
                InvestIdRow = InvestId.Row
            Loop While Investig.Address <> FirstAddress
            End If
    DoneFinding:
    Merci à tous pour votre aide.

  4. #4
    Membre expérimenté
    Homme Profil pro
    Chargé d'affaire
    Inscrit en
    Septembre 2019
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Chargé d'affaire

    Informations forums :
    Inscription : Septembre 2019
    Messages : 151
    Par défaut
    Bonjour,
    je ne suis pas assez calé pour ce type de code,
    j'essayerai de regarder ce Week-end.

  5. #5
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,

    Lors de votre première demande, si vous pouviez fournir les éléments identiques au fichier déposé par la suite, cela éviterait des pertes de temps et que des personnes prêtes à vous aider ne le fasse pas pour rien.

    le code d'après le fichier déposé et non par rapport à la demande initiale.
    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
    Sub Recup_Valeurs()
        Dim f1 As Worksheet, f2 As Worksheet
        Dim DerLig_f1 As Long, DerLig_f2 As Long
        Dim x As Object
        Dim i As Long
        Application.ScreenUpdating = False
        Set f1 = Sheets("Suivi")
        Set f2 = Sheets("Extraction")
        f1.Columns("c").ClearContents
        DerLig_f1 = f1.Range("A" & Rows.Count).End(xlUp).Row
        DerLig_f2 = f2.Range("A" & Rows.Count).End(xlUp).Row
        Evenement = ""
        For i = 2 To DerLig_f1
            If f1.Cells(i, "B") = "Investigation" Then
                If f1.Cells(i, "A") <> Evenement Then LigDeb_f2 = 1
                Evenement = f1.Cells(i, "A")
                Set x = f2.Range(f2.Cells(LigDeb_f2, "A"), f2.Cells(DerLig_f2, "A")).Find(Evenement, LookIn:=xlValues, lookat:=xlWhole)
                If Not x Is Nothing Then
                    f1.Cells(i, "C") = f2.Cells(x.Row, "B")
                    LigDeb_f2 = x.Row
                End If
            End If
        Next i
        Set f1 = Nothing
        Set f2 = Nothing
        Set x = Nothing
    End Sub
    Cdlt

Discussions similaires

  1. [Toutes versions] Probleme vba extraire plusieur données de cellule
    Par wes13200 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 29/03/2016, 08h25
  2. Réponses: 1
    Dernier message: 28/05/2015, 09h23
  3. {VBA Excel}Copie de plusieurs données a la suite
    Par Thomas69 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 27/06/2007, 15h40
  4. Réponses: 2
    Dernier message: 05/06/2006, 08h54
  5. [VBA-E]replacement données excel par données VBA
    Par plante.douce dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 02/04/2006, 20h23

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