Récupération de données

  • Initiateur de la discussion Initiateur de la discussion euro2k
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

E

euro2k

Guest
Bonjour à tous !

Je rencontre un petit problème... bien simple pour les habitués de VBA.
Ce n'est pas encore mon cas, je débute... 🙄

Je dois récupérer les données existantes d'une feuille pour les recopier dans une deuxième en regard d'un nom. Ce nom est commun d'une feuile à l'autre mais pas nécessairement à la même place.

Vous avez un petit exemple joint.

Avec la solution de l'exemple, je devrais me débrouiller... mais là, le 'IF' - 'THEN' m'échappe encore un peu en VBA... 🙁

En vous en remerciant d'ores et déjà !

euro2k
 

Pièces jointes

Re : Récupération de données

Bonjour Euro2k,

Sans macro :
A mettre en A2 de ta feuille Sheet2 :
Code:
=SI(NB.SI(Sheet1!$B$2:$B$11;Sheet2!B2)=0;"";INDEX(Sheet1!$A$2:$B$11;EQUIV(Sheet2!B2;Sheet1!$B$2:$B$11;0);1))

Formule à recopier vers le bas.

Ensuite, si tu veux vraiment une macro, la voici (voir fichier joint) :
Code:
Private Sub cmdRecherche_Click()
    Dim lgLig_WS1 As Long
    Dim lgLig_WS2 As Long
    
    ' Boucle de la ligne 2 à la dernière de la colonne B en feuille Sheet2
    For lgLig_WS2 = 2 To Range("B" & Cells.Rows.Count).End(xlUp).Row
        With Worksheets("Sheet1")
            Range("A" & lgLig_WS2).Value = ""
            
            ' Boucle de la ligne 2 à la dernière de la colonne B en feuille Sheet1
            For lgLig_WS1 = 2 To .Range("B" & .Cells.Rows.Count).End(xlUp).Row
                If Range("B" & lgLig_WS2).Value = .Range("B" & lgLig_WS1).Value Then
                    Range("A" & lgLig_WS2).Value = .Range("A" & lgLig_WS1).Value
                    Exit For
                End If
            Next lgLig_WS1
        End With
    Next lgLig_WS2
End Sub
 

Pièces jointes

Dernière édition:
Re : Récupération de données

Woawww ! Rapides et clairs !!

matthieu33 : sans macro, cela ne fonctionne malheureusement pas... mais je prends la macro 😀 C'est top !


herve62 et ChTi160 : merci pour votre macro, elle me permet de comparer avec celle reçue de matthieu33 et de mieux comprendre le fonctionnement.

Vous êtes génials ! Grand merci à vous trois !!! 🙂
C'est cool d'apprendre de cette façon...

Merci aux admins...
 
Re : Récupération de données

Heps matthieu33 !

Effectivement, maintenant cela fonctionne très bien 🙂

Mais ce n'est plus la même formule :

=IF(COUNTIF(Sheet1!$B$2:$B$11;Sheet2!B2)=0;"";INDEX(Sheet1!$A$2:$B$11;MATCH(Sheet2!B2;Sheet1!$B$2:$B$11;0);1))

=SI(NB.SI(Sheet1!$B$2:$B$11;Sheet2!B2)=0;"";INDEX(Sheet1!$A$2:$B$11;EQUIV(Sheet2!B2;Sheet1!$B$2:$B$11;0);1))

Le principal c'est que tu m'as super bien aidé ! Merci pour tout !!! 😉

euro2k
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
5
Affichages
499
Retour