Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

resolu Macro recherchev avec base de données sur une feuille distincte

  • 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é
Bonsoir

Encore une question sur les macros recherchev.
J'ai trouvé pleins de fils intéressant mais malheureusement rien qui corresponde à mes attentes.

J'ai une feuille "liste" que je souhaiterais alimenter avec les données de la feuille "BD Identifiants" à partir d'une critère commun.
Ce critère se trouve dans la colonne C ( critère identifiant) dans la feuille "Liste " et également dans la colonne K de ma base de données "BD Identifiants".
Le but est de compléter les valeurs pour chaque ligne correspondante comme suit :
Dans liste colonne H (ou 8) Renvoie valeur colonne C (ou3)
Dans liste colonne I (ou 9) Renvoie valeur colonne D (ou 4)
Dans liste colonne J (ou 10) Renvoie valeur colonne G (ou 7)
Dans liste colonne K (ou 11) Renvoie valeur colonne P (ou 16)

Et ceci pour chaque ligne lorsque la colonne A est non vide

Lorsque le critère commun n'existe pas alors ne rien compléter

Je ne sais pas si c'est possible car le critère commun dans "BD identifiants" se trouve derrière ou devant les valeurs des colonnes recherchées.

Quelqu'un peut-il m'aider. Je joins bien sûr un fichier qui vaut mieux que de grands discours.

Merci d'avance
Cordialement et bonne soirée
 

Pièces jointes

Dernière édition:
Re : Macro recherchev avec base de données sur une feuille distincte

Bonsoir Le Forum, Chris6999
Transforme tes données de la feuille "bd identifiants" en Tableau
Ensuite sur la Feuille "Liste"
En H4 à tirer vers le bas
Code:
=INDEX(Tableau1[A positionner dans liste colonne  H (ou 8)];EQUIV($C4;Tableau1[Critère correspondance];0))

En I4 à tirer vers le bas
Code:
=INDEX(Tableau1[A positionner dans liste colonne I (ou 9)];EQUIV($C4;Tableau1[Critère correspondance];0))

Tu adaptes pour les autres
A+
 
Re : Macro recherchev avec base de données sur une feuille distincte

Bonjour Regueiro et merci pour ta réponse mais c'est un code VB que je recherche et non une formule.
Je te souhaite une bonne journée



 
Re : Macro recherchev avec base de données sur une feuille distincte

Bonjour à tous


chris6999
Une formule peut s'utiliser dans une macro.
Tu as les formules désormais, à toi de jouer maintenant,chris 😉
En t'inspirant de cette petit macro ci-dessous
(et avec le concours de l'enregistreur de macros)
Code:
Sub FormulesEtVBA()
Dim DerLig&
DerLig = 9
Range(Cells(1, "A"), Cells(DerLig, "A")).Formula = "=ROW()^ROW()"
Range(Cells(1, "B"), Cells(DerLig, "B")).FormulaLocal = "=AUJOURDHUI()+LIGNE()"
Range(Cells(1, "C"), Cells(DerLig, "C")).FormulaR1C1 = "=RC[-2]/100"
End Sub
 
Re : Macro recherchev avec base de données sur une feuille distincte

Bonjour Staple

J'ai suivi tes conseils et enregistrer ma formule en VBA et cela fonctionne nickel.
C'est juste merveilleux

Merci encore


Sub test()

Dim DerLig&
DerLig = 500
Range(Cells(4, "G"), Cells(DerLig, "G")).Formula = "=IF(RC[-6]="""","""",IF(ISERROR(VLOOKUP(RC3,'bd identifiants'!R1C1:R700C23,5,0)),0,VLOOKUP(RC3,'bd identifiants'!R1C1:R700C23,5,0)&"" ""&VLOOKUP(RC3,'bd identifiants'!R1C1:R700C23,4,0)))"
Range(Cells(4, "H"), Cells(DerLig, "H")).Formula = "=IF(RC[-6]="""","""",IF(ISERROR(VLOOKUP(RC3,'bd identifiants'!R1C1:R700C23,8,0)),0,VLOOKUP(RC3,'bd identifiants'!R1C1:R700C23,8,0)))"
Range(Cells(4, "I"), Cells(DerLig, "I")).Formula = "=IF(RC[-6]="""","""",IF(ISERROR(VLOOKUP(RC3,'bd identifiants'!R1C1:R700C23,17,0)),0,VLOOKUP(RC3,'bd identifiants'!R1C1:R700C23,17,0)))"

End Sub
 
Dernière édition:
Re : Macro recherchev avec base de données sur une feuille distincte

Bonjour néné06 et merci pour ce code qui colle pile poil avec ce que je recherche.
Toutefois il ne semble pas fonctionner car j'utilise Excel 2003.
J'ai pourtant converti le fichier...
Dommage et merci encore
 
Re : Macro recherchev avec base de données sur une feuille distincte

Re

Une formule* inscrite en VBA
(inspirée par la solution VBA de néné06 que je salue au passage 😉)
Code:
Sub FormulesEnVBAbis()
Dim cols, i&
cols = [{"C","D","G","P"}]
Sheets("bd identifiants").Range("K2:K563").Name = "IDENT"
For i = 1 To 4
Sheets("Liste").Cells(4, "G").Offset(, i).Resize(100).FormulaR1C1 = "=INDIRECT(""'bd identifiants'!" & CStr(cols(i)) & """" & "&MATCH(RC3,IDENT,0))"
Next i
End Sub

A peaufiner, finaliser... ou pas 😉
 
Re : Macro recherchev avec base de données sur une feuille distincte

Merci Staple1600

 
Re : Macro recherchev avec base de données sur une feuille distincte

Bonsoir Le Forum, Chris6999
Alors une Formule en VBA avec tableau.

Code:
Sub Remplir3()
Dim lig&
lig = Cells(4, "A").End(xlDown).Row
With Range(Cells(4, "H"), Cells(lig, "H")).Resize(, 4)
.FormulaR1C1 = "=IF(RC3<>"""",INDEX(Tableau1,MATCH(RC3,Tableau1[Critère correspondance],0),MATCH(R2C,Tableau1[#Headers],0)),"""")"
.Value = .Value
End With
End Sub
A+
bonne Soirée
Ton fichier en retour avec plusieurs variantes
 

Pièces jointes

- 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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…