Erreur 9

quediantre -  
cs_Le Pivert Messages postés 8437 Statut Contributeur -
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. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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. quediantre
       
      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. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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. quediantre
       
      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
  2. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    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. quediantre
       
      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. quediantre
       
      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. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
       
      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
  3. cs_Le Pivert Messages postés 8437 Statut Contributeur 730
     
    Je ne peux pas télécharger ton classeur. Voilà un exemple:

    http://www.cjoint.com/c/FBugTGxbpEQ
    0