Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2019 Code VBA Formulaire

DUPONTMARION

XLDnaute Nouveau
Bonjour,

Je me suis bloquée dans mon code, plusieurs choses ou je suis bloqué :
1 / je n'arrive pas à ajouter mon nouveau client saisie lorsque je clique sur Ajouter dans ma feuille BDD
2 / lorsque je fais rechercher, je n'arrive pas à mettre en Prévisualisation les champs : statut (BDD Cellule BF), civilité (cellule Q), nom (AU), prénom (AT), fonction (BG), téléphone (H), mail(AV), type(BE); commentaire(BD), et besoin(BH)....

3 / Enfin, j'aimerai pouvoir enregistrer les modifications qui s'actualise dans la BDD lorsque je clique sur Enregistrer

Merci beaucoup pour votre aide précieuse.

Marion
 

Pièces jointes

  • MD1.xlsm
    83.2 KB · Affichages: 17

bbb38

XLDnaute Accro
Bonjour DUPONTMARION,
Peut-on modifier l’organisation de la feuille « Données » de ton fichier ?
Personnellement, j’évite de mettre des accents (aigu, grave, etc…) ou des caractères spéciaux sur les noms des feuilles ou sur les variables.
Cordialement,
Bernard
 

DUPONTMARION

XLDnaute Nouveau
Bonjour,
En fait, j'ai acheté une base client avec les données affichés comme inscrit dans mon fichier, lorsque j'aurai réussi a réaliser mon formulaire je copie collerai les 1200 données que j'ai acheté...
Je note pour les caractères spéciaux, merci
 

p56

XLDnaute Occasionnel
Bonjour à tous,

Pour apporter une réponse, je me permets de proposer ma méthode via une petite démo simple (mais pas simpliste)
Les principes utilisés : Tableau(au sens array), utilisation des Tag, module de classe, code concis et facilement transposable.

Description :
* un onglet "Bdd" avec un tableau structuré ordinaire "T_Bdd", de A à K (11 colonnes)
* chaque ligne est identifiée avec un n° d'identification unique (comme le votre)

* un Usf qui s'ouvre sur clic (de A à K) sur une ligne (du tableau et au dessous du tableau pour créer un nouvel enregistrement) ou clic sur le bouton "Nouveau"
* le clic place les 11 info d'une ligne (renseignée ou vide) dans un tableau(array) nommé ici "Td"
* l'Usf comprends 8 Textbox et 2 Combobox pour les 10 info signifiantes modifiables. L'Id est stockée dans le Tag de l'usf.

* à l'ouverture de l'Usf, les 8 texbox et les 2 combobox sont ajoutés à la classe
* chaque textbox/combobox est identifié par sa propriété Tag, valeur correspondant à son n° de colonne dans T_Bdd (ici Nom=2, etc ...)
* la classe contient 2 objets génériques Cbx et Tbx
* une modification d'un Tbx (donc d'un textbox) ou d'un Cbx modifie automatiquement la valeur de Td correspondant à son Tag (ex nom=2, etc ...). Le code est simplissime :
VB:
Private Sub Tbx_Change()
    Td(1, Tbx.Tag) = Tbx.Value
End Sub
code similaire pour les Cbx

* après modif/consultation, l'usf se ferme via 2 boutons classiques ou la croix.
* le bouton d'enregistrement active la procédure "Sauve"

* la procédure Sauve copie simplement le contenu de Td dans T_Bdd.
* en cas de nouvelle ligne, un n° Id est généré tout seul via le Worksheet_Change de la feuille Bdd


Avantage de la méthode :
* code très simple et concis
* facilement adaptable pour un nombre quelconque de colonnes :
- il suffit d'adapter A:K par A:BH pour vous à 2 endroits du code
- d'utiliser votre Userform en renseignant les Tag des différents contrôles
- et d'ajouter vos quelques particularités
* Pour adapter à votre cas, il n'y aura pas beaucoup de lignes de code à ajouter.

A noter : l'explication de la méthode est bientôt plus longue que le code du fichier
(Les données du fichier démo sont fictives)

P.
 

Pièces jointes

  • Démo_Bdd.xlsm
    32.1 KB · Affichages: 6
Dernière édition:

Discussions similaires

Réponses
6
Affichages
910
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…