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
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
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.
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é
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
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