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

Résolu
AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008 - 8 juil. 2008 à 15:11
AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008 - 8 juil. 2008 à 16:47
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

AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008
8 juil. 2008 à 15:30
C'est bon , je viens de trouver comment faire
Un bon gros coups de bol
3
ddove53 Messages postés 623 Date d'inscription mardi 20 mars 2007 Statut Membre Dernière intervention 15 juin 2010
8 juil. 2008 à 15:51
Mets nous le code, ça pourra servir à d'autres.
0
AiDuK Messages postés 80 Date d'inscription lundi 22 octobre 2007 Statut Membre Dernière intervention 30 juillet 2008
8 juil. 2008 à 16:47
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 )
0
Rejoignez-nous