Macro alimentation de type recherchev

  • Initiateur de la discussion Initiateur de la discussion chris6999
  • 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 !

chris6999

XLDnaute Impliqué
Bonjour le Forum


Je souhaiterais pouvoir alimenter par l'intermédiaire d'une macro, des cellules de ma feuille Source à partir des éléments contenus dans une autre feuille (BD).
A partir de la ligne 5
Pour chaque ligne
Si la colonne A est non vide alors incrémenter dans la colonne I la valeur "Entreprise" présente dans la feuille BD.
à partir de la valeur commune "Client" (présent en colonne F de Source et en colonne A de BD).

J'avais récupéré un code mais il ne fonctionne que sur des cellules fixes.


Set c = Sheets("BD SAL").Columns("E").Find(Target.Value, LookIn:=xlValues, lookat:=xlWhole) ' si l'on a trouvé
If Not c Is Nothing Then

Range("I23") = c.Offset(0, 2)
End If
End If

Merci d'avance
Cordialement
 

Pièces jointes

Re : Macro alimentation de type recherchev

Bonjour,

Ceci devrait fonctionner. Boucle à partir du bas par commodité d'écriture.

Code:
Sub Entreprises()
    Dim shSource As Worksheet
    Dim plgRech As Range
    Dim Ligne As Long, Res As Variant
    Set shSource = Sheets("feuille source")
    With Sheets("BD")
        Set plgRech = .Range("A2:A" & .Cells(Rows.Count, 1).End(xlUp).Row)
    End With
    With shSource
        For Ligne = .Range("F" & Cells.Rows.Count).End(xlUp).Row To 5 Step -1
            If .Cells(Ligne, 1) <> "" Then
                'utilisation de la fonction de feuille de calcul Equiv pour rechercher le premier nom prénom correspondant
                Res = Application.Match(.Range("F" & Ligne), plgRech, 0)
                If Not IsError(Res) Then .Range("I" & Ligne).Value = plgRech(Res, 2)
            End If
        Next
    End With
End Sub

A+
 
Dernière modification par un modérateur:
Re : Macro alimentation de type recherchev

Bonjour

Cela fonctionne très bien. Je vais essayer de l'adapter à mon fichier réel

Merci encore
Bone soirée


Bonjour,

Ceci devrait fonctionner. Boucle à partir du bas par commodité d'écriture.

Code:
Sub Entreprises()
    Dim shSource As Worksheet
    Dim plgRech As Range
    Dim Ligne As Long, Res As Variant
    Set shSource = Sheets("feuille source")
    With Sheets("BD")
        Set plgRech = .Range("A2:A" & .Cells(Rows.Count, 1).End(xlUp).Row)
    End With
    With shSource
        For Ligne = .Range("F" & Cells.Rows.Count).End(xlUp).Row To 5 Step -1
            If .Cells(Ligne, 1) <> "" Then
                'utilisation de la fonction de feuille de calcul Equiv pour rechercher le premier nom prénom correspondant
                Res = Application.Match(.Range("F" & Ligne), plgRech, 0)
                If Not IsError(Res) Then .Range("I" & Ligne).Value = plgRech(Res, 2)
            End If
        Next
    End With
End Sub

A+
 
- 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

Discussions similaires

Réponses
8
Affichages
748
Réponses
2
Affichages
384
Retour