Code VBA recherchev 1 critères à adapter

Bonjour,
j’ai un code qui met à jour la colonne D de la feuil activé par rapport à la colonne E de la feuil Base de données.
Ce code il prends comme critère de recherche la colonne C de la feuil active par rapport à la colonne D de la feuil Base de données.

Je souhaite utilisé ce code sur un autre mais j’ai pas pu l’adapter.
Je souhaite avoire une recherche multi critère :
1 colonne B de la feuil active / colonne A de la feuil Base de données
2 colonne C de la feuil active / colonne B de la feuil Base de données

et la colonne à mettre à jour est E de la feuil active par rapport à la colonne C de la base de donénes.

Est ce que quelqu’un d’entre vous pourrait m’aider ?
Merci d’avance

`Sub Mise_à_jour_n°_pièce()

Application.ScreenUpdating = False

Set bdd = Worksheets(“Base de données”)

L = 3 'Ligne de début
nblig1 = ActiveSheet.Range(“C” & Rows.Count).End(xlUp).Row

For i = L To nblig1
ActiveSheet.Cells(i, “D”) = WorksheetFunction.VLookup(ActiveSheet.Cells(i, “C”).Value, bdd.Range("$d$2:$e$2000"), 2, False)
Next

Application.ScreenUpdating = True

End Sub

Bonjour,

Il ne faut pas confondre les formules d’Excel avec du VBA

par exemple : bdd.Range("$d$2:$e$2000") là c’est incompréhensible en VBA (Venant d’une formule réalisée par l’enregistreur de macro)

Et comme toujours, un code déjà mal mis en place
pas de classeur modèle

Bref, je passe la main

Quand vous commencerez à comprendre que le forum est là pour vous pousser à trouver de vous même par la suite, vous comprendrez que l’on est pas là pour faire un classeur à votre place,
Sachez que l’on ne se trouve pas derrière vous et que vous n’êtes le seul à poser des questions :raised_hand_with_fingers_splayed:

J’ai posé un code seul pour avoir des explications et des propositions seulement et c’est à moi d’appliquer après ! je ne comprends pas ou est ce qu’il est le problème dans tout ça.

Re,

Il est là le problème :face_with_raised_eyebrow:

Et on doit deviner ce qui se trouve ne colonne ABCDE des deux onglets

1 « J'aime »

Et la solution est là :
j’ai trouvé un code dans ma bibliothèque que j’ai pu adapté. Il est à disposition de tout le monde et je peux le commenter pour ceux qui cherchent à l’exploité

Sub test()
tablo1 = Sheets(« Feuil1 »).Range(« B2:X » & Sheets(« Feuil1 »).Range(« D » & Rows.Count).End(xlUp).Row)
tablo2 = Sheets(« Feuil2 »).Range(« C2:I » & Sheets(« Feuil2 »).Range(« E » & Rows.Count).End(xlUp).Row)

For n = LBound(tablo1, 1) To UBound(tablo1, 1)
If tablo1(n, 1) <> «  » Then lettre = tablo1(n, 1)

   num = tablo1(n, 3)
   For m = LBound(tablo2, 1) To UBound(tablo2, 1)
   If tablo2(m, 1) <> "" Then lett = tablo2(m, 1) 
   nu = tablo2(m, 3)
   If lett = lettre And num = nu Then  
       tablo1(n, 10) = tablo2(m, 2)
   End If
   Next

Next

Sheets(« Feuil1 »).Range(« B2:X » & Sheets(« Feuil1 »).Range(« D » & Rows.Count).End(xlUp).Row) = tablo1
End Sub

Re,

Eh bien oui des commentaires sur la belle macro
Avec des explications sur les colonnes “X” et “I” si possible
Il faudrait aussi pour bien faire, déclarer les variables, source de problème facile à résoudre en cas de bug

B2:X ==> le tableau VBA est commence de la colonne B jusqu’à la colonne X et la 1ere ligne du tableau est la ligne 2. c’est pareil pour C2;I.
les facteurs a comparer : il compare la 1ere colonne du tableau 1 (B) avec la 1ere colonne du tableau 2 © et la 3eme colonne du tableau 1 (D) avec la 3eme colonne du tableau 2( E).
Si l’instruction est vérifier : la cellule correspond à cette recherchev dans le tableau 1 colonne 10 = à la cellule qui correspond à la recherchev dans le tableau 2 colonne 2.

Je suis pas un bon prof mais un bon analyseur LOL.

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.