Souci d'envoi d'information du à un choix dans combobox
Bonsoir
Je suis en train de bosser sur un fichier et en le mettant en pratique un souci c'est présenté:
j'entre énoirmement de données dans la feuille excel et pour que les modifications/ajout soient plus aisées, j'ai créé un userform qui appelle la ligne en fonction du nom. le souci vient lorsque j'ai plusieurs ligne qui porte le meme nom mais pas le meme numero de dossier
par exemple
ligne nom numero de dossier
1 durant 15 05 058002
2 dupont 15 05 058408616
3 durant 15 05 0585598
lorsque j'appelle durant et que j'effectue une modification ou un ajout dans les colonnes, les informations vont toujours sur la premiere ligne contenant durant même si je veux en réalité en completer une autre.
voici le code que j'utilise:
Private Sub ComboBox29_Change() 'Nom Prénom
Dim ligne As Integer
Dim i As Integer
i = 1
With Sheets("AVP")
Do While (.Range("E" & i) <> ComboBox29.Value And .Range("E" & i) <> Empty)
i = i + 1
Loop
If (.Range("E" & i).Value = ComboBox29.Value) Then
ligne = i
End If
End With
If ligne > 0 Then
With Sheets("AVP")
Me.TextBox1.Value = .Range("B" & ligne).Value
Me.TextBox2.Value = .Range("D" & ligne).Value
ComboBox29.Value = .Range("E" & ligne).Value
End With
End If
End Sub
Private Sub ComboBox31_Change()
End Sub
Private Sub CommandButton22_Click() 'Valider
Dim ligne As Integer
Dim i As Integer
i = 1
ligne = -1
With Sheets("AVP")
Do While (.Range("E" & i) <> ComboBox29.Value And .Range("E" & i) <> Empty)
i = i + 1
Loop
If (.Range("E" & i).Value = ComboBox29.Value) Then
ligne = i
End If
If ligne > 0 Then
If CheckBox1.Value = True Then
.Range("O" & ligne).Value = Me.TextBox3.Value
.Range("R" & ligne).Value = ComboBox32.Value
.Range("Q" & ligne).Value = ComboBox30.Value
.Range("AB" & ligne).Value = Me.TextBox5.Value
End If
If CheckBox2.Value = True Then
.Range("X" & ligne).Value = ComboBox27.Value
.Range("V" & ligne).Value = Me.TextBox13.Value
.Range("AC" & ligne).Value = Me.TextBox51.Value
.Range("AD" & ligne).Value = Me.TextBox52.Value
.Range("AE" & ligne).Value = Me.TextBox53.Value
.Range("AU" & ligne).Value = Me.TextBox69.Value
.Range("Y" & ligne).Value = ComboBox31.Value
End If
If CheckBox3.Value = True Then
.Range("X" & ligne).Value = ComboBox27.Value
.Range("V" & ligne).Value = Me.TextBox13.Value
.Range("AF" & ligne).Value = Me.TextBox54.Value
.Range("AG" & ligne).Value = Me.TextBox55.Value
.Range("AH" & ligne).Value = Me.TextBox56.Value
.Range("AI" & ligne).Value = Me.TextBox57.Value
.Range("AJ" & ligne).Value = Me.TextBox58.Value
.Range("AU" & ligne).Value = Me.TextBox69.Value
.Range("Y" & ligne).Value = ComboBox31.Value
End If
If CheckBox4.Value = True Then
.Range("X" & ligne).Value = ComboBox27.Value
.Range("V" & ligne).Value = Me.TextBox13.Value
.Range("AK" & ligne).Value = Me.TextBox59.Value
.Range("AL" & ligne).Value = Me.TextBox60.Value
.Range("AM" & ligne).Value = Me.TextBox61.Value
.Range("AN" & ligne).Value = Me.TextBox62.Value
.Range("AO" & ligne).Value = Me.TextBox63.Value
.Range("AP" & ligne).Value = Me.TextBox64.Value
.Range("AU" & ligne).Value = Me.TextBox69.Value
.Range("Y" & ligne).Value = ComboBox31.Value
End If
If CheckBox5.Value = True Then
.Range("X" & ligne).Value = ComboBox27.Value
.Range("V" & ligne).Value = Me.TextBox13.Value
.Range("AQ" & ligne).Value = Me.TextBox65.Value
.Range("AR" & ligne).Value = Me.TextBox66.Value
.Range("AS" & ligne).Value = Me.TextBox67.Value
.Range("AT" & ligne).Value = Me.TextBox68.Value
.Range("AU" & ligne).Value = Me.TextBox69.Value
.Range("Y" & ligne).Value = ComboBox31.Value
End If
If CheckBox6.Value = True Then
.Range("X" & ligne).Value = ComboBox27.Value
.Range("V" & ligne).Value = Me.TextBox13.Value
.Range("AV" & ligne).Value = Me.TextBox70.Value
.Range("Y" & ligne).Value = ComboBox31.Value
End If
End If
End With
Me.Hide
Unload Me
End Sub
Private Sub CommandButton4_Click()
Me.Hide
End Sub
Private Sub CommandButton5_Click()
Unload Me
End Sub
Private Sub TextBox1_Change()
End Sub
Private Sub TextBox2_Change()
End Sub
Private Sub TextBox3_Change()
End Sub
Private Sub TextBox5_Change()
End Sub
Private Sub TextBox51_Change()
End Sub
Private Sub UserForm_Initialize()
With Worksheets("AVP")
Me.ComboBox29.List() = .Range("E2:E" & .Range("E" & Rows.Count).End(xlUp).Row).Value
End With
TextBox3.Value = Date
TextBox13.Value = Date
End Suble nom est dans la combobox29 et le numéro de dossier dans la textbox2.
Bonsoir Aeryne, bonsoir le forum,
Sans fichier en pièce jointe je n'ai rien à te proposer. Si ce n'est de remplacer la Textbox2 par une ListBox qui récupèrerait tous les numéros de dossier d'un même nom. Un message d'avertissement apparaissant lorsque cette listbox contiendrait plus d'un seul élément. Ensuite la ligne serait définie par le bon nom et le bon numéro de dossier...
Si tu daignes envoyer un fichier je me ferais un plaisir de te proposer un code mais là, j'ai vraiment la flemme de recréer ton UserForm et l'environnement de ton fichier...
je veux bien envoyer une version allégée du fichier mais y a tellement de truc à retirer qu'il en reste pas grand chose lol
j'avais pensé à une listbox au lieu de la textbox mais j e n'arrive pas à écrire un code qui marche j'ai aussi essayé avec des combobox en cascade.
edit: voici le fichier
Bonsoir Aeryne, bonsoir le forum,
J'ai remplacé la TextBox du Numéro de Dossier par une un combobox (ComboBox33)
En pièce jointe ton fichier modifié avec le code commenté :
Bonjour
je viens de tester et les combobox font bien ce qu'il faut mais j'ai une erreur de compilation: référence incorrecte ou non qualifiée
Private Sub CommandButton22_Click() 'Valider est surligné en jaune et .Range le premier après if checbox1 est surligné en bleu
edit: c'est bon j'ai trouvé merci j'ai juste du rajouter :With Sheets("AVP")
Merci de ton aide
bon week end