XL 2016 Mise à jour BDD par USF

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

  • MAJ BDD.xlsm
    55 KB · Affichages: 15

ChTi160

XLDnaute Barbatruc
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
 

JM27

XLDnaute Barbatruc
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?
 

Mulder

XLDnaute Junior
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...
 

Mulder

XLDnaute Junior
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 !!
 

Mulder

XLDnaute Junior
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...
 

JM27

XLDnaute Barbatruc
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

  • MAJ BDD.xlsm
    72.9 KB · Affichages: 11
Dernière édition:

Mulder

XLDnaute Junior
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 !
 

Discussions similaires

Statistiques des forums

Discussions
312 158
Messages
2 085 830
Membres
102 994
dernier inscrit
snoopy70