Récupération de données d'un userform sous condition

Averell1976

XLDnaute Junior
Bonjour à toutes et à tous,

D'avance, merci pour l'aide que vous pourrez m'apporter.
Je vais tâcher d'exposer ma problématique:
Je voudrai récupérer les données renseignées dans un userform sous certaines conditions (voir fichier joint) dès lors que je clique sur le bouton "Valider". Ces données concernent la participation de résidents handicapés à des activités planifiées
1/ En fonction du jour de la semaine choisi (combobox rouge, sélectionner l'onglet correspondant: si j'indique "Lundi matin" dans le userform, je vais sélectionner automatiquement l'onglet "LUNDI MATIN"; pour cela, pas trop de souci je crois
2/ Une fois que je suis sur le bon onglet, je voudrai récupérer les autres données renseignées dans le userform (nom du résident, heure début, heure fin, activité.....) dans les cellules correspondantes de l'onglet); pour une meilleure compréhension, j'ai inséré des commentaires dans les cellules des différents onglets.
Les noms des activités indiquées devront se mettre les uns à côté des autres (cellule B1 à T1)
Pour chacune des activités, récupérer les heures de début et de fin.
Les noms des résidents devront se mettre les uns en- dessous des autres (cellule B3 à B13 pour la 1ere activité, E3 à E13 pour la deuxième etc.... (7 activités par onglet)). Idem pour les animateurs (B15 à B25, E15 à E25...)

Voilà. Je ne sais pas si je suis très clair; par contre je suis largué total.

Merci à vous pour votre aide!!!
 

Pièces jointes

  • PLANNING.zip
    60.3 KB · Affichages: 25
  • PLANNING.zip
    60.3 KB · Affichages: 27
  • PLANNING.zip
    60.3 KB · Affichages: 28

Paf

XLDnaute Barbatruc
Re : Récupération de données d'un userform sous condition

Bonjour

pas sûr d'avoir tout compris.

pour la gestion des données entre Userform et feuilles voir les tutos sur ce site (il en existe d'autres) :

Ce lien n'existe plus

bonne lecture
 

CHALET53

XLDnaute Barbatruc
Re : Récupération de données d'un userform sous condition

Bonsoir,

Je peux comprendre que tu sois dans la panade.

Je ne sais pas si je peux t'aider. toutefois quelques questions :

Le même jour (par exemple le Lundi matin) peut-il y avoir plusieurs fois la même activité à des horaires différents? (exemple : marche de 9 h à 10 h et marche de 11h à 12 h)
Dans ton userform, à chaque validation, tu n'as qu'un seul résident participant : renouvelles-tu intégralement ton userform pour saisir un nouveau participant ?

Que fait-on des zones : OA OB et suivantes?
Que fait-on si des rubriques ne sont pas renseignées?
A quoi servent les zones Participations sur semaine?
Avec le bouton Modifier : que veux-tu modifier?

Autre chose : tu as beaucoup de cellules fusionnées : c'est souvent un casse-tête en VBA

a+
 
Dernière édition:

Averell1976

XLDnaute Junior
Re : Récupération de données d'un userform sous condition

Bonjour, merci de ton aide.
Pour répondre à tes questions:
Il y a 7 activités par jour, mais jamais 2 fois la même.
Oui je renouvèle intégralement le userform à chaque saisie.
Les zones OA, OB et suivantes serviront à mettre une couleur dans la cellule où j'ai le nom du résident; Ca, je sais faire.
Pas grave si les rubriques ne sont pas renseignées
Avec le bouton MODIFIER.... Je ne sais pas encore ce que je veux faire.
Je sais que les cellules fusionnées, c'est un casse- tête.....

Mais VBA c'est un casse- tête tout court..... mais tellement pratique...

J'ai tout de même avancer un peu: dans le fichier joint, j'arrive à récupérer les uns en- dessous des autres les noms des résidents que je renseigne dans le userform.
Par contre il faudrait que je fasse de même pour les activités (à récupérer les unes, à côté des autres), les horaires (idem), le nom des animateurs... etc
 

Pièces jointes

  • PLANNING v1.zip
    61.4 KB · Affichages: 15
  • PLANNING v1.zip
    61.4 KB · Affichages: 19
  • PLANNING v1.zip
    61.4 KB · Affichages: 19
Dernière édition:

CHALET53

XLDnaute Barbatruc
Re : Récupération de données d'un userform sous condition

Bonjour,

Un essai avec une approche différente
Je n'ai pas utilisé ton dernier fichier car j'avais commencé

Quelques modif

Une entête en ligne 14 sur toutes les feuilles
Possibilité de saisir plusieurs participants reportés dans la listbox du bas : Une question est posée à chaque saisie pour préciser Participation sur Semaine
Cette listbox est vidée en activant Validation
Les contrôles ne sont pas forcément au top
Pour l'instant, rien de programmer sur Modifier

a+
 

Pièces jointes

  • Averell PLANNING ACTIVITES - Copie.xls
    410.5 KB · Affichages: 26

Averell1976

XLDnaute Junior
Re : Récupération de données d'un userform sous condition

Pffff...... Ca marche au top. En effet, j'avais pas la bonne approche du tout. Je te remercie infiniment de de ton aide précieuse.
Je regarde ton code et reviens vers toi si je ne comprend pas quelque chose... mais tu l'as commenté en plus....
C'est parfois énervant d'être aussi mauvais.
Encore merci
 

CHALET53

XLDnaute Barbatruc
Re : Récupération de données d'un userform sous condition

Re,

Une autre version intégrant la suppression de participants pour un jour donné sur une activité donnée
quelques modifs nécessaires dans le USF
Intégration de case d'option (ajouter / supprimer)
A partir du choix du jour : recherche des activités sur cette journée pour alimenter la combo Combobox_Activites
A partir du choix de l'activité, alimentation de la listbox du bas
double click entraine la suppression dans la listbox et dans la feuille concernée

En mode Ajout, le double click supprime l'élément concerné de la listbox uniquement

Il peut rester des bugs

a+
 

Pièces jointes

  • Averell PLANNING ACTIVITES - bis.xls
    440 KB · Affichages: 29

Averell1976

XLDnaute Junior
Re : Récupération de données d'un userform sous condition

Merci beaucoup.
Mais du coup, comme je n'avais pas du tout imaginer le truc comme cela, je dois récupérer des couleurs dans les cellules où je récupérer le nom des résidents et des accompagnateurs (les résidents et les accompagnateurs sont affectés à un service, 5 service, 1 couleur par service. J'ai codé un truc à l'aide de target as range:

Private Sub Worksheet_Change(ByVal Target As Range)
Dim cell As Object
For Each cell In [Residents16]
If Target.Value = cell.Value Then
Target.Interior.Color = cell.Interior.Color
Else
End If
Next
End Sub


Mais ça m'oblige à coller ce code dans chacune de mes feuilles (LUNDI MATIN, LUNDI APRES MIDI, MARDI MATIN..... et à créer dans chacune d'elle une plage ([Residents5], [Residents6]....) C'est pourri et le code est super long à s'exécuter (normal).... on pourrai pas faire cela plus simplement?
 

CHALET53

XLDnaute Barbatruc
Re : Récupération de données d'un userform sous condition

Re,

tu n'es pas obligé de recopier sur toutes les feuilles
En mettant ta procédure dans ThisWorkbook

regarde les deux exemples
1) la procédure s'exécute si dans A1:A10, la valeur change
2) la procédure s'exécute sur simple changement de cellule

a+
 

Pièces jointes

  • WORKBOOKSHEET SheetChange.xls
    55.5 KB · Affichages: 18
  • WORKBOOKSHEET avec sheetSelectionChange.xls
    22 KB · Affichages: 17

Averell1976

XLDnaute Junior
Re : Récupération de données d'un userform sous condition

OK en effet, j'aurai dû penser à coder dans thisworkbook plutôt que dans thisworksheet.
Par contre j'utilise donc une plage de données [Resident16] qui est en fait toute la colonne Z de l'onglet "LUNDI MATIN" pour gérer mon histoire de couleurs. C'est sûrement pour cette raison que excel mouline à l'exécution.... et le code est un peu crade non?

J'ai repris ton dernier fichier et intégré à celui qui est en PJ, parce que pour la gestion des animateurs, j'ai besoin de textbox plutôt que de combobox (en effet, parfois je peux avoir jusqu'à 12 animateurs différents concernés!!!! je peux donc en mettre plusieurs dans un textbox, plus simple je trouve....)

Pour ce qui est de l'option ajout/ supprimer, ça plante quand je double clique sur un nom dans la listbox en mode supprimer.... (renvoit vers fonction null??????
 

Pièces jointes

  • PLANNING V4.zip
    112 KB · Affichages: 16
  • PLANNING V4.zip
    112 KB · Affichages: 18
  • PLANNING V4.zip
    112 KB · Affichages: 19

CHALET53

XLDnaute Barbatruc
Re : Récupération de données d'un userform sous condition

Re,

J'ai modifié ton code dans this workbook : si l'option est supprimée, on sort (Exit sub)
si on a trouvé le pékin, on prend la couleur et ensuite on sort (pas la peine de lire les autres)

J'ai modifié la définition de RESIDENTS16 (va voir dans Formule Gestionnaire de noms) afin de ne prendre que les lignes utiles

a+
 

Pièces jointes

  • Averell PLANNING ACTIVITES - ter.xls
    504.5 KB · Affichages: 24
  • Averell PLANNING ACTIVITES - ter.xls
    504.5 KB · Affichages: 25
  • Averell PLANNING ACTIVITES - ter.xls
    504.5 KB · Affichages: 24

CHALET53

XLDnaute Barbatruc
Re : Récupération de données d'un userform sous condition

bonjour,

Je n'ai pas de souci avec cette version
Attention à avoir une parfaite correspondance des noms entre
tes listes dans la feuille Données (notamment les jours de la semaine)
ton programme (bouton valider)
Tu prends le nom dans la combobox et tu ouvres la feuille du même nom (seulement si le nom de l'onglet n'est pas écrit de la même façon : problème)

a+
 

Pièces jointes

  • Averell PLANNING ACTIVITES - ter.xls
    509 KB · Affichages: 30
  • Averell PLANNING ACTIVITES - ter.xls
    509 KB · Affichages: 25
  • Averell PLANNING ACTIVITES - ter.xls
    509 KB · Affichages: 23

Averell1976

XLDnaute Junior
Re : Récupération de données d'un userform sous condition

Désolé de t'embêter une dernière fois. Mais là grosse incompréhension; ce doit être une connerie mais je ne trouve pas...
Je voudrai que le userform à renseigner s'ouvre à partir d'un bouton que j'ai placé sur une feuille "SOMMAIRE".
J'ai donc créé un bouton "GESTION des plannings" pour appeler le userform; il me met "accès refusé"???????
Je suis débile ou bien?
 

Pièces jointes

  • Nouveau dossier.zip
    69.9 KB · Affichages: 19
  • Nouveau dossier.zip
    69.9 KB · Affichages: 20
  • Nouveau dossier.zip
    69.9 KB · Affichages: 18

CHALET53

XLDnaute Barbatruc
Re : Récupération de données d'un userform sous condition

Pas de panique!!!
Pour La combobox_Activites, tu as défini Row Source par : Données!F2:F55
Perso, je l'ai supprimé pour le définir par programme dans la procédure : Private Sub userform_initialize
On ne peut pas avoir les deux : c'est la raison de ton plantage

Je préfère la définition des items d'une combobox par programme : cela évite les blancs dans ta liste (en fin de liste)

Cette approche est rendue nécessaire pour la fonctionnalité : Supprimer (En effet, en fonction du jour choisi, je recherche les activités définies dans cette journée pour restreindre la liste aux activités présentes sinon risque d'erreur en choisissant une activité non présente dans cette journée

Donc, dans les propriétés de la combobox_Activites, supprime les infos RowSource et tout devrait rentrer dans l'ordre

A suivre
 

Discussions similaires

Statistiques des forums

Discussions
312 111
Messages
2 085 395
Membres
102 882
dernier inscrit
Sultan94