Erreur d'exécution 91

evane -  
 evane -
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 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

Ca serait un peu balot de vouloir ecrire avec une liste a trou
0
eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention   7 276
 
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 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > eriiic Messages postés 24603 Date d'inscription   Statut Contributeur Dernière intervention  
 
Re,

La saison du cyclisme vient de commencer ......
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
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
evane
 
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