Modification base de donnée via userform (formulaire)

lebast

XLDnaute Junior
Bonjour à tous,

je me permets de créer ce post car j'ai plusieurs questions concernant la conception de formulaire Userform.

Dans un but personnel, je me suis lancé le défis de créer un fichier excel qui me permettrait via un formulaire de remplir une base de données clients et un autres formulaires qui me permettrait de modifier les données d'un client.

J'ai réussis à créer le premier presque à 100% (malgrés que je n'arrive pas à créer un dernier point)

Cependant je bloque sur le second et c'est pour cela que j'ai besoin de votre aide.

Je vous énumère les différents point qui me bloque :

1/ dans le premier userform qui souvre en appuyant sur le bouton "création nouveau client", je n'arrive pas à faire deux choses :
a/ consolider les trois boutons du bas (effacer formulaire, enregistrer et fermer formulaire)
b/ dans la textbox "code client" faire apparaitre le code client calculer, je m'explique : je souhaiterais incorporer une formule du style =MAX("BD Client"!A3:A1000)+1. qui calcul le code client automatiquement en fonction de ceux déjà créer. celui ci devrait apparaitre dés l'ouverture du formulaire de création de client.


2/ dans le second formulaire, je n'arrive pas à alimenter ma list box ("Raison social/nom") avec les données présentent dans la feuille "BD client".
une fois le nom sélectionner je souhaiterais que le formulaire importe les données pour que je puisse les modifier et les réenregistrer dans la base de données.

j'ai bien essayer de prendre exemple sur des tuto ou des fichiers exemple mais je bloque ne comprenant pas pourquoi.


je tiens également à vous préciser mes motivations :
- je ne souhaite pas que vous fassiez tout le travail !
- au contraire je veux comprendre et m'améliorer en vba

PS : mon niveau n'est pas très élevé mais je suis de nature curieuse et je n'aime pas abandonné!

je vous remercie par avance de toute l'aide que vous pourrez m'apporter !

Toute vos critiques sont les bienvenues !!
 

Pièces jointes

  • Travaux BD Test.xlsm
    112.8 KB · Affichages: 266
Dernière édition:

Modeste geedee

XLDnaute Barbatruc
Re : Modification base de donnée via userform (formulaire)

Bonsour®
pourquoi créer 2 formulaires quasi identiques
un seul devrait suffire :rolleyes:
en faisant apparaitre les boutons de gestion : Suivant, Précédent, Nouveau, Modification, Suppression, Validation
c'est l'appui sur l'un ou l'autre de ces boutons qui déterminera l'action à effectuer
faisant alors appel à des procédures communes facile à modifier indépendamment les unes des autres
- initialisation Raz du formulaire
- Recherche Enreg
- Ajout enregistrement
- transfert formulaire vers BdD
- transfert BdD vers formulaire
- suppression enregistrement
- contrôles de validité

il s'agit de principes éprouvés et recommandés de découpage modulaire et fonctionnel

nb :
le N° d'enregistrement doit être unique
un code client ne doit faire référence qu'a un seul client
un code client peut être rattaché de 1 à "n" enregistrements
 
Dernière édition:

lebast

XLDnaute Junior
Re : Modification base de donnée via userform (formulaire)

Modeste Geedee,

je te remercie tout d'abord de répondre à mon post.

Je pense que tu as raison concernant l'utilisation d'un seul formulaire (plus ludique)

cependant ayant un petit niveau en VBA, je ne savais pas par ou commencer, j'avais donc choisis cette option.
ce sera plus facile à créer ?

si tu as des conseils ou des exemples de bouts de macro je suis preneur, car ma difficulté c'est comment reremplir tout les champs du formulaire lorsque je veux modifier mes données clients ?

bien cordialement,

et merci encore !
 

lebast

XLDnaute Junior
Re : Modification base de donnée via userform (formulaire)

Jean-Marcel,

Wahou ! c'est du super travail que vous avez fait !! c'est exactement ce à quoi je voulais arriver !!
maintenant il va falloir que je le comprenne et pour ca je vais aller fouiller dans le code !!

je reviens vers vous !

encore un gros merci !!!
 

lebast

XLDnaute Junior
Re : Modification base de donnée via userform (formulaire)

Bonjour Jean-Marcel,

Tout d'abord je vous remercie pour le travail que vous avez effectué, je scrute les codes pour comprendre !
je vais essayer de refaire la même chose pour des fournisseurs ou article par exemple pour m'entrainer.

encore un gros merci !

cordialement,
 

lebast

XLDnaute Junior
Re : Modification base de donnée via userform (formulaire)

Jean Marcel,

j'ai essayé de reprendre tout votre code pour l'appliquer à un nouveau userform qui traite des articles. j'ai fais un copié coller pour ensuite modifier les noms des textbox et combobox mais ca ne fonctionne pas très bien.

pour ouvrir le formulaire il suffit de cliquer sur créer/modifier article

je m'explique :
- les listes déroulantes ne se charge pas pourtant j'ai bien repris le même code

- les boutons enregistrer // effacer la feuille // et supprimer ne fonctionne pas non plus !

De plus je me demandé si il était possible de modifier le numéro automatique qui se génère à la création d'un article ou d'un client ? par exemple à la place de "1" pour le client n°1 avoir C0001 ??

je vous joins le fichier en PF

je vous remercie encore !

bastien
 

Pièces jointes

  • Fichier Gest TEST.xlsm
    59.9 KB · Affichages: 230
  • Fichier Gest TEST.xlsm
    59.9 KB · Affichages: 198
  • Fichier Gest TEST.xlsm
    59.9 KB · Affichages: 265

lebast

XLDnaute Junior
Re : Modification base de donnée via userform (formulaire)

Jean-Marcel,

je vous remercie vraiment de passer du temps pour m'apprendre de nouvelles choses.

j'ai suivis vos recommandations et comme convenus je vous re-post le fichier.

que dois-je faire maintenant ?

je n'ai touché à rien d'autres que ce que vous m'avez demandé.

cordialement
 

Pièces jointes

  • Fichier Gest TEST.xlsm
    60.4 KB · Affichages: 112
  • Fichier Gest TEST.xlsm
    60.4 KB · Affichages: 129
  • Fichier Gest TEST.xlsm
    60.4 KB · Affichages: 142

lebast

XLDnaute Junior
Re : Modification base de donnée via userform (formulaire)

j'ai modifié tout les noms de champs dans le code que j'avais copié sur celui que vous m'aviez donné hier !!
 

Pièces jointes

  • Fichier Gest TEST.xlsm
    60.8 KB · Affichages: 180
  • Fichier Gest TEST.xlsm
    60.8 KB · Affichages: 172
  • Fichier Gest TEST.xlsm
    60.8 KB · Affichages: 154

lebast

XLDnaute Junior
Re : Modification base de donnée via userform (formulaire)

j'ai rempli les listes déroulantes dans la feuille "Déroulante"

je joins le fichier avec

cordialement,
 

Pièces jointes

  • Fichier Gest TEST.xlsm
    66 KB · Affichages: 166
  • Fichier Gest TEST.xlsm
    66 KB · Affichages: 177
  • Fichier Gest TEST.xlsm
    66 KB · Affichages: 229

lebast

XLDnaute Junior
Re : Modification base de donnée via userform (formulaire)

bonjour Jean-Marcel,

j'ai bien suivis votre méthode, et je vous avoue que les commentaires sont très utile.

Cependant faut-il que j'efface tout le code que j'avais copié du premier userform?

car après avoir suivis votre démarche, j'ai un message d'erreur qui s'affiche, je vous le joint.
 

Pièces jointes

  • Capture.PNG
    Capture.PNG
    14.8 KB · Affichages: 169
  • Capture2.PNG
    Capture2.PNG
    3.3 KB · Affichages: 139
  • Capture.PNG
    Capture.PNG
    14.8 KB · Affichages: 150
  • Capture2.PNG
    Capture2.PNG
    3.3 KB · Affichages: 118
  • Capture.PNG
    Capture.PNG
    14.8 KB · Affichages: 129
  • Capture2.PNG
    Capture2.PNG
    3.3 KB · Affichages: 147

lebast

XLDnaute Junior
Re : Modification base de donnée via userform (formulaire)

Je me permet de vous poser des questions et j'espère que cela ne vous dérange pas.

il y a une chose que je ne comprends pas :

- à quoi correspond,
' je lance la macro InitDérooulantArticle et non pas InitDérooulantClient
InitDéroulantArticle
InitDéroulantArticle = une macro ??
 

lebast

XLDnaute Junior
Re : Modification base de donnée via userform (formulaire)

si je comprend bien, et mon but est de comprendre

la macro si dessous, créé la macro "InitDéroulantArticle"

Sub InitDéroulantArticle()
Dim NbLigneUtilisée As Integer
With Sheets("BD Article")
NbLigneUtilisée = 0
For Each Cell In .Range("B2:B" & .Range("B1000").End(xlUp).Row)
Me.ComboDesignationArticle.AddItem
Me.ComboDesignationArticle.List(NbLigneUtilisée, 0) = Cell
Me.ComboDesignationArticle.List(NbLigneUtilisée, 1) = Cell.Row
NbLigneUtilisée = NbLigneUtilisée + 1
Next
End With
End Sub

encore merci du temps que vous m'accorder
 

lebast

XLDnaute Junior
Re : Modification base de donnée via userform (formulaire)

je viens d'essayer mais ca ne semble pas être ca.

je vous promet que j'essais de bien faire est de comprendre.

déjà qu'est ce que vous diriez si nous supprimions tout les codes qui ne serve à rien pour le moment car je m'y perd un peu.

pourriez vous me montrer le bout de code qui créé la macro InitDéroulantArticle.

encore Merci
 

Discussions similaires

Réponses
17
Affichages
626

Statistiques des forums

Discussions
312 176
Messages
2 085 967
Membres
103 070
dernier inscrit
jujulop