XL 2016 Mise à jour BDD par USF

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 !

Mulder

XLDnaute Junior
Bonsoir à tous,

Je sais que le sujet a déjà été abordé, j'ai parcouru plusieurs topics du forum et d'autres sites, mais je cale (deux apm de tests d'adaptation de propositions de macros repiquées ici ou sur d'autres sites, je ne comprends pas les lignes de code).
Tout est dans le titre, je souhaite gérer une BDD via un USF. C'est con, ça a déjà été abordé, mais je ne comprends pas le fonctionnement.
Pas de distinction Créer/Modifier, je choisis une date dans une ComboBox, ça va chercher les données affectées à cette date (s'il n'y en a pas, les TextBox restent vides).
Quand je valide, je veux que ça renseigne les données dans la BDD (et que ça écrase s'il y en a déjà, mais au final, créer/modifier revient au même).
Ci-joint mon fichier, épuré des tests que j'ai pu faire...
Une âme charitable peut-elle m'expliquer comment faire ?

D'avance merci...
Laurent
 

Pièces jointes

Bonjour Laurent

je remarque que sur ton Userform tu as deux période de représentées par des Controls
'Service du midi
'Service du soir
Peux tu nous en dire plus ?
car dans ta BDD tu n'as qu'une période par date.
pourquoi lde Colonnes "jour" et "mois" ?
les Dates permettent de faire des recherches par jours et ou par mois .
pourquoi utilises tu la propriété:
VB:
Private Sub ComboBox1_AfterUpdate()
plutôt que
Code:
Private Sub ComboBox1_Change()
Bonne journée
jean marie
 
Bonjour
Comme Chti que je salue , même remarque concernant le service du soir.
Pourquoi dans le setting inscrire les tous les jours de l'année.
Je suppose qu'il y a des jours de fermeture?
Pour moi , il faut remplir cette base au jour le jour.
les analyses pourront se faire via des tableaux croisés dynamiques.
es tu sur que l'userform Paramètres généraux est bien utile?
 
Bonjour Chti, Bonjour JM,

J'ai allégé l'exemple au maximum, en supprimant des onglets et en me limitant exclusivement à l'USF qui me pose problème.
L'USF paramètres généraux permettra à terme de modifier certains paramètres (début de période par exemple, l'idée étant de pouvoir suivre une période d'un an) en fonction des caractéristiques de l'entité étudiée.
Les colonnes "jour" et "mois" servent pour des statistiques que je développerais par la suite.
Le fichier final comprend deux périodes par date (midi et soir), pas dans l'exemple.
Enfin, j'ai utilisé la propriété AfterUpdate plutôt que Change parce que si la date est tapée à la main plutôt que choisie dans le menu déroulant, au premier caractère saisi, ça plante l'USF.

Ici, c'est très allégé pour que je comprenne comment mettre à jour la base de donnée juste avec les données d'un service, je dupliquerai pour le reste...
 
Bonsoir JM,
Impeccable, suite à la deuxième proposition, puisqu'il y a la possibilité d'écraser des données existantes.
Tu es même allé plus loin avec le formulaire pour gérer les dates et obliger l'utilisateur à renseigner tous les champs !!
Ca fait du code à digérer et à adapter à mes besoins, mais c'est plus qu'il ne m'en fallait, merci à toi !!
 
Salut JM,
Question sur ta proposition que je n'avais pas vu hier : tu n'es pas passé par un tableau structuré pour centraliser les données saisies.
Du coup, ta macro intègre le fait de recopier des calculs quand tu recopies les données.
Il n'était pas possible de conserver le tableau structuré ?

Si je comprends bien la partie de la macro qui recopie les données saisies, les données sont recopiées dans la colonne source de chaque TextBox, à partir du moment où la ligne est identifiée par la date.
En théorie, si j'ajoute des TextBox pour de nouveaux champs, ça devrait marcher ? En l'occurrence, ça n'est pas le cas...
 
Bonjour
Pour rajouter des textbox dans l'userform
- Mettre en place ta text box dans l'userform
- Dans la propriété Tag de la text box mettre:
- en premier la colonne de destination dans la Feuille BaseDeDonnée
- en second le séparateur (-)
- en troisième le type de données ( num pour numérique, Dat pour date, Str pour string)
et voila c'est fait
Pour le tableau structuré , il y des excels anciens qui ne l'on pas ( excel 2003 sauf erreur) donc pas utilisé.
pour les formules : je les intègre dans la macro , car je n'aime pas les mix macro et formule dans une
feuille.

Pour la ligne dans la base : 2 cas
- Date connue dans la base : transfert des données dans cette ligne ou possibilité de la supprimer
- Date non connue dans la base : création d'une nouvelle ligne et tri dans la base selon la date.
 

Pièces jointes

Dernière édition:
Re,

Pour rajouter des textbox dans l'userform
- Mettre en place ta text box dans l'userform
- Dans la propriété Tag de la text box mettre:
- en premier la colonne de destination dans la Feuille BaseDeDonnée
- en second le séparateur (-)
- en troisième le type de données ( num pour numérique, Dat pour date, Str pour string)
et voila c'est fait

Impeccable, c'est la partie à comprendre qu'il me manquait !!
Merci JM !
 
- 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

Discussions similaires

Réponses
0
Affichages
599
Retour