Remplir userform avec les valeurs dune ligne d'une feuille

bonjour a tous,

je souhaiterais ajouter un bouton modifier enregistrement qui fera appel a un userfom afin de choisir l'enregistrement a modifier, une fois clique sur l'enregistrement a modifier, le userform (ajout enregistrement) devrait s'afficher avec modifier enregistrement en caption et rendre visible le bouton modifier dans ledit userform, avec les valeurs correpondantes de chaque cellule sur les differents controles du userform.

je vous joins mon fichier. merci de votre aide.

le mot de passe pour le code vba est marielle

Bonsoir,

Ci-joint une proposition à tester et à compléter.

Toutes les modifs sont mentionnées 'v0.1

Principe :

- même formulaire pour création ou modification

- affichage : passage en paramètre du n° de ligne (ou 0 en création)

Public Sub Afficher(piLI As Integer)

- en modification, on lit à partir du n° de ligne

Private Sub Lire(piLI)

- les zones obligatoires sont en rouge

vérification après chaque changement si valeur OK (rouge = non renseigné, orange = type incorrect : exemple date)

Private Sub Naissance_AfterUpdate()
    VerifSaisie
End Sub
Private Function VerifSaisie() As Boolean

Bonne soirée

Bouben

bonjour Bouben,

merci pour tout cela, ça m'a vraiment aider, cela marche tres bien. je souhaiterais mieux comprendre le code, peux tu stp expliquer le code ci dessous

Private Sub Lire(piLI)

    Dim oShBDD As Worksheet

   Set oShBDD = Worksheets("Base_de_donnees")

    miLigModif = piLI 'conserve la ligne

    NumeroDemande.Text = oShBDD.Range("A" & piLI).Value
    TextBox7.Text = oShBDD.Range("B" & piLI).Value 'date
    Nom_proprietaire.Text = oShBDD.Range("C" & piLI).Value

    If oShBDD.Range("D" & piLI).Value = "M." Then
        OptionButton13.Value = True
    ElseIf oShBDD.Range("D" & piLI).Value = "Mme" Then
        OptionButton14.Value = True
    ElseIf oShBDD.Range("D" & piLI).Value = "Mlle" Then
        OptionButton15.Value = True
    End If

    Naissance.Text = oShBDD.Range("E" & piLI).Value
    Lieu.Text = oShBDD.Range("F" & piLI).Value
    Nationnalite.Text = oShBDD.Range("G" & piLI).Value
    Adresse.Text = oShBDD.Range("H" & piLI).Value
    TextBox2.Text = oShBDD.Range("I" & piLI).Value 'téléphone
    Nom.Text = oShBDD.Range("J" & piLI).Value 'nom cartegrise
    Immatriculation.Text = oShBDD.Range("K" & piLI).Value
    chassis.Text = oShBDD.Range("L" & piLI).Value
    vehicule.Text = oShBDD.Range("M" & piLI).Value 'Type
    ComboBox1.Text = oShBDD.Range("S" & piLI).Value 'Type de véhicule
    TextBox8.Text = oShBDD.Range("Y" & piLI).Value  'numéro de reçu de caisse
    '********************
    'A poursuivre ici
    '********************

    CommandButton4.Visible = False 'ajouter
    CommandButton6.Visible = True 'modifier

    Set oShBDD = Nothing

End Sub

aussi, il va falloir modifier le code pour le bouton modifier enregistrement de sorte qu'il recupere les donnees de la ligne correspondante pour remplir sur la feuille licence plutot que la derniere ligne comme le fait la fonction enregistrer,

je te reviens...

merci encore

c'est résolu, il suffisait simplement de mettre une variable a la fonction enregistrer de sorte que pour le bouton modifier nous defissons la variable

Private Sub CommandButton6_Click()
    Dim V As Integer

    V = miLigModif
    'v0.1
    'Ajout_enregistrement.Hide
    'UserForm3.Show
    Enregistrer (V)
    'v0.1-fin

End Sub

et pour le bouton charger licence nous avons la variable = derniereligne

Rechercher des sujets similaires à "remplir userform valeurs dune ligne feuille"