Erreur d'exécution 91

Fermé
evane - 15 avril 2015 à 15:56
 evane - 16 avril 2015 à 19:17
Bonjour,

J'apprends à programmer sur VBA et j'ai souvent "Erreur d'exécution 91:variable objet ou variable de bloc with non défini" qui s'affiche et même sur des programmes du type "userform.show" qui fonctionnaient quelques minutes plus tôt..
Dernièrement j'essaye de changer les noms de mes optionbutton directement avec la feuille excel donc j'ai écrit le programme suivant:

Worksheets("Produits").Activate
Dim g As Long
g = 2
While Cells(g, 13) <> ""
If OptionButton6.Caption = "" Then
OptionButton6.Caption = Cells(g, 13)
Else
If OptionButton7.Caption = "" Then
OptionButton7.Caption = Cells(g, 13)
Else
If OptionButton8.Caption = "" Then
OptionButton8.Caption = Cells(g, 13)
Else
If OptionButton9.Caption = "" Then
OptionButton9.Caption = Cells(g, 13)
Else
If OptionButton10.Caption = "" Then
OptionButton10.Caption = Cells(g, 13)
Else
If OptionButton11.Caption = "" Then
OptionButton11.Caption = Cells(g, 13)
End If
End If
End If
End If
End If
End If
g = g + 1
Wend
End Sub

Seulement le programme refuse de fonctionner pour les mêmes raisons sus-mentionnées. Pourriez vous m'aider s'il vous plaît?


3 réponses

eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
16 avril 2015 à 12:23
Bonjour,

La proposition de f894009 n'est valable que si tu n'as pas de cellules vides.
Si jamais c'est ce que tu voulais gérer je vois plutôt ça pour raccourcir un peu ton code et le rendre plus lisible.
A ce sujet tu as une icone <> pour formater ton code ici...
    Worksheets("Produits").Activate
    Dim g As Long
    g = 2
    While Cells(g, 13) <> ""
        If OptionButton6.Caption = "" Then
            OptionButton6.Caption = Cells(g, 13)
        ElseIf OptionButton7.Caption = "" Then
            OptionButton7.Caption = Cells(g, 13)
        ElseIf OptionButton8.Caption = "" Then
            OptionButton8.Caption = Cells(g, 13)
        ElseIf OptionButton9.Caption = "" Then
            OptionButton9.Caption = Cells(g, 13)
        ElseIf OptionButton10.Caption = "" Then
            OptionButton10.Caption = Cells(g, 13)
        ElseIf OptionButton11.Caption = "" Then
            OptionButton11.Caption = Cells(g, 13)
        End If
        g = g + 1
    Wend

Mais pour ton erreur 91 à mon avis elle va persister. Sans fichier de test et les manip pour reproduire l'erreur impossible de répondre.

eric

1
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
Modifié par f894009 le 16/04/2015 à 13:07
Bonjour,

Ca serait un peu balot de vouloir ecrire avec une liste a trou
0
eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024 7 239
16 avril 2015 à 13:49
Ben oui. Mais comme c'est ce que son code a l'air de gérer... Peut-être à l'insu de son plein gré ;-)
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709 > eriiic Messages postés 24600 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 21 octobre 2024
16 avril 2015 à 13:52
Re,

La saison du cyclisme vient de commencer ......
0
f894009 Messages postés 17205 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 19 octobre 2024 1 709
16 avril 2015 à 08:28
Bonjour,
c'est un peu plus simple comme ceci:

    With Worksheets("Produits")
        .OptionButton6.Caption = Cells(2, 13)
        .OptionButton7.Caption = Cells(3, 13)
        .OptionButton8.Caption = Cells(4, 13)
        .OptionButton9.Caption = Cells(5, 13)
        .OptionButton10.Caption = Cells(6, 13)
        .OptionButton11.Caption = Cells(7, 13)
    End With
0
Merciii pour vos réponses!! j'ai fait comme Eriiic l'a dit mais avec une boucle en for-next et ca marche bien.....
Merci pour votre aide!
0