Besoin d aide pour un bug de variable

mythiac Messages postés 72 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 23 février 2009 - 18 nov. 2008 à 14:08
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 - 19 nov. 2008 à 14:21
bonjour à tous,

j'ai un problème pour transferer mes données. j'utilise par un userform une formule pour que les données de certaines cases soient tranférées selon la ligne dans une autre feuille ou une textbox.
mon problème est que ça fonctionne au départ, puis ça bloque en suite. ("erreur d'execution '91', Variable object ou variable de bloc With non definie")
je me demande si ce n'est pas ma variable qui ne revient pas à zero à chaque fois... et alors que dois-je faire...?

Private Sub CommandButton1_Click()

Dim y As Variant

y = Columns("A").Find(ComboBox1.Value, Range("A1")).Row

UserForm9.TextBox2.Value = Feuil4.Cells(y, 1).Value 'pour info ceci n'est que ma première case...

End Sub

5 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
18 nov. 2008 à 14:29
Salut,
a mon avis c'est quand la recherche de retourne rien que cela plante.

@+: Ju£i€n
Pensez: Réponse acceptée
0
mythiac Messages postés 72 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 23 février 2009
18 nov. 2008 à 14:35
les test que j'ai fais sont toujours sur des lignes alimentée car la sélection se fait à partir d'une listbox au début...
comme ça je suis sur qu'il n'y a pas d'erreur d'écriture dans la requête...
le problème vient après... car ça fonctionne au début, puis après avoir travaillé sur d'autres page ou sur autre chose cette erreur apparait.
et c'est la même chose sur un autre userform où je fais la même opération...
donc je pense que c'est la variable qui pose le problème pour la formule
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
18 nov. 2008 à 14:42
Salut,
J'ai un peu de mal a cerner le problème.
Si tu le souhaites envoies ton Excel en expliquant ce qu'il faut faire.

adresse: epsylon9 AT gmail POINT com

@+: Ju£i€n
Pensez: Réponse acceptée
0
mythiac Messages postés 72 Date d'inscription mardi 23 septembre 2008 Statut Membre Dernière intervention 23 février 2009
18 nov. 2008 à 15:00
pour explique un peu plus, il s'agit de gérer des voitures et lorsque je sélectionne une immatriculation dans ma listbox, je la valide pour que la valeur soit retenue et que les cases qui correspondent à la ligne de ce tableau viennent toutes remplir le userform textbox par textbox voici le code complet de ce userform:

Private Sub TextBox18_Change()

    TextBox18.MaxLength = 700 'nbr caractère max
    TextBox18.MultiLine = True
    TextBox18.EnterKeyBehavior = True
   
End Sub

Private Sub userform_initialize()

i = 2
ComboBox1.Clear

Do Until Feuil4.Range("a" & i).FormulaR1C1 = ""
ComboBox1.AddItem Feuil4.Range("a" & i).FormulaR1C1
i = i + 1
Loop

End Sub

Private Sub ComboBox1_Change()

End Sub

Private Sub CommandButton3_Click()
    UserForm9.Hide
    UserForm7.Show
End Sub

Private Sub Label4_Click()

End Sub

Private Sub TextBox10_Change()
    TextBox10.MaxLength = 700 'nbr caractère max
    TextBox10.MultiLine = True
    TextBox10.EnterKeyBehavior = True
   
End Sub

Private Sub CommandButton1_Click()

Dim y As Variant

y = Columns("A").Find(ComboBox1.Value, Range("A1")).Row

UserForm9.TextBox2.Value = Feuil4.Cells(y, 1).Value 'immatriculation
UserForm9.TextBox3.Value = Feuil4.Cells(y, 2).Value 'marque
UserForm9.TextBox4.Value = Feuil4.Cells(y, 3).Value 'type
UserForm9.TextBox5.Value = Feuil4.Cells(y, 4).Value 'modele
UserForm9.TextBox6.Value = Feuil4.Cells(y, 5).Value 'date 1ere
UserForm9.TextBox7.Value = Feuil4.Cells(y, 6).Value 'date attrib
UserForm9.TextBox8.Value = Feuil4.Cells(y, 7).Value 'kilometrage attrib
UserForm9.TextBox9.Value = Feuil4.Cells(y, 18).Value 'date CONTROLE TECHNIQUE
UserForm9.TextBox10.Value = Feuil4.Cells(y, 19).Value 'PREVISION CT
UserForm9.TextBox11.Value = Feuil4.Cells(y, 8).Value 'service
UserForm9.TextBox12.Value = Feuil4.Cells(y, 12).Value 'n°carte BP
UserForm9.TextBox13.Value = Feuil4.Cells(y, 15).Value 'n°code BP
UserForm9.TextBox14.Value = Feuil4.Cells(y, 13).Value 'n°carte TOTAL
UserForm9.TextBox15.Value = Feuil4.Cells(y, 16).Value 'n°code TOTAL
UserForm9.TextBox16.Value = Feuil4.Cells(y, 14).Value 'n°carte SHEEL
UserForm9.TextBox17.Value = Feuil4.Cells(y, 17).Value 'n°code SHEEL
UserForm9.TextBox18.Value = Feuil4.Cells(y, 20).Value 'Observation

    If Feuil4.Cells(y, 9).Value = True Then
        UserForm9.TextBox19.Value = Feuil4.Cells(1, 9).Value
    ElseIf Feuil4.Cells(y, 10).Value = True Then
        UserForm9.TextBox19.Value = Feuil4.Cells(1, 10).Value
    ElseIf Feuil4.Cells(y, 11).Value = True Then
        UserForm9.TextBox19.Value = Feuil4.Cells(1, 11).Value
    End If
   
      

End Sub
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
us_30 Messages postés 2065 Date d'inscription lundi 11 avril 2005 Statut Membre Dernière intervention 14 mars 2016 10
19 nov. 2008 à 14:21
Bonjour,

A priori, je pense que tu devrais mettre Y avec un type...
à la place de : Dim y As Variant
Si la recherche n'aboutie pas, Y n'a pas de valeur, et en quelque sorte pas de typage non plus... alors, qu'il faudrait quelle possède au moins un nombre entier par défaut. Le type long, devrait faire l'affaire...
soit :
Dim y As Long

Ensuite, il faut mettre un test sur y avant :
 If Feuil4.Cells(y, 9).Value = True Then

car avec y=0, c'est une référence impossible, donc avant faire :
If y>0 then 
    If Feuil4.Cells(y, 9).Value = True Then ....

Amicalement,
Us.
0
Rejoignez-nous