Bonjour, je suis nouveau dans le VBA et je me suis aidé de forum. mais pour ma demande et étant débutant je ne trouve aucun sujet de discution précis pour mon probléme. Je vous remercie pour le temps que vous souhaiterez m'accorder pour résoudre mon probléme.
Je dois réaliser une petite application qui permettra aux employés de generer en ouvrant le fichier excel une demande d'achat.
Donc j'ai fais un userform " formulairedemandeachat" qui est composé de combobox et de listbox.Les combobox prennent leurs informations ( choix déroulant ) dans une feuille qui s'appel " basededonnees". cela fonctionne.
Le probléme c'est quand j'appuis sur mon bouton " faire ma demande achat " ( Private Sub CommandButton1_Click() . Les données que j'ai choisie avec les combobox apparaisse sur une ligne de mon classeur mais il choisi le classeur aléatoirement or je veux qu'elles apparaisse a la feuille "ficheresponsableachat". J'ai vu qu'il fallais un genre de "sheet" et selectionner la page. mais je ne sais pas dans quel partie de mon code l'inserer j'ai essayer mais je dois avoir aussi une faute d'orthographe.
Je vous copie mon code :
Private Sub ComboBox2_Change()
End Sub
Private Sub CommandButton1_Click()
Label1.ForeColor = RGB(0, 0, 0)
Label2.ForeColor = RGB(0, 0, 0)
Label3.ForeColor = RGB(0, 0, 0)
Label4.ForeColor = RGB(0, 0, 0)
Label5.ForeColor = RGB(0, 0, 0)
Label6.ForeColor = RGB(0, 0, 0)
Label7.ForeColor = RGB(0, 0, 0)
'Contrôles de contenu
If ComboBox1.Value = "" Then 'SI pas de "nom" ...
Label2.ForeColor = RGB(255, 0, 0) 'Label "nom" en rouge
ElseIf ComboBox2.Value = "" Then
Label1.ForeColor = RGB(255, 0, 0)
ElseIf ComboBox3.Value = "" Then
Label3.ForeColor = RGB(255, 0, 0)
ElseIf ComboBox4.Value = "" Then
Label4.ForeColor = RGB(255, 0, 0)
ElseIf ComboBox5 = "" Then
Label5.ForeColor = RGB(255, 0, 0)
ElseIf ComboBox6 = "" Then
Label6.ForeColor = RGB(255, 0, 0)
ElseIf TextBox1 = "" Then
Label7.ForeColor = RGB(255, 0, 0)
Else
'si formulaire complet alors
If ComboBox2.Value = "" Or ComboBox3.Value = "" Or ComboBox1.Value = "" Or ComboBox4.Value = "" Or ComboBox5.Value = "" Or ComboBox6.Value = "" Then
MsgBox "Formulaire incomplet"
End If
'Si le formulaire est complet, on insère les valeurs sur la feuille
Dim no_ligne As Integer, civilite As String
no_ligne = Sheets("ficheresponsableachat").Range("A65536").End(xlUp).Row + 1
For Each bouton_civilite In Frame1.Controls
If bouton_civilite.Value Then
civilite = bouton_civilite.Caption
End If
Next
'Insertion des valeurs sur la feuille
Cells(no_ligne, 1) = civilite
Cells(no_ligne, 2) = ComboBox2.Value
Cells(no_ligne, 3) = ComboBox1.Value
Cells(no_ligne, 4) = ComboBox6.Value
Cells(no_ligne, 5) = ComboBox3.Value
Cells(no_ligne, 6) = ComboBox4.Value
Cells(no_ligne, 7) = ComboBox5.Value
Cells(no_ligne, 8) = TextBox1.Value
'Après insertion, on remet les valeurs initiales
OptionButton1.Value = True
ComboBox2.Value = ""
ComboBox1.Value = ""
ComboBox3.Value = ""
ComboBox4.Value = ""
ComboBox5.Value = ""
ComboBox6.Value = ""
TextBox1.Value = ""
End If
End Sub
Private Sub CommandButton2_Click()
Unload Me
userformacceuil.Show
End Sub
Private Sub userform_Initialize()
For I = 2 To 15
ComboBox2.AddItem Sheets("basededonnees").Cells(I, 1)
Next
For I = 2 To 15
ComboBox1.AddItem Sheets("basededonnees").Cells(I, 2)
Next
For I = 2 To 15
ComboBox6.AddItem Sheets("basededonnees").Cells(I, 3)
Next
For I = 2 To 15
ComboBox3.AddItem Sheets("basededonnees").Cells(I, 4)
Next
For I = 2 To 15
ComboBox4.AddItem Sheets("basededonnees").Cells(I, 5)
Next
For I = 2 To 15
ComboBox5.AddItem Sheets("basededonnees").Cells(I, 6)
Next
End Sub
Partager