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

AiDuK 80 Messages postés lundi 22 octobre 2007Date d'inscription 30 juillet 2008 Dernière intervention - 8 juil. 2008 à 15:11 - Dernière réponse : AiDuK 80 Messages postés lundi 22 octobre 2007Date d'inscription 30 juillet 2008 Dernière intervention
- 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
Afficher la suite 

3 réponses

Répondre au sujet
AiDuK 80 Messages postés lundi 22 octobre 2007Date d'inscription 30 juillet 2008 Dernière intervention - 8 juil. 2008 à 15:30
+3
Utile
C'est bon , je viens de trouver comment faire
Un bon gros coups de bol
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de AiDuK
ddove53 623 Messages postés mardi 20 mars 2007Date d'inscription 15 juin 2010 Dernière intervention - 8 juil. 2008 à 15:51
0
Utile
Mets nous le code, ça pourra servir à d'autres.
Commenter la réponse de ddove53
AiDuK 80 Messages postés lundi 22 octobre 2007Date d'inscription 30 juillet 2008 Dernière intervention - 8 juil. 2008 à 16:47
0
Utile
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 )
Commenter la réponse de AiDuK

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.