Erreur 9

Bonjour,

et merci tout d abord a tous les deux pour vos precieux conseils... que je me suis empressé de suivre...
Nouveau mess d'erreur
erreur 9 l indice n apparait pas dans la selection

Et alors ca y est ... je suis RE perdu...

Voici le lien de telechargement de ce a quoi j'aimerai arriver :
ds le premier déroulant se trouve les choix sur combox1
dans le deroulant combobox2 je souhaite juste integré "EN COURS" et ARCHIVE"

http://www.cjoint.com/c/FBtj2qbXxd1

Option Explicit
Dim Ws As Worksheet

Private Sub ComboBox1_Change()

End Sub

Private Sub UserForm_Initialize()
Dim J As Long
Dim I As Integer
ComboBox1.ColumnCount = 1
ComboBox1.List() = Array("ENTREPOT", "A01 DOM PERIGNON", "A02 SAINT EMILION", "A03 CHÂTEAU CHEVAL BLANC", "A04 DOMAINE PETRUS", "A05 CHÂTEAU LAFITE ROTHSCHIELD", "A06 CHÂTEAU FIGEAC", "A07 NUITS ST GEORGES", "A08 CRISTAL DE ROEDERER", "A09 COTE ROTIE", "A10 MAISON RUINART", "A11 DOMAINE ROMANEE CONTI", "A12 MOUTON ROTHSCHIELD", "A13 LA CARTHAGENE DE PAPE JACKY", "B01 PATRICK CASTRO", "B02 JACKY SIMEON", "B03 CHRISTIAN CHOMEL", "B04 JEAN MARC TOGNETTI", "B05 GOYA", "B06 FANFONNE GUILLIERME", "B07 TROPHEE DES AS", "B08 LA CAPELADO", "B09 LA COCARDE", "B10 CARMEN", "B11 LE TORIL", "B12 LES ARENES", "B13 DEJEUNER AUX PRES", "C01 ROGER COUDERC", "C02 JEAN PIERRE RIVES", "C03 DIMANCHE 15H", "C04 JEFF TORDO", "C05 LE CRUNCH", "C06 TOURNOI DES VI NATIONS", "C07 TOULON BEGLES 1992", "C08 DANIEL HERRERO", "B09 VINCENT MOSCATO", "B10 LE VESTIAIRE", "B11 LE CAMPHRE", "B12 LA 3eme MI TEMPS")
Set Ws = Sheets("BOX")
With Me.ComboBox1
For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
.AddItem Ws.Range("A" & J)
Next J
End With
For I = 1 To 8
Me.Controls("TextBox" & I).Visible = True
Next I
End Sub

Private Sub ComboBox2_Change()
Dim Ligne As Long
Dim I As Integer
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 2
ComboBox2 = Ws.Cells(Ligne, "B")
For I = 1 To 8
Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 2)
Next I
End Sub
‘Pour le bouton Nouveau contact
Private Sub CommandButton1_Click()
Dim L As Integer
If MsgBox("Confirmez-vous l’insertion de ce nouveau contact ?", vbYesNo, "Demande de confirmation d’ajout") = vbYes Then
L = Sheets("Clients").Range("a65536").End(xlUp).Row + 1
Range("A" & L).Value = ComboBox1
Range("B" & L).Value = ComboBox2
Range("C" & L).Value = TextBox1
Range("D" & L).Value = TextBox2
Range("E" & L).Value = TextBox3
Range("F" & L).Value = TextBox4
Range("G" & L).Value = TextBox5
Range("H" & L).Value = TextBox6
Range("I" & L).Value = TextBox7
End If
End Sub
‘Pour le bouton Modifier
Private Sub CommandButton2_Click()
Dim Ligne As Long
Dim I As Integer
If MsgBox(« Confirmez-vous la modification de ce contact ? », vbYesNo, « Demande de confirmation de modification ») = vbYes Then
If Me.ComboBox1.ListIndex = -1 Then Exit Sub
Ligne = Me.ComboBox1.ListIndex + 2
Ws.Cells(Ligne, « B ») = ComboBox2
For I = 1 To 7
If Me.Controls(« TextBox » & I).Visible = True Then
Ws.Cells(Ligne, I + 2) = Me.Controls(« TextBox » & I)
End If
Next I
End If
End Sub
‘Pour le bouton Quitter
Private Sub CommandButton3_Click()
Unload Me
End Sub

Private Sub UserForm_Click()

End Sub

Merci encooooore mille fois !!!

3 réponses

  1. Contributeur
    Je ne peux pas télécharger ton classeur. Voilà un exemple:

    http://www.cjoint.com/c/FBugTGxbpEQ
    0
    1. Contributeur
      Mets ceci:

      Option Explicit
      Private Sub CommandButton1_Click()
      Dim L As Integer
      If MsgBox("Confirmez-vous l’insertion de ce nouveau contact ? ", vbYesNo, "Demande de confirmation d’ajout") = vbYes Then
      L = Sheets("Clients").Range("a65536").End(xlUp).Row + 1 'Pour placer le nouvel enregistrement à la première ligne de tableau non vide
      Range("A" & L).Value = ComboBox1
      Range("B" & L).Value = ComboBox2
      Range("C" & L).Value = TextBox1
      Range("D" & L).Value = TextBox2
      Range("E" & L).Value = TextBox3
      Range("F" & L).Value = TextBox4
      Range("G" & L).Value = TextBox5
      Range("H" & L).Value = TextBox6
      Range("I" & L).Value = TextBox7
      End If
      Columns(1).AutoFit
      End Sub
      Private Sub CommandButton2_Click()
      Dim Ligne As Long
      Dim I As Integer
      Dim ws
      Set ws = Sheets("Clients")
      If MsgBox("Confirmez-vous la modification de ce contact ? ", vbYesNo, "Demande de confirmation de modification") = vbYes Then
      If Me.ComboBox1.ListIndex = -1 Then Exit Sub
      Ligne = Me.ComboBox1.ListIndex + 1
      ws.Cells(Ligne, "B") = ComboBox2
      For I = 1 To 7
      If Me.Controls("TextBox" & I).Visible = True Then
      ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I)
      End If
      Next I
      End If
      End Sub
      Private Sub UserForm_Initialize()
      Dim J As Long
      Dim I As Integer
      Dim ws
      ComboBox1.ColumnCount = 1
      ComboBox1.List() = Array("ENTREPOT", "A01 DOM PERIGNON", "A02 SAINT EMILION", "A03 CHÂTEAU CHEVAL BLANC", "A04 DOMAINE PETRUS", "A05 CHÂTEAU LAFITE ROTHSCHIELD", "A06 CHÂTEAU FIGEAC", "A07 NUITS ST GEORGES", "A08 CRISTAL DE ROEDERER", "A09 COTE ROTIE", "A10 MAISON RUINART", "A11 DOMAINE ROMANEE CONTI", "A12 MOUTON ROTHSCHIELD", "A13 LA CARTHAGENE DE PAPE JACKY", "B01 PATRICK CASTRO", "B02 JACKY SIMEON", "B03 CHRISTIAN CHOMEL", "B04 JEAN MARC TOGNETTI", "B05 GOYA", "B06 FANFONNE GUILLIERME", "B07 TROPHEE DES AS", "B08 LA CAPELADO", "B09 LA COCARDE", "B10 CARMEN", "B11 LE TORIL", "B12 LES ARENES", "B13 DEJEUNER AUX PRES", "C01 ROGER COUDERC", "C02 JEAN PIERRE RIVES", "C03 DIMANCHE 15H", "C04 JEFF TORDO", "C05 LE CRUNCH", "C06 TOURNOI DES VI NATIONS", "C07 TOULON BEGLES 1992", "C08 DANIEL HERRERO", "B09 VINCENT MOSCATO", "B10 LE VESTIAIRE", "B11 LE CAMPHRE", "B12 LA 3eme MI TEMPS")
      Set ws = Sheets("BOX")
      With Me.ComboBox1
      For J = 2 To ws.Range("A" & Rows.Count).End(xlUp).Row
      .AddItem ws.Range("A" & J)
      Next J
      End With
      ComboBox1.ListIndex = 0
      For I = 1 To 7
      Me.Controls("TextBox" & I).Visible = True
      Next I
      ComboBox2.AddItem ("En cours")
      ComboBox2.AddItem ("Archive")
      ComboBox2.ListIndex = 0
      End Sub
      'Pour la liste déroulante Code client
      Private Sub ComboBox2_Change()
      Dim Ligne As Long
      Dim I As Integer
      Dim ws
      Set ws = Sheets("Clients")
      'If Me.ComboBox1.ListIndex = -1 Then Exit Sub
      'Ligne = Me.ComboBox1.ListIndex + 1
      'ComboBox2 = ws.Cells(Ligne, "B")
      'For I = 1 To 7
      'Me.Controls("TextBox" & I) = ws.Cells(Ligne, I + 2)
      'Next I
      End Sub
      

      0
      1. Bonsoir,
        Et merci a vous pour votre réactivité mais hélas, le code que Pivert a eu la gentillesse de me donner ne fonctionne pas non plus.... toujours cette erreur 9 l indice n appartient pas a la selection....
        une autre idée ?
        0
      2. Bonjour et merci pour le fichier.
        Je n'ai plus d'erreur 9 alors que le fichier semble identique a ce que j'avais tapé !
        Magique... de la sorcellerie !!
        Merci et emile et Pivert pour leurs precieux conseils.
        J'entends certain dire "merci vous m'avaez fait gagné des heures"... moi je crois plutot que c'est des jours voires des semaines que vous m'avez fait gagner. Donc sincerement mille merci

        J'ai une derniere question, qui va vous sembler bien basique...
        Sur j'ai en fait deux pages excel, la premiere concerne mes box et la secondes mes locataires (futurs), Dans la page prenons l'exemple du BOX1, plusieurs lignes seront affectées au BOX1, les locataire anciens comporteront dans leur ligne un menu deroulant ARCHIVES, le locataire actuel comportera dans la sa ligne EN COURS.

        Ma question est la suivante : dans la page BOX, comment faire apparaitre dans la ligne du BOX1 le locataire en cours ?

        Merci encore pour cette derniere contribution

        Cédrick
        0
      3. Contributeur
        Mettre un nouveau bouton avec ce code:

        Private Sub CommandButton3_Click()
        Dim Lig     As Long
          Dim Col     As String
          Dim NbrLig  As Long
          Dim NumLig  As Long
          
          Sheets("BOX").Activate ' feuille de destination
          
          Col = "B"                 ' colonne données non vides à tester'
          NumLig = 1          'alors là ca doit etre le N° de la 1er ligne de données en comptant la ligne 1 = 0 .... ? '
          With Sheets("Clients")     ' feuille source'
          NbrLig = .Cells(65536, Col).End(xlUp).Row
          For Lig = 3 To NbrLig             'n° de la 1ere ligne de données'
            If .Cells(Lig, Col).Value = "En cours" Then
              .Cells(Lig, Col).EntireRow.Copy
              NumLig = NumLig + 1
              Sheets("BOX").Cells(NumLig, 1).Insert Shift:=xlDown
                    'ici pour insérer ou  .Paste pour coller'
            End If
          Next
          End With
        End Sub


        @+ Le Pivert
        0
    2. Contributeur
      Bonjour,

      tu devrais rester sur le 1er post, pour que l'on s'y retrouve

      voici l'erreur

      For I = 1 To 8

      mettre

      For I = 1 To 7
      0
      1. désolé, j'ai bien opéré les modif de 1 to 7 mais... hélas meme erreur... suis deg... mais merci qd meme...
        0
      2. Contributeur
        Tu as oublié de modifier cela:

        If MsgBox(« Confirmez-vous la modification de ce contact ? », vbYesNo, « Demande de confirmation de modification ») = vbYes Then 
        If Me.ComboBox1.ListIndex = -1 Then Exit Sub 
        Ligne = Me.ComboBox1.ListIndex + 2 
        Ws.Cells(Ligne, « B ») = ComboBox2 
        For I = 1 To 7 
        If Me.Controls(« TextBox » & I).Visible = True Then 
        Ws.Cells(Ligne, I + 2) = Me.Controls(« TextBox » & I) 
        0
      3. fait... et tjs cette satanée erreur... grrrr
        Option Explicit
        Dim Ws As Worksheet

        Private Sub ComboBox1_Change()

        End Sub

        Private Sub UserForm_Initialize()
        Dim J As Long
        Dim I As Integer
        ComboBox1.ColumnCount = 1
        ComboBox1.List() = Array("ENTREPOT", "A01 DOM PERIGNON", "A02 SAINT EMILION", "A03 CHÂTEAU CHEVAL BLANC", "A04 DOMAINE PETRUS", "A05 CHÂTEAU LAFITE ROTHSCHIELD", "A06 CHÂTEAU FIGEAC", "A07 NUITS ST GEORGES", "A08 CRISTAL DE ROEDERER", "A09 COTE ROTIE", "A10 MAISON RUINART", "A11 DOMAINE ROMANEE CONTI", "A12 MOUTON ROTHSCHIELD", "A13 LA CARTHAGENE DE PAPE JACKY", "B01 PATRICK CASTRO", "B02 JACKY SIMEON", "B03 CHRISTIAN CHOMEL", "B04 JEAN MARC TOGNETTI", "B05 GOYA", "B06 FANFONNE GUILLIERME", "B07 TROPHEE DES AS", "B08 LA CAPELADO", "B09 LA COCARDE", "B10 CARMEN", "B11 LE TORIL", "B12 LES ARENES", "B13 DEJEUNER AUX PRES", "C01 ROGER COUDERC", "C02 JEAN PIERRE RIVES", "C03 DIMANCHE 15H", "C04 JEFF TORDO", "C05 LE CRUNCH", "C06 TOURNOI DES VI NATIONS", "C07 TOULON BEGLES 1992", "C08 DANIEL HERRERO", "B09 VINCENT MOSCATO", "B10 LE VESTIAIRE", "B11 LE CAMPHRE", "B12 LA 3eme MI TEMPS")
        Set Ws = Sheets("BOX")
        With Me.ComboBox1
        For J = 2 To Ws.Range("A" & Rows.Count).End(xlUp).Row
        .AddItem Ws.Range("A" & J)
        Next J
        End With
        For I = 1 To 7
        Me.Controls("TextBox" & I).Visible = True
        Next I
        End Sub

        Private Sub ComboBox2_Change()
        Dim Ligne As Long
        Dim I As Integer
        If Me.ComboBox1.ListIndex = -1 Then Exit Sub
        Ligne = Me.ComboBox1.ListIndex + 2
        ComboBox2 = Ws.Cells(Ligne, "B")
        For I = 1 To 7
        Me.Controls("TextBox" & I) = Ws.Cells(Ligne, I + 2)
        Next I
        End Sub
        ‘Pour le bouton Nouveau contact
        Private Sub CommandButton1_Click()
        Dim L As Integer
        If MsgBox("Confirmez-vous l’insertion de ce nouveau contact ?", vbYesNo, "Demande de confirmation d’ajout") = vbYes Then
        L = Sheets("Clients").Range("a65536").End(xlUp).Row + 1
        Range("A" & L).Value = ComboBox1
        Range("B" & L).Value = ComboBox2
        Range("C" & L).Value = TextBox1
        Range("D" & L).Value = TextBox2
        Range("E" & L).Value = TextBox3
        Range("F" & L).Value = TextBox4
        Range("G" & L).Value = TextBox5
        Range("H" & L).Value = TextBox6
        Range("I" & L).Value = TextBox7
        End If
        End Sub
        ‘Pour le bouton Modifier
        Private Sub CommandButton2_Click()
        Dim Ligne As Long
        Dim I As Integer
        If MsgBox("Confirmez-vous la modification de ce contact ?", vbYesNo, "Demande de confirmation de modification") = vbYes Then
        If Me.ComboBox1.ListIndex = -1 Then Exit Sub
        Ligne = Me.ComboBox1.ListIndex + 2
        Ws.Cells(Ligne, "B") = ComboBox2
        For I = 1 To 7
        If Me.Controls("TextBox" & I).Visible = True Then
        Ws.Cells(Ligne, I + 2) = Me.Controls("TextBox" & I)
        End If
        Next I
        End If
        End Sub
        ‘Pour le bouton Quitter
        Private Sub CommandButton3_Click()
        Unload Me
        End Sub

        Private Sub UserForm_Click()

        End Sub
        0