Re: Remplir une base de donnée patrimoniale a l'aide d'un userform |
Titre du sujet : Re: Remplir une base de donnée patrimoniale a l'aide d'un userform par Retro-nabot le 12/08/2015 08:27:26 Bonjour à tous,
Je ne trouve toujours pas ma solution.
Si je tape un code dans ce genre est ce que je pourrais ajouter les choix des list box (si je parviens à le faire) Private Sub CommandButton_fermer_Click() Unload Me End Sub Private Sub Frame_terre_Click() For Each bouton_terre In Frame_terre.Controls If bouton_terre.Value Then terre = bouton_terre.Caption End Sub Private Sub UserForm_Initialize() For i = 1 To 10 ComboBox_aee.AddItem Sheets("aee").Cells(i, 1) Next For i = 1 To 1300 ComboBox_cause.AddItem Sheets("cause").Cells(i, 1) Next For i = 1 To 1222 ComboBox_remede.AddItem Sheets("remede").Cells(i, 1) Next For i = 1 To 1900 ComboBox_description.AddItem Sheets("description").Cells(i, 1) Next End Sub Private Sub CommandButton_ajouter_Click() 'Coloration des Labels en noir Label_aee.ForeColor = RGB(0, 0, 0) Label_cause.ForeColor = RGB(0, 0, 0) Label_date.ForeColor = RGB(0, 0, 0) Label_description.ForeColor = RGB(0, 0, 0) Label_ninc.ForeColor = RGB(0, 0, 0) Label_nom.ForeColor = RGB(0, 0, 0) Label_remede.ForeColor = RGB(0, 0, 0) Label_retour.ForeColor = RGB(0, 0, 0) 'Contrôles de contenu If TextBox_date.Value = "" Then 'SI pas de "date" ... Label_date.ForeColor = RGB(255, 0, 0) 'Label "nom" en rouge ElseIf TextBox_ninc.Value = "" Then Label_ninc.ForeColor = RGB(255, 0, 0) ElseIf TextBox_nom.Value = "" Then Label_nom.ForeColor = RGB(255, 0, 0) ElseIf TextBox_retour.Value = "" Then Label_retour.ForeColor = RGB(255, 0, 0) ElseIf ComboBox_aee.Value = "" Then Label_aee.ForeColor = RGB(255, 0, 0) ElseIf ComboBox_cause.Value = "" Then Label_cause.ForeColor = RGB(255, 0, 0) ElseIf ComboBox_description.Value = "" Then Label_description.ForeColor = RGB(255, 0, 0) ElseIf ComboBox_remede.Value = "" Then Label_remede.ForeColor = RGB(255, 0, 0) Else 'Si le formulaire est complet, on insère les valeurs sur la feuille Dim no_ligne As Integer, terre As String 'Choix de territoire For Each bouton_terre In Frame_terre.Controls If bouton_terre.Value Then terre = bouton_terre.Caption End If Next 'no_ligne = N° de ligne de la dernière cellule non vide de la colonne +1 no_ligne = Range("A65536").End(xlUp).Row + 1 'Insertion des valeurs sur la feuille Cells(no_ligne, 2) = terre Cells(no_ligne, 4) = TextBox_nom.Value Cells(no_ligne, 1) = TextBox_date.Value Cells(no_ligne, 5) = TextBox_ninc.Value Cells(no_ligne, 3) = ComboBox_aee.Value Cells(no_ligne, 6) = ComboBox_cause.Value Cells(no_ligne, 7) = ComboBox_description.Value Cells(no_ligne, 8) = ComboBox_remede.Value Cells(no_ligne, 9) = TextBox_retour.Value 'Après insertion, on remet les valeurs initiales OptionButton1.Value = True TextBox_nom.Value = "" TextBox_date.Value = "" TextBox_ninc.Value = "" TextBox_retour.Value = "" ComboBox_cause.ListIndex = -1 ComboBox_description.ListIndex = -1 ComboBox_remede.ListIndex = -1 ComboBox_aee.ListIndex = -1 End If End Sub Également je n'arrive toujours pas à trouver de solution pour modifier une ligne complète en double cliquant dessus. Je joint le fichier. celui ci fonctionne mais il est beaucoup plus simple. car je n'ai qu'une seule feuille à remplir, pas autant de cellules. pas de list_box et je n'ai pas besoin de verrouiller à des choix strict (pour éviter les erreurs de syntaxe).
Merci.
|
Forums