Insérer une Combobox au milieu de Textbox
Bonjour à tous,
étant novice en VBA, je me résoud à vous demander un peu d'aide pour débloquer ma situation. Voici un code pour faire fonctionner un formulaire sur mon fichier Excel, issu d'un tuto du web.
Mon problème est que je souhaite échanger la saisie d'une combobox et d'une textbox pour coller à mon tableau initial. Ca fonctionne pour la saisie mais ca bug pour la liste de recherche et pour la modification. Ca décale ou ca change les valeurs.
Qqu verrait une solution?
Un grand merci et bonne soirée
Option Explicit
Dim Ws As Worksheet
'Bouton supprimer
Private Sub CommandButton4_Click()
If MsgBox("Confirmez-vous la suppression de ce contact ?", vbYesNo, "Demande de confirmation de suppression") = vbYes Then
Rows([A2:A65536].Find(ComboBox1.Value).Row).EntireRow.Delete
Unload Me
UserForm1.Show
End If
End Sub
'Pour le formulaire
Private Sub UserForm_Initialize()
Dim J As Long
Dim I As Integer
ComboBox2.ColumnCount = 1 'Pour la liste d?roulante Civilit?
ComboBox2.List() = Array("Masculin", "Féminin")
Set Ws = Sheets("Registre") 'Correspond au nom de votre onglet dans le fichier Excel
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
'Pour la liste d?roulante Code client
Private Sub ComboBox1_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("Registre").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("C" & L).Value = ComboBox2
Range("B" & 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
Bonsoir,
Tu peux déjà commencer par mettre ton code sous balises Code, de façon à éviter que l'on se fatigue inutilement pour le lire.
Et par la même occasion un fichier ne sera pas inutile...
Cordialement.
Bonsoir rminimi,
difficile à saisir...
je souhaite échanger la saisie d'une combobox et d'une textbox
Joins un fichier, même raboté, en y illustrant ce que tu souhaites. Nous ne pouvons pas toujours deviner ce que nous ne voyons pas!
A+
Au dessus de la fenêtre de rédaction, il y a des boutons, tu les regardes, tu trouves celui marqué Code. Tu sélectionnes ton code et tu cliques sur ce bouton, il sera encadré de balises Code, et à la validation du post le code apparaîtra dans une fenêtre...
En éditant ton premier post, tu peux donc le faire !