Rapport de message :*
 

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.