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

  1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    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
    1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
       
      Bonjour,

      Ca serait un peu balot de vouloir ecrire avec une liste a trou
      0
    2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      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
      1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717 > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
         
        Re,

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