Modifier base de donnée via userform

  • Initiateur de la discussion Initiateur de la discussion kero_67
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

K

kero_67

Guest
Bonjour le forum

J'ai un userform qui me permet de visualiser ma bdd, de supprimer des lignes, ajouter des lignes et je souhaiterais qu'il me serve également à modifier des lignes.
Je suis assez novice et je ne sais pas trop quoi faire avec mon code : lorsque je clique sur "modifier" dans mon USF3, celui-ci me renvoi à un autre USF(le 4) qui permet les modifications, problème il ne me renvoi pas à la ligne sélectionner dans le USF3...
D'où ma question comment faire afficher dans le USF4 la ligne sélectionner dans le USF3 ?

Dans la combobox "couplage" de mon USF3 il y a une 2ème colonne caché qui fait référence à la ligne de la bdd, j'ai pensé utiliser le n° de ligne pour mon problème mais je ne sais pas comment l'écrire.

Merci d'avance si vous pouvez m'éclairer
Bonne aprèm
 

Pièces jointes

Re : Modifier base de donnée via userform

Rebonjour,
J'ai déjà été bien aidé par le forum mais je dois terminer ma bdd pour demain, est-ce quelqu'un pourrait m'orienter dans mon erreur ?

Merci d'avance
Bonne aprèm
 
Re : Modifier base de donnée via userform

Bonjour

Pos contient le numéro de ligne sélectionnée;

Pos = ListeCoupl2.List(ListeCoupl2.ListIndex, 1)

Pour mettre à jour il faut transmettre cette valeur à l'userform4, pour cela il faut dans un module déclarer cette variable en "Public"

Code:
Public pos as long
Ne pas oublier de supprimer toutes les déclarations pour cette variable.

JP
 
Re : Modifier base de donnée via userform

Bonjour jp14

D'abord merci pour ta réponse.
La variable Pos est déjà déclarer dans le module 3, elle permet de chercher la valeur de ma 2ème combobox en fonction de la ligne de la 1er combobox.
Mais en utilisant cette variable pour mon bouton modifier, cela ne fonctionne pas non plus :

Private Sub BoutonModifier2_Click()
Pos = ListeCoupl2.List(ListeCoupl2.ListIndex, 1)
Call ChercheValeurs(Pos)
Unload UserForm3
Ajout2 =False UserForm4.Show (0)
End Sub

Je ne vois pas trop...
 
Re : Modifier base de donnée via userform

Bonjour

La valeur de pos est définie dans l'userform3 lors de la sélection, sa valeur doit être transmise (pos étant une variable publique ) à l'userfom4 pour la mise à jour, il ne faut surtout pas modifier sa valeur.


JP
 
Re : Modifier base de donnée via userform

Re,

Si je comprends bien, en déclarant Pos dans un module, mon USF4 devrait se mettre à jour ? cependant ce n'est pas le cas. J'ai l'impression d'être un boulet je ne comprend pas ce que je dois faire...🙁
 
Re : Modifier base de donnée via userform

Bonjour
Dans l'userform3
on trouve ce code
Set Dep = Sheets("Anticorps secondaires").Range("B" & Posit)
la variable posit peut être remplacé par pos qui est déclaré comme variable pubilque dans le module 3

Code:
Set Dep = Sheets("Anticorps secondaires").Range("B" & Pos)

Pour faire la mise à jour il suffit de mettre le code ci dessus et écrire
dans l'userform4.
Code:
Set Dep = Sheets("Anticorps secondaires").Range("B" & Pos)  
 Dep.Offset(Posit, 6).Value=.Lieu2.Value' par exemple

JP
 
Re : Modifier base de donnée via userform

Bonjour,

J'ai fait les modifications mais cela ne fonctionne toujours pas.
J'ai encore remplacé (dans le USF4) :

Set Dep = Sheets("Anticorps secondaires").Range("B" & Pos)
Par
Set Dep = Sheets("Anticorps secondaires").Range("A" & Pos)

Sinon j'avais un décalage (exemple : le fournisseur se remplissait dans le texbox provenance).
Cependant avec ce code je n'ai toujours pas la ligne sélectionner dans le USF3 qui apparait dans le USF4. Après avoir cliquer "modifier" c'est la ligne suivante de la base de donnée qui apparait et non celle sélectionné ??? bizarre...
Je remets le fichier avec la modif si vous voulez essayer.
 

Pièces jointes

Re : Modifier base de donnée via userform

Bonsoir

J'ai supprimé une variable en mettant 0 à la place.
J'ai rajouté un textbox qui contient le n° de ligne pour info.
Pour simplifier la maintenance il est préférable d'utiliser un seul usf. Pour cela on joue sur la visibilité des boutons et la protection des contrôles.

Par exemple en visualisation on protège les textbox avec les propriétés locked= true et enabled = false, si on clique sur modifier on inverse ces deux valeurs et on rend visible le bouton enregistrer.


A tester

JP
 

Pièces jointes

Dernière édition:
Re : Modifier base de donnée via userform

Bonjour,

Merci pour les modif, j'ai également trouvé que dans mon module Ac secondaire je n'avais pas fait référence à une position, du coup j'ai ajouter Pos. Et cela à l'air de fonctionner.
Effectivement cela parait plus simple d'utiliser qu'un USF, en fait en plus d'être novice en vba je ne suis pas du tout informaticienne, du coup je ne connais pas trop les possibilités. J'y penserais pour ma prochaine base de donnée 😉
Merci encore pour l'aide !
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
15
Affichages
798
Retour