Bonjour a tous,
Je debute en programmation et j'ai créé un userform avec des text box, combobox... et surtout 3 frames avec des optionbutton dans chacun d'entre eux.
J'ai écrit des codes qui ne font pas tout a fait ce que je souhaite avoir :
J'ai un tableau dans une feuille "données" où il y a plusieurs colonnes de A-W et de lignes.
A cet instant, les textbox, combobox..,sauf le frame, s’ajoutent en fin de tableau et le resultat de mon frame1 se met en début de tableau colonne M2;
La logique voudrait que, en cliquant sur le bouton ajout de dossier, le résultat des Frame, les Textbox.... de mon USF s'insère en début de tableau. C'est là où tout bug.
J'ai le même problème quand j'active le bouton modifier ou le bouton rechercher pour récupérer les données.
Je pense que je n'en suis pas loin,
Auriez vous une solution ?
Merci de votre aide
Vous trouverez ci dessous le code
'Pour le formulaire
Private Sub nouveaudossier_Click()
Application.Sheets("DONNEES").Activate
Dim premiereligne As Integer
If MsgBox("confirmez vous l'ajout du nouveau dossier?", vbYesNo, "Confirmation") = vbYes Then
premiereligne = Sheets("DONNEES").Range("A456541").End(xlUp).Row + 1
Cells(premiereligne, 1) = nomdossier.Value
Cells(premiereligne, 2) = TextBox2.Value
Cells(premiereligne, 3) = TextBox3.Value
Cells(premiereligne, 4) = refar.Value
Cells(premiereligne, 5) = refcom.Value
Cells(premiereligne, 6) = TextBox6.Value
Cells(premiereligne, 7) = ComboBox1.Value
Cells(premiereligne, 8) = TextBox8.Value
Cells(premiereligne, 9) = ComboBox2.Value
Cells(premiereligne, 10) = TextBox10.Value
Cells(premiereligne, 11) = TextBox11.Value
Cells(premiereligne, 12) = TextBox12.Value
Cells(premiereligne, 23) = TextBox13.Value
'Activer un frame dans uersforme
Dim EtatDuDossier As Control, y As Integer
For Each y In Frame1.Controls
If y.Value = True Then
Sheets("DONNEES").Range("M2").Value = y.Caption
EtatDuDossier = EtatDuDossier + 1
End If
Next
End If
End Sub
'Pour le bouton Modifier
Private Sub modifier_Click()
Dim I As Integer
Sheets("DONNEES").Select
no_ligne = nomdossier.ListIndex + 2
If nomdossier.Value = "" Then
MsgBox ("Etes-vous certain de vouloir modifier ce client?")
Else
Cells(no_ligne, 1) = nomdossier
Cells(no_ligne, 2) = TextBox2
Cells(no_ligne, 3) = TextBox3
Cells(no_ligne, 4) = refar
Cells(no_ligne, 5) = refcom
Cells(no_ligne, 6) = TextBox6
Cells(no_ligne, 7) = ComboBox1
Cells(no_ligne, 8) = TextBox8
Cells(no_ligne, 9) = ComboBox2
Cells(no_ligne, 10) = TextBox10
Cells(no_ligne, 11) = TextBox11
Cells(no_ligne, 12) = TextBox12
'Cells(no_ligne, 13) = Frame1
Cells(no_ligne, 23) = TextBox13
End If
End Sub
'Pour rechercher nom dossier
Private Sub CommandButton3_Click()
Application.Sheets("DONNEES").Activate
Dim no_ligne As Integer
no_ligne = nomdossier.ListIndex + 2
nomdossier.Value = Cells(no_ligne, 1).Value
TextBox2.Value = Cells(no_ligne, 2).Value
TextBox3.Value = Cells(no_ligne, 3).Value
refar.Value = Cells(no_ligne, 4).Value
refcom.Value = Cells(no_ligne, 5).Value
TextBox6.Value = Cells(no_ligne, 6).Value
ComboBox1.Value = Cells(no_ligne, 7).Value
TextBox8.Value = Cells(no_ligne, 8).Value
ComboBox2.Value = Cells(no_ligne, 9).Value
TextBox10.Value = Cells(no_ligne, 10).Value
TextBox11.Value = Cells(no_ligne, 11).Value
TextBox12.Value = Cells(no_ligne, 12).Value
'Frame1.Caption = Cells(no_ligne, 13).Caption
' If y.Value = True Then
' Sheets("DONNEES").Range("M2").Value = y.Caption
' End If
TextBox13.Value = Cells(no_ligne, 23).Value
End Sub
'Pour rechercher ref ar
Private Sub CommandButton4_Click()
Application.Sheets("DONNEES").Activate
Dim no_ligne As Integer
no_ligne = refar.ListIndex + 2
nomdossier.Value = Cells(no_ligne, 1).Value
TextBox2.Value = Cells(no_ligne, 2).Value
TextBox3.Value = Cells(no_ligne, 3).Value
refar.Value = Cells(no_ligne, 4).Value
refcom.Value = Cells(no_ligne, 5).Value
TextBox6.Value = Cells(no_ligne, 6).Value
ComboBox1.Value = Cells(no_ligne, 7).Value
TextBox8.Value = Cells(no_ligne, 8).Value
ComboBox2.Value = Cells(no_ligne, 9).Value
TextBox10.Value = Cells(no_ligne, 10).Value
TextBox11.Value = Cells(no_ligne, 12).Value
TextBox12.Value = Cells(no_ligne, 13).Value
End Sub
'Pour rechercher nom dossier
Private Sub CommandButton5_Click()
Application.Sheets("DONNEES").Activate
Dim no_ligne As Integer
no_ligne = refcom.ListIndex + 2
nomdossier.Value = Cells(no_ligne, 1).Value
TextBox2.Value = Cells(no_ligne, 2).Value
TextBox3.Value = Cells(no_ligne, 3).Value
refar.Value = Cells(no_ligne, 4).Value
refcom.Value = Cells(no_ligne, 5).Value
TextBox6.Value = Cells(no_ligne, 6).Value
ComboBox1.Value = Cells(no_ligne, 7).Value
TextBox8.Value = Cells(no_ligne, 8).Value
ComboBox2.Value = Cells(no_ligne, 9).Value
TextBox10.Value = Cells(no_ligne, 10).Value
TextBox11.Value = Cells(no_ligne, 12).Value
TextBox12.Value = Cells(no_ligne, 13).Value
End Sub
'Pour le bouton Quitter
Private Sub quitter_Click()
Unload Me
End Sub
Je debute en programmation et j'ai créé un userform avec des text box, combobox... et surtout 3 frames avec des optionbutton dans chacun d'entre eux.
J'ai écrit des codes qui ne font pas tout a fait ce que je souhaite avoir :
J'ai un tableau dans une feuille "données" où il y a plusieurs colonnes de A-W et de lignes.
A cet instant, les textbox, combobox..,sauf le frame, s’ajoutent en fin de tableau et le resultat de mon frame1 se met en début de tableau colonne M2;
La logique voudrait que, en cliquant sur le bouton ajout de dossier, le résultat des Frame, les Textbox.... de mon USF s'insère en début de tableau. C'est là où tout bug.
J'ai le même problème quand j'active le bouton modifier ou le bouton rechercher pour récupérer les données.
Je pense que je n'en suis pas loin,
Auriez vous une solution ?
Merci de votre aide
Vous trouverez ci dessous le code
'Pour le formulaire
Private Sub nouveaudossier_Click()
Application.Sheets("DONNEES").Activate
Dim premiereligne As Integer
If MsgBox("confirmez vous l'ajout du nouveau dossier?", vbYesNo, "Confirmation") = vbYes Then
premiereligne = Sheets("DONNEES").Range("A456541").End(xlUp).Row + 1
Cells(premiereligne, 1) = nomdossier.Value
Cells(premiereligne, 2) = TextBox2.Value
Cells(premiereligne, 3) = TextBox3.Value
Cells(premiereligne, 4) = refar.Value
Cells(premiereligne, 5) = refcom.Value
Cells(premiereligne, 6) = TextBox6.Value
Cells(premiereligne, 7) = ComboBox1.Value
Cells(premiereligne, 8) = TextBox8.Value
Cells(premiereligne, 9) = ComboBox2.Value
Cells(premiereligne, 10) = TextBox10.Value
Cells(premiereligne, 11) = TextBox11.Value
Cells(premiereligne, 12) = TextBox12.Value
Cells(premiereligne, 23) = TextBox13.Value
'Activer un frame dans uersforme
Dim EtatDuDossier As Control, y As Integer
For Each y In Frame1.Controls
If y.Value = True Then
Sheets("DONNEES").Range("M2").Value = y.Caption
EtatDuDossier = EtatDuDossier + 1
End If
Next
End If
End Sub
'Pour le bouton Modifier
Private Sub modifier_Click()
Dim I As Integer
Sheets("DONNEES").Select
no_ligne = nomdossier.ListIndex + 2
If nomdossier.Value = "" Then
MsgBox ("Etes-vous certain de vouloir modifier ce client?")
Else
Cells(no_ligne, 1) = nomdossier
Cells(no_ligne, 2) = TextBox2
Cells(no_ligne, 3) = TextBox3
Cells(no_ligne, 4) = refar
Cells(no_ligne, 5) = refcom
Cells(no_ligne, 6) = TextBox6
Cells(no_ligne, 7) = ComboBox1
Cells(no_ligne, 8) = TextBox8
Cells(no_ligne, 9) = ComboBox2
Cells(no_ligne, 10) = TextBox10
Cells(no_ligne, 11) = TextBox11
Cells(no_ligne, 12) = TextBox12
'Cells(no_ligne, 13) = Frame1
Cells(no_ligne, 23) = TextBox13
End If
End Sub
'Pour rechercher nom dossier
Private Sub CommandButton3_Click()
Application.Sheets("DONNEES").Activate
Dim no_ligne As Integer
no_ligne = nomdossier.ListIndex + 2
nomdossier.Value = Cells(no_ligne, 1).Value
TextBox2.Value = Cells(no_ligne, 2).Value
TextBox3.Value = Cells(no_ligne, 3).Value
refar.Value = Cells(no_ligne, 4).Value
refcom.Value = Cells(no_ligne, 5).Value
TextBox6.Value = Cells(no_ligne, 6).Value
ComboBox1.Value = Cells(no_ligne, 7).Value
TextBox8.Value = Cells(no_ligne, 8).Value
ComboBox2.Value = Cells(no_ligne, 9).Value
TextBox10.Value = Cells(no_ligne, 10).Value
TextBox11.Value = Cells(no_ligne, 11).Value
TextBox12.Value = Cells(no_ligne, 12).Value
'Frame1.Caption = Cells(no_ligne, 13).Caption
' If y.Value = True Then
' Sheets("DONNEES").Range("M2").Value = y.Caption
' End If
TextBox13.Value = Cells(no_ligne, 23).Value
End Sub
'Pour rechercher ref ar
Private Sub CommandButton4_Click()
Application.Sheets("DONNEES").Activate
Dim no_ligne As Integer
no_ligne = refar.ListIndex + 2
nomdossier.Value = Cells(no_ligne, 1).Value
TextBox2.Value = Cells(no_ligne, 2).Value
TextBox3.Value = Cells(no_ligne, 3).Value
refar.Value = Cells(no_ligne, 4).Value
refcom.Value = Cells(no_ligne, 5).Value
TextBox6.Value = Cells(no_ligne, 6).Value
ComboBox1.Value = Cells(no_ligne, 7).Value
TextBox8.Value = Cells(no_ligne, 8).Value
ComboBox2.Value = Cells(no_ligne, 9).Value
TextBox10.Value = Cells(no_ligne, 10).Value
TextBox11.Value = Cells(no_ligne, 12).Value
TextBox12.Value = Cells(no_ligne, 13).Value
End Sub
'Pour rechercher nom dossier
Private Sub CommandButton5_Click()
Application.Sheets("DONNEES").Activate
Dim no_ligne As Integer
no_ligne = refcom.ListIndex + 2
nomdossier.Value = Cells(no_ligne, 1).Value
TextBox2.Value = Cells(no_ligne, 2).Value
TextBox3.Value = Cells(no_ligne, 3).Value
refar.Value = Cells(no_ligne, 4).Value
refcom.Value = Cells(no_ligne, 5).Value
TextBox6.Value = Cells(no_ligne, 6).Value
ComboBox1.Value = Cells(no_ligne, 7).Value
TextBox8.Value = Cells(no_ligne, 8).Value
ComboBox2.Value = Cells(no_ligne, 9).Value
TextBox10.Value = Cells(no_ligne, 10).Value
TextBox11.Value = Cells(no_ligne, 12).Value
TextBox12.Value = Cells(no_ligne, 13).Value
End Sub
'Pour le bouton Quitter
Private Sub quitter_Click()
Unload Me
End Sub
Dernière édition: