Remplir userform avec les valeurs dune ligne d'une feuille

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
merveil00
Membre habitué
Membre habitué
Messages : 59
Inscrit le : 24 octobre 2017
Version d'Excel : 2010

Message par merveil00 » 7 novembre 2017, 03:09

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
LICENCE (0002 - actu - Copie (Enregistré automatiquement).xlsm
(791.75 Kio) Téléchargé 37 fois
Avec Excel, tu fais tout..............
Avatar du membre
bouben
Membre impliqué
Membre impliqué
Messages : 1'753
Appréciations reçues : 45
Inscrit le : 25 août 2014
Version d'Excel : 2010

Message par bouben » 7 novembre 2017, 23:10

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
LICENCE (0002 - actu - v0.1.xlsm
(794.85 Kio) Téléchargé 77 fois
Avatar du membre
merveil00
Membre habitué
Membre habitué
Messages : 59
Inscrit le : 24 octobre 2017
Version d'Excel : 2010

Message par merveil00 » 8 novembre 2017, 02:29

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
Avec Excel, tu fais tout..............
Avatar du membre
merveil00
Membre habitué
Membre habitué
Messages : 59
Inscrit le : 24 octobre 2017
Version d'Excel : 2010

Message par merveil00 » 8 novembre 2017, 03:48

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
Avec Excel, tu fais tout..............
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message