Erreur 424 sur VBA

Résolu/Fermé
Asbaroth Messages postés 19 Date d'inscription jeudi 12 mai 2011 Statut Membre Dernière intervention 18 janvier 2013 - 7 août 2012 à 12:33
Asbaroth Messages postés 19 Date d'inscription jeudi 12 mai 2011 Statut Membre Dernière intervention 18 janvier 2013 - 24 août 2012 à 18:14
Bonjour à tous,

J'ai un petit soucis. Je suis en train de programmer une feuille Excel sous VBA.

Résumé de ce que je veux faire:Je fais un programme pour gérer les stocks d'un magasin. Une fenêtre s'affiche lorsque je souhaite mettre à jour la quantité d'un produit spécifique.
ListBox_listeproduit affiche l'ensemble des produits existant dans la base de données dans un cadre de la fenêtre.

Lorsque je le lance, j'ai comme réponse "Erreur 424, Objet requis". Je ne sais pas comment résoudre ce problème.

Voici la partie du code qui ne fonctionne pas:

Private Sub ListBox_listeproduit_Click()

Dim rngTrouve As Range
Dim Colonne As Integer

TextBox_Choix.Value = ListBox_listeproduit.Value

Set rngTrouve = ActiveSheet.Columns(1).Cells.Find(What:=TextBox_Choix.Value)

Cells.Find(What:=TextBox_Choix.Value, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, SearchFormat:=False).Activate
Colonne = ActiveCell.Column + 1
TextBox_fabricant.Value = Cell(ActiveCell.Row, Colonne).Value

End Sub

Quelqu'un peut m'aider?

Je vous remercie d'avance!

2 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 751
14 août 2012 à 10:17
Bonjour,
Teste si ton Range existe, si une valeur est sélectionnée dans ta listBox, n'utilise pas de Activate ou ActiveSheet :
Private Sub ListBox_listeproduit_Click() 
Dim rngTrouve As Range 
Dim Colonne As Integer 

'si aucune valeur n'est sélectionnée dans la listbox
If ListBox_listeproduit.listIndex = -1 Then Exit Sub
TextBox_Choix.Value = ListBox_listeproduit.List(ListBox_listeproduit.ListIndex)
With Sheets("MACHIN") '====> ADAPTER : nom de la feuille
    Set rngTrouve = .Columns(1).Cells.Find(What:=TextBox_Choix.Value) 
End With
If rngTrouve Is Nothing Then
    MsgBox "Pas trouvé"
Else
    TextBox_fabricant.Value = rngTrouve.Offset(0, 1).Value
End If
Set rngTrouve = Nothing
End Sub
3
Asbaroth Messages postés 19 Date d'inscription jeudi 12 mai 2011 Statut Membre Dernière intervention 18 janvier 2013 1
24 août 2012 à 18:14
Merci Frank, ta solution a fonctionné et j'ai pu même améliorer le système.
0