Coper des BDD en fonction d'une date et d'une heure

Bonjour,

Je recherche comment copier des données dans une BDD vers une fiche visuel en fonction d'une date et d'une heure.

Pour être plus précise, j'ai une feuille "prise rdv" et j'aimerais que toutes données de la ligne 4 se recopie dans la feuille "semaine" en fonction de la date et de l'heure.

Je ne sais pas comment le représenté sous forme de macro...

Pouvez vous m'aider ?

Merci.

Bonjour,

Ce n'est pas un problème de macro... du moins pas au départ.

C'est d'abord un double problème de positionnement. Tu as des journées, chaque journée peut occuper une ligne, ce qui sera une colonne dans ton visuel. Sur le visuel, chaque journée se découpe en 13 plages horaires. Il faut donc 13 colonnes correspondantes dans le stockage.

Dans le stockage (annuel), en précisant que pour assurer la correspondance hebdomadaire, il convient de rester sur l'année ISO, donc feuille année de 364 lignes (ou 371 les années de 53 semaines) : la ligne 1 correspond à un lundi et toutes les 7 lignes (8, 15...) on trouvera un lundi. La première colonne visuel est un lundi : donc lorsqu'on aura défini la ligne correspondant à la date, on prélèvera cette ligne et les 6 qui suivent pour servir le visuel.

Pour le stockage, sous réserve d'éléments dont je n'ai pas encore pris connaissance, je réserve la colonne A pour d'éventuelles notations d'ordre qui s'avèreraient utiles, je réserverais B pour indiquer (sous forme codée) les fusions à opérer pour ce jour dans le visuel), et donc C à O pour les 13 plages horaires.

Il y a donc à mettre au point un système d'adressage : 1) de la saisie vers le stockage ; 2) du stockage vers le visuel.

Saisie => traduire date en ligne ; correspondance heure-7 avec colonne(C:O)

vers Visuel => traduire date cherchée (lundi) en ligne ; colonne 1 à 7 du visuel = ligne lundi trouvé à ligne lundi+6 ; lignes 1 à 13 de chaque colonne du visuel = colonne 1-13 (de C à O) de chaque ligne...

Particularités : concaténer les 4 éléments à stocker par RV saisi en les séparant par des ";" (par exemple) qu'on transformera en Chr(10) lors de l'affichage visuel ;

codage automatique des fusions (à partir de la définition des heures de début et fin), si hf-hd>1, il y a fusion, qu'on code de façon exploitable : (hd-7)*100+(hf-hd) ; on a ainsi un nombre à 3 ou 4 chiffres dont la division entière par 100 fournit le numéro de 1re cellule (ligne) à fusionner et le reste de la division par 100 le nombre de cellules à fusionner ; à faire précéder par un ";" pour obtenir une séparation des fusions si plusieurs dans une même journée.

Ce que je ferais également c'est de ne surtout pas se lancer dans la création de feuilles de stockage annuelle (ou base de données, comme on voudra) mais les générer automatiquement. Si l'on a bien défini les emplacements à utiliser, on n'a jamais besoin de les voir, et encore moins de les créer, de façon que le processus demeure entièrement transparent pour l'utilisateur.

Restera encore à affiner la saisie pour que la boîte de saisie serve également aux modifications éventuelles...

Sur le problème spécifique que tu posais, si l'on suit les réponses que j'y apporte, on peut imaginer 2 fonctions renvoyant l'année cherchée (= feuille de stockage) et le jour dans l'année (= ligne de la feuille), qu'il suffira donc d'appeler pour rendre ces infos utilisables. Pas besoin pour les horaires puisque la correspondance est directe.

La macro, c'est ce qu'on écrit à la fin, une fois le processus entièrement défini. Il n'y a quasiment plus qu'à traduire chaque action à réaliser par une ligne de code...

Comme indiqué ailleurs à ta collègue, je continue à réfléchir à la chose (en dormant !)

Si je peux prendre le temps de m'y pencher un peu plus, je préfère poursuivre sur le premier modèle récupéré que j'ai déjà commencé à modifier.

Le dernier point de mes réflexions portait sur la saisie de la date, qui ne me paraissait pas assez satisfaisante...

Est-ce que vous disposez de contrôles Calendar ou DTPicker utilisables dans un Userform (ou ailleurs mais c'est Userform qui nous intéresse) ?

Cordialement.

Bonjour MFerrand,

Merci pour tous ces conseils nous allons essayés de résoudre ces problèmes.

Merci

Bonjour,

J'ai réussit à réaliser le UserForm, il ne me manque plus qu'a réaliser une mise en forme conditionnelle qui permet de colorier des cellules dans mon visuel en fonction d'une date, d'une heure de début et d'une heure de fin ...

Mais après plusieurs recherches je n'arrive toujours pas à réaliser cette mise en forme conditionnelle..

J'aimerais que chaque employé correspondent a une couleur différente dans chaque planning...

  • Je sais également qu'il faut une colonne qui récapitule l'heure de début et l'heure de fin mais impossible de le réaliser en format "HH:MM-HH:MM"
  • Nommer la plage de chaque nom des employés
  • Nommer la colonne (H début+ H fin)
  • Réaliser une fonction qui ressemble à ca (=ET(("9:00"+(LIGNE()-*"0:30")>=("0:0"+GAUCHE(plage H début + H fin);5));("9:00"+(LIGNE()-8)*"0:30")<("0:0+DROITE(plage H début + H fin);5)))

Pouvez-vous m'aider ?

Merci.

Bonjour,

Je crois que décidément, tu te compliques... ton découpage porte sur des plages horaires d'une heure. Travaille donc avec des entiers !

Pour les MFC, si je me souviens bien, il y avait déjà problème avec la mise en forme de base (présence ou non d'un RV) : d'une part les fusions-défusions successives ont pour effet d'émietter la définition de la MFC et celle-ci s'avérait "instable". A ce stade j'avais déjà opté pour l'abandon de la MFC dans ce cas au profit d'une reconstitution de la mise en forme à chaque changement. Il est probable qu'il faille faire de même pour toute mise en forme spécifique...

Cordialement.

Merci de votre réponse, j'ai donc abandonné les MFC suite à votre aide et j'ai opté pour le réaliser sous forme de macro.

J'ai donc fait des recherches pour le réaliser mais je rencontre un disfonctionnement...

capture

Je voudrait que la macro face une boucle pour que celle si rajoute le nombre de ligne en fonction de l'heure de fin

Merci de votre aide

C'est de la suractivité ! Je ne suis pas en mesure de te répondre, n'ayant pas du tout suivi ton cheminement...

Comme je l'ai dit je ne sais plus où (ton projet occupant plusieurs fils), je m'y intéresse (selon dispo.), j'ai commencé à y tripatouiller à partir d'une version récupérée au début (ou du moins il y a quelque temps maintenant), j'y ai rapatrié (à partir d'un autre fil) le Userform, pour ne pas en faire un complètement déconnecté de votre travail.

Quoique j'ai commencé par supprimer le code, supprimer des contrôles, en modifier, en ajouter d'autres, renommer tous les contrôles à manipuler... (il reste tout de même des traces de l'état antérieur !)

La mise en forme étant un aspect secondaire et dépendant de la procédure principale de mise à jour, je ne vois donc pas très bien où tu veux en venir avec une macro de mise en forme au niveau Userform alors que cette question intéressera l'affichage ultérieur.

Bonjour,

Nous avons réussi à faire les plages horaires.

Je sais que tu as travailler sur notre fichier mais nous avons quand même essayer de faire quelque chose.

Nous avons un problème avec le bouton Supprimer; enfaite je veux pouvoir supprimer un rendez vous grâce à ce bouton mais le probleme c'est que la macro ne fonctionne pas. Il prend les données qu'il y a sur la feuille semaine et non sur la feuille prise.

Ci joint notre fichier

Merci d'avance,

Rechercher des sujets similaires à "coper bdd fonction date heure"