Erreur d'exécution '9': L'indice n'appartient pas à la sélaction

Fermé
hakoko Messages postés 187 Date d'inscription lundi 11 mars 2013 Statut Membre Dernière intervention 21 mars 2024 - 11 déc. 2017 à 16:27
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 - 11 déc. 2017 à 17:27
Bonjour à tous,

j'ai copié un programme VBA pour remplir un formulaire, ça bug des le premier prgramme, je cherche la raison mais je ne trouve pas. S'il vous plait pouvez me donner votre avis la dessus? Merci d'avance.


Option Explicit
Dim Ws As Worksheet
Private Sub UserForm_Initialize()


Dim J As Long

Dim I As Integer

ComboBox2.ColumnCount = 1

ComboBox2.List() = Array("DI", "EP", "AVP", "PRO", "DCE", "REA")

Set Ws = Sheets("Phase")

With Me.ComboBox1

For J = 11 To Ws.Range(" A " & Rows.Count).End(xlUp).Row

.AddItem Ws.Range(" A " & J)

Next J

End With

For I = 1 To 11

Me.Controls(" TextBox " & I).Visible = True

Next I

End Sub
            
                
A voir également:

3 réponses

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
11 déc. 2017 à 16:54
Bonjour,

NB : Quand tu postes du code sur le forum ...
Utiliser les balises de code avec indication du langage (=coloration syntaxique)
Explications disponibles ici : Comment utiliser les balises de code
Exemple :
Sub UtiliserLesBalises()
  MsgBox "Merci d'utiliser les balises de code"
End Sub


Dans ton code, il y a des espaces en trop entre les guillemets !

Code corrigé :
Option Explicit
Private Sub UserForm_Initialize()
Dim Ws As Worksheet
Dim J As Long
Dim I As Integer
  ComboBox2.ColumnCount = 1
  ComboBox2.List() = Array("DI", "EP", "AVP", "PRO", "DCE", "REA")
  Set Ws = Sheets("Phase")
  With Me.ComboBox1
    For J = 11 To Ws.Range("A" & Rows.Count).End(xlUp).Row
      .AddItem Ws.Range("A" & J)
    Next J
  End With
  For I = 1 To 11
    Me.Controls("TextBox" & I).Visible = True
  Next I
End Sub

0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
Modifié le 11 déc. 2017 à 16:56
Bonjour

Des espaces en trop, essaies ceci
Dim Ws As Worksheet

Private Sub UserForm_Initialize()
Dim J As Long
Dim I As Long
Me.ComboBox2.ColumnCount = 1
Me.ComboBox2.List() = Array("DI", "EP", "AVP", "PRO", "DCE", "REA")
Set Ws = Sheets("Phase")
With Me.ComboBox1
  For J = 11 To Ws.Range("A" & Rows.Count).End(xlUp).Row
    .AddItem Ws.Range("A" & J)
  Next J
End With
For I = 1 To 11
  Me.Controls("TextBox" & I).Visible = True
Next I
End Sub

Cdlmnt
0
hakoko Messages postés 187 Date d'inscription lundi 11 mars 2013 Statut Membre Dernière intervention 21 mars 2024 3
11 déc. 2017 à 17:11
Merci pour vos réponse, cependant j'ai toujours les même problème.
0
Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 776
11 déc. 2017 à 17:17
Re,

Ça bug ???????

Mais pas chez nous (bonjour ccm81) !!!.
0
Re,
En effet j'ai toujours le message d'erreur 9, je ressaye ce soir chez moi, si ça marche pas, je motterais le fichier xlsm en ci-joint. Merci beaucoup.
0
ccm81 Messages postés 10853 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 24 avril 2024 2 404
11 déc. 2017 à 17:27
Salut Patrice,

Je confirme
http://www.cjoint.com/c/GLlqBFxLGfB

Cdlmnt
0