erreur execution '91' : variable objet ou variable de bloc non définie

  • Initiateur de la discussion Initiateur de la discussion sousleau
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

sousleau

XLDnaute Nouveau
Bonjour à tous

Je débute en VBA et voici mon problème.

J'ai voulu créer une userform qui s'ouvre en cliquant sur un bouton de commande. Je me suis servie pour cela de tout les renseignements que j'ai trouvé sur le site. le code utilisé vient d'ailleur de l'exemple testfed2.

J'ai l'impression d'avoir tout fait comme il faut, sauf que lorsque je clic sur mon bouton, l'erreur 91 apparait, surlignant en jaune

Private Sub CommandButton1_Click()
UserForm2.Show
End Sub

Comment et à quel moment déclarer le userform ?

Merci d'avance pour votre aide
Anne Sophie
 
Dernière édition:
Re : erreur execution '91' : variable objet ou variable de bloc non définie

Bonjour

Il existe bien et un code y est associé. je tente de vous joindre le fichier xls pour que vous puissiez mieux comprendre
 

Pièces jointes

Re : erreur execution '91' : variable objet ou variable de bloc non définie

Bonjour

salut JC 🙂

pas mal d'erreur dans ton code...

Tout d'abord, dans l'initialize, supprime Call cherche

dans les propriétés des combobox, dans les RowSource, mets un : à la place du ;

Code:
K1:K29 au lieu de K1;K29
L1:L5 au lieu de L1;L5

puis dans les Combobox change :

Private Sub ComboBox1_Change()
If Me.ComboBox2 <> "" Then Call cherche
End Sub


Private Sub ComboBox2_Change()
If Me.ComboBox1 <> "" Then Call cherche
End Sub

et enfin, dans la sub "cherche" :

Code:
Sub cherche()
Dim c As Double
Dim l As Double
c = Range("C5:G5").Find(Val(ComboBox2.Value)).Column
l = Range("B6:B34").Find(Val(ComboBox1.Value)).Row
TextBox1.Value = Cells(l, c).Value

End Sub
 
Re : erreur execution '91' : variable objet ou variable de bloc non définie

Bonjour à tous,

Ton fichier "réparé"...
K1;K29 sélectionne K1 et K29
K1:K29 sélectionne K1 à K29

A+

Edition : Rapide et efficace l'ami BH² (Ça va le jeune... arf arf)
Ré Edition : Arf, je n'avais vu le profil de Souleau, je comprends mieux l'empressement de BH²...

Salut JM Tchou-Tchou
 

Pièces jointes

Dernière édition:
Re : erreur execution '91' : variable objet ou variable de bloc non définie

Salut
bonjour le fil
Bonjour le Forum
New Edit :Arff pas vu Salut à mes deux Amis
arff dans un premier temps il ne faut pas que tu mettes Call Cherche dans l'initialisation du Userform
voila ce que j'ai modifie dans ta procédure cherche
ensuite il faut avant de pouvoir utiliser cette procédure savoir ce que doivent contenir les Combobox1 et Combobox2 apparemment une seule valeur si les références sont en cellules A6 et C2 (pourquoi des combobox et pas des textBox ????)
dis nous tout lol
Code:
Sub cherche()
Dim c As Range
Dim l As Range
Dim col As Byte
Dim Lgn As Integer
With Worksheets("CHENEAU")
Set c = .Range("C5:G5").Find(ComboBox1.Value) [COLOR=Green]'ici on recherche la valeur du Combobox1 dans la plage[/COLOR]
   If Not c Is Nothing Then '[COLOR=Green]si on trouve[/COLOR]
     col = c.Column '[COLOR=Green]on récupére le numéro de la colonne de la cellule trouvée[/COLOR]
   End If
Set l = .Range("B6:B34").Find(ComboBox2.Value)'[COLOR=Green]ici la valeur du Combobox2[/COLOR]
If Not l Is Nothing Then '[COLOR=Green]si on trouve[/COLOR]
    Lgn = l.Row '[COLOR=Green]ici le numero de la ligne[/COLOR]
  End If
If col = 0 Or Lgn = 0 Then GoTo fin '[COLOR=Green]si manque l'un des deux on va a la fin[/COLOR]
TextBox1.Value = .Cells(l, c).Value
End With
fin:
MsgBox "pas de donnée" [COLOR=Green]'pour message[/COLOR]
End Sub
Dans la tente pour les vacanciers Lol
Bonne journée
 
Re : erreur execution '91' : variable objet ou variable de bloc non définie

(Re) bonjour à tous

Un grand merci à vous tous pour votre aide. j'ai pu corriger le code et ça marche. la userform s'ouvre, et les valeur qu'elle trouve dans le textbox sont exactes.

Génial.

Maintenant, plus complexe (enfin, pour moi)

J'aimerais, sur le même chemas :

- une possibilité de saisie libre dans la combobox 1,
- une saise fixe dans la combobox2 (valeur de C6 0 G6, reprise en colonne L)

Sachant que la valeur affichée dans la textbox doit croiser la valeur immédiatement inférieur de la colonne et la valeur fixe de la ligne

Exemple :

je saisie 65 dans la combobox1 et choisie 2 dans la combobox2. je veux comme résultat : 110 (comme si je croisais 60 et 2)

Comment faire ?

Ps ; je joint ma version corrigée
 

Pièces jointes

Re : erreur execution '91' : variable objet ou variable de bloc non définie

Re
un fichier
j'ai ajoute un bouton , pour ne pas utiliser la procédure Change des combos (dont je ne vois pas l'utilité car une valeur par Combo) donc on sélectionne les valeurs et on click j'ai repris

Le fichier : Regarde la pièce jointe VERIF CHENEAU_2.xls

New Edit
si tu veux faire ainsi utilise des TextBox ????

Bonne journée
 
Re : erreur execution '91' : variable objet ou variable de bloc non définie

Merci pour le fichier corrigé, avec le bouton supplémentaire.
Par contre, il n'autorise pas la saisie libre, avec séléction de la valeur inférieure (uniquement pour les données en colonne)

en fait, je ne sais pas vraiment paramétrer les textbox, d'où l'utilation des combobox.

Mais si vouv pouvez m'aider...

merci d'avance
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
1 K
Retour