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,

7bd-suivi.zip (473.94 Ko)

Bonjour Abdel551

C'est logique non c'est vous qui avez créé ce code ?

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,

2bd-suivi.xlsm (80.25 Ko)

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,

Rechercher des sujets similaires à "recherche vba"