Recherche V par VBA
Bonjour tout le monde,
S'il vous plait, j'ai besoin de votre support pour résoudre un problème. En fait, je viens de créer une base de données sur des produits chimiques et dans la feuille (bd) vous trouverez mes données. La feuille (CAL) est ma feuille de recherche. Entre autres, quand je cherche avec un numéro de CAS dans la cellule E2 de la feuille CAL tout fonctionne à merveille, c'est-à-dire que j'ai mes données dans les autres cellules. Toutefois, quand je crée un autre module (mod4) pour pouvoir faire une deuxième recherche avec le nom de la substance, la procédure ne s'exécute pas. Veuillez trouver ci-joint le fichier.
Cordialement,
Bonjour Abdel551
C'est logique non
Dans la feuille "Cal" vous n'avez qu'une modification testée en "E2" et qu'une sub appelée
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("e2")) Is Nothing Then
JeRecherche
End If
End Sub
A+
Bonjour BrunoM45,
Merci pour votre suivi.
Effectivement, dans la feuille "Cal" j'ai qu'une modification testée en "E2" et qu'une sub appelée. Cependant, j'ai essayé d'intégrer une deuxième procédure pour appeler le nom de la substance en ''E4'' dans la feuille "Cal" mais je n'ai pas réussi et je ne sais pas ou' le mettre.
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E4")) Is Nothing Then
JeRecherche_Nom
End If
End Sub
Cordialement,
Re,
Quelques recherches vous permettrait de trouver la réponse, je pense
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("E2")) Is Nothing Then
JeRecherche
End If
If Not Intersect(Target, Range("E2")) Is Nothing Then
JeRecherche_Nom
End If
End Sub
A+
Bonjour BrunoM45,
Merci pour ton intérêt au sujet.
Je viens de tester le code que vous m'avez envoyé dans le fichier CAL et j'ai fait des tests en mettant le numéro CAS dans E2 de CAL et cela fonctionne. Par contre, quand je cherche avec le nom de la substance qui est dans E4, rien ne fonctionne et le curseur tourne dans le vide, ce qui bloque l'ordinateur. Veuillez trouver ci-joint le fichier dans lequel j'ai inscrit le nouveau code.
Cordialement,
Bonsoir,
Essayez ceci
Sub JeRecherche_Nom()
Dim dLig As Long, Lig As Long
With Sheets("bd")
dLig = .Range("A" & Rows.Count).End(xlUp).Row
For Lig = 2 To dLig
If UCase(Sheets("bd").Range("B" & Lig)) Like "*" & UCase(Sheets("CAL").Range("E4")) & "*" Then
' Désactiver les évènements
Application.EnableEvents = False
'Sheets("CAL").Range("E4") = Sheets("bd").Range("B" & Lig) 'Nom de la substance
Sheets("CAL").Range("E2") = Sheets("bd").Range("A" & Lig) 'CAS
Sheets("CAL").Range("E6") = Sheets("bd").Range("C" & Lig) 'Proprité physique
Sheets("CAL").Range("E8") = Sheets("bd").Range("E" & Lig) 'Description de danger
Sheets("CAL").Range("E12") = Sheets("bd").Range("H" & Lig) 'Premier secours
Sheets("CAL").Range("H2") = Sheets("bd").Range("F" & Lig) 'Formule chimique
Sheets("CAL").Range("H4") = Sheets("bd").Range("I" & Lig) 'Apparence
Sheets("CAL").Range("H6") = Sheets("bd").Range("J" & Lig) 'Synonymes
Sheets("CAL").Range("H8") = Sheets("bd").Range("G" & Lig) 'Manipulation
' réactiver les évènement
Application.EnableEvents = True
Exit Sub
End If
Next Lig
End With
End Sub
Attention : désactiver les évènements est important puisqu'on modifie les cellules et que nous avons l'évènement "Change" qui s'active dans ce cas
A+
Bonjour BrunoM45,
Ça marche à merveille!
Un GROS Merci pour votre aide et je vous souhaite de passer une excellente fin de semaine,