[Excel | VBA] Maj / Update base de donnée excel via un userform [Résolu]

Signaler
Messages postés
80
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
30 juillet 2008
-
Messages postés
80
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
30 juillet 2008
-
Bonjour tout le monde

Je cherche à faire des modifications sur des enregistrements, en gros, pour faire un exemple simple.
J'ai une feuille qui sert de BDD avec 5 champs ( No, Nom, Prénom, Adresse, CP)
Il est préalablement insérer dans la BDD le No, le Nom, et le prénom, via un Userform ( d'insertion de personne )
Un autre userform permet la modification, lorsque l'on clique dessus, nous avons une liste déroulante contenant les No. Une fois le No choisi, les nom et le prénom apparaissent, mais aussi les champs vide pour l'Adresse et le CP nous permettant de les ajouter ( ou les modifier )

Mon probleme est : Comment faire pour que l'enregistrement mette à jour la bonne ligne de la BDD, en fonction du No choisi ?

Pour le code, cela donne :

Public Sub Maj()

    Dim ProchaineLigneVide As Integer

       With Sheets("BDD")
       ProchaineLigneVide = .Range("A1").End(xlUp).Row + L
            
       .Range("D" & ProchaineLigneVide).Value = UserformMaj.txtAdresse.Value
       .Range("E" & ProchaineLigneVide).Value = UserformMaj.txtCP.Value
      End wih
   End Sub

UserformMAJ est mon userform de mise à jour
txtAdresse est la textbox contenant l'adresse
txtCP est la textbox contenant le Code Postal

Au niveau de la bdd, dans l'ordre  A  |    B |     C     |      D   | E
                                                    No|Nom|Prénom|Adresse|CP

Merci d'avance de votre aide , là je suis totalement perdu

Cordialement,

AiDuK

3 réponses

Messages postés
80
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
30 juillet 2008

C'est bon , je viens de trouver comment faire
Un bon gros coups de bol
Messages postés
623
Date d'inscription
mardi 20 mars 2007
Statut
Membre
Dernière intervention
15 juin 2010

Mets nous le code, ça pourra servir à d'autres.
Messages postés
80
Date d'inscription
lundi 22 octobre 2007
Statut
Membre
Dernière intervention
30 juillet 2008

Pas de soucis ;)

Public Sub Maj()

            Worksheets("recep").Range("result_dac").Offset(0, 8).Value = Dialogue2.Dial_Solu.Value
            Worksheets("recep").Range("result_dac").Offset(0, 9).Value = Dialogue2.cbxElec.Value
            Worksheets("recep").Range("result_dac").Offset(0, 10).Value = Dialogue2.cbxMec.Value
            Worksheets("recep").Range("result_dac").Offset(0, 11).Value = Dialogue2.cbxFlui.Value
            Worksheets("recep").Range("result_dac").Offset(0, 12).Value = Dialogue2.cbxModi.Value
                         
            MsgBox "Mise à jour effectuée !"
 
   Unload Dialogue2


End Sub

Bon , ce n'est pas avec les mêmes champs parce que la , c'est le code du projet sur lequel je travail, mais en gros , c'est avec la fonction offset, il faut faire un décalage par rapport au champs que tu utilises comme référence ( une sorte de clée primaire )