Probleme de Userform de modification

barbalex

XLDnaute Nouveau
Bonjour,
Je suis en train de monter un projet professionnel en créant une mini base de données répertoriant deux types de textes et contenant 8 champs. Cette base contient un Userform de saisie, un Userform de consultation et j'ai créer récemment un Userform de modification. Ce Userform de modification est accessible lors d'une consultation en cliquant sur un bouton d'action "modifier". Lorsque l'on clique sur ce bouton d'action, la consultation active se calque sur ce nouveau Userform, ainsi les valeurs présentent dans les différentes textbox du Userform de consultation apparaissent dans le Userform de modification (qui a la meme structure que le Userform de saisie).
J'ai réussi à calquer 6 des 8 champs car ce sont des textbox et un optionbutton mais les deux autres champs à calquer doivent passer de textbox à checkbox et à combobox et je n'ai pas l'enseignement algorithmique adéquat pour réussir cela. De même, je n'arrive pas à réaliser le code du bouton "Valider la modification".
Pouvez-vous m'aider sur ce problème s'il vous plait ?

Ci-joint, le fichier excel pour plus de clarté.

Merci
 

Pièces jointes

  • BDD index.xlsm
    67.8 KB · Affichages: 96
  • BDD index.xlsm
    67.8 KB · Affichages: 97
  • BDD index.xlsm
    67.8 KB · Affichages: 108

barbalex

XLDnaute Nouveau
Re : Probleme de Userform de modification

Bonjour,
Après avoir travaillé dessus ce week-end, j'arrive à un petit résultat mais il me manque quelque chose. Maintenant, je peux faire une modification mais celle ci crée une nouvelle ligne et ne supprime pas l'ancienne.
Ce que je voudrais c'est que lorsque je clique sur le bouton "valider la modification", la ligne modifiée remplace l'ancienne ligne mais là elle se rajoute en tête de liste et l'ancienne ligne reste dans la base.
Comment puis-je faire ?

Ci-joint le nouveau fichier en PJ

Merci
 

Pièces jointes

  • BDD index.xls
    164 KB · Affichages: 99

nyko283

XLDnaute Occasionnel
Re : Probleme de Userform de modification

Bonsoir,

tu peut esayer de récupérer le numero de ligne correspondant à l'article que tu modifie
-soit depuis la consultation, et que tu envoi à l'userform de modification
donc par exemple remplacer :
Code:
Private Sub CommandButton4_Click()
UserForm3.Show

End Sub
par
Code:
Private Sub CommandButton4_Click()
Userform3.Labelx.caption=Userform2.Labely.Caption
UserForm3.Show

End Sub

dans les Userform tu peut creer un label ,Que tu masque ou laisse visible c'est comme tu veut,;)et tu peut ainsi avoir le numéro de ligne sur laquelle tu doit écraser les données et non insérer une nouvelle ligne, comme tu le fait avec l'userform de création.

- soit en faisant une recherche depuis les données, utilise la methode FIND

Bon dévellopement
 

barbalex

XLDnaute Nouveau
Re : Probleme de Userform de modification

Bonjour Nicolas,
Merci pour ta réponse, j'ai compris pour l'histoire des labels mais je ne vois pas comment le faire et comment associer le numéro de la ligne en consultation à ce label. Quelque chose du genre : Labely.caption=..... ??
 

nyko283

XLDnaute Occasionnel
Re : Probleme de Userform de modification

NE connaisant pas beaucoup la méthode offset et n'arrivant pas trop à voir comment tu fait pour récuperer les valeurs que tu met dans l'userform consultation, je te conseillerais alors plutot de passer par une recherche "Find" Dans ta base de donnée en recherchant la nomenclature par exemple ( ou tout autre mais pourvu qu'il soit unique) vois le fichier joint, j'ai ajoute un label sur l'Usf3 et modifié la macro de l'evenement Activate de l'usf3 ainsi que la macro de bouton3.
 

Pièces jointes

  • ton file.xls
    167 KB · Affichages: 113

barbalex

XLDnaute Nouveau
Re : Probleme de Userform de modification

Merci de ton aide nyko, il y avait juste un petit problème que la valeur des optionbutton et des checkbox se répétaient mais j'ai réglé l'affaire.

Par contre lorsque je modifie deux fois la même ligne et que je souhaite la modifier une troisième fois, une erreur apparaît :

Erreur d'exécution '91' : Variable objet ou variable de bloc With non définie
et quand je clique sur débogage, il me surligne ce code : Me.Label15.Caption = macel.Row

D'où cela peut-il provenir ?
 

nyko283

XLDnaute Occasionnel
Re : Probleme de Userform de modification

je viens d'essayer sans probleme, dit moi exactement comment tu quel bouton tu appuie ,ce que tu modifie...
car sur mon PC cela ne plante pas ,je suis sur excel 2003 alors est ce que cela vinet de la...
 

barbalex

XLDnaute Nouveau
Re : Probleme de Userform de modification

Par exemple la première ligne.
L'objet est "bla bla bla". Je fais modifier, je rajoute "lo" ce qui me donne "bla bla bla lo".
Je renouvelle l'experience ce qui me donne "bla bla bla lo lo".
Et donc lorsuqe que j'appuie une deuxieme fois sur le bouton "valider la modification", j'apparait donc sur l'Userform de consultation et lorsuqe je veux encore modifier cette ligne en cliquand sur "modifier", l'erreur '91' apparaît. J'espere que ce n'est pas une histoire de compatibilité
 

nyko283

XLDnaute Occasionnel
Re : Probleme de Userform de modification

oui je viens de voir, car lors du troisieme passage l'usf consultation est vide alors oui il ne trouve poas de ligne vide. mais si tu remet un choix alors il continuer de fonctionner normalement, peut voir pour lorsque tu valide les modification les mettre aussi directement sur l'usf consultation, de plus j'ai vu que pour "regler les affaires des erreurs" tu les passe toutes a False et donc, des lors meme si tu les modifie les modification ne seront pris en comptes
y a encore du boulot je crois...
 

barbalex

XLDnaute Nouveau
Re : Probleme de Userform de modification

Comment puis-je faire pour modifier les optionbutton et les ckeckbox alors ? J'essaie de supprimer la valeur contenue mais cela ne fonctionne pas non plus. Je n'y arrive pas du tout.
 

nyko283

XLDnaute Occasionnel
Re : Probleme de Userform de modification

Bonjour Barbalex,

Dans la ligne
.Range("B" & Me.Label15.Caption) = .Range("B" & Me.Label15.Caption) & Me.Controls("CheckBox" & i).Caption
supprime la partie en rouge

car la tu demande en fait de prendre la valeur qu'il y a deja dans la cellule et d'ajouter le label.caption donc en supprimant la partie rouge tu ecrase les données qu'il y avait avant, par contre si il doit y avoir plusieur ville il faudrat que l'on rajoute une condition...

n'oubli pas de retirer aussi les passage a false de tes checkbox et optionbutton
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet