Formulaire : zone variable non modifiable

Excel-lent

XLDnaute Barbatruc
Bonsoir tout le monde,

Actuellement, j'apprends les formulaires! Et j'aurais besoin d'un petit coup de pouce. La question est en bleu.

Dans le fichier ci-joint, sur l'onglet "SOMMAIRE", lorsque je clic sur le bouton, mon UserForm s'ouvre.

J'ai une liste de choix pour le choix du nom -> fonctionne à la perfection
J'ai une liste de choix pour le choix du prénom -> fonctionne à la perfection

Ma question concerne :
La zone "heure" en blanc et la zone "minute" en blanc. Ces informations sont là titre informatif! C'est le temps que fais le salarié par semaine. Ces zones doivent se renseigner automatiquement, en fonction :
-> du nom saisie au dessus
-> du prénom saisie au dessus
-> et le temps (heure+minute) il doit les prendre sur l'onglet "liste du personnel".

Ces données ne doivent pas être modifiable par l'utilisateur du formulaire.

Quoi utiliser? Une zone "label", une zone "ListBox", ...? Comment dois-je faire pour les alimenter?


Il y a une seconde zone "heures" en bleu et une seconde zone "minutes" en bleu. C'est ICI que l'utilisateur doit saisir les nouveaux horaires
-> ça fonctionne à la perfection

Toutes les données proviennent de l'onglet "liste du personnel" et lorsqu'on valide le formulaire, il écrase l'ancienne donnée pour y mettre à la place la nouvelle
-> ça fonctionne à la perfection

Si je n'ai pas été assez clair, n'hésitez pas à me demander plus de précision.

Merci d'avance à vous.

Edition : je profite de l'occasion pour demander : Me.ListBox... ou NomFormulaire.ListBox...
cela semble faire la même chose! Qu'elle est la nuance entre les deux?
 

Pièces jointes

  • formulaire zone non modifiable.zip
    24.5 KB · Affichages: 109
Dernière édition:

joss56

XLDnaute Accro
Re : Formulaire : zone variable non modifiable

Bonjour le forum, Excel-lent

Pourquoi être obligé de sélectionner le nom et le prénom? Il serait peut-être plus simple de proposer un combo proposant l'identifiant complet? Ca éviterait les erreurs de sélection.

Me.ListBox fait référence au contrôle ListBox se trouvant effectivement sur le formulaire actif

Pour faire référence à un contrôle ListBox situé sur un autre formulaire, il faut utiliser NomFormulaire.ListBox

A+

Jocelyn
 

BOISGONTIER

XLDnaute Barbatruc
Repose en paix
Re : Formulaire : zone variable non modifiable

Bonjour,

Voir PJ

Enabled --> False

ou

Label.Caption

Pourquoi utiliser Me?

-Permet de distinguer les champs des variables.
-En frappant Me. on obtient la liste des champs.

JB
Formation Excel VBA JB
 

Pièces jointes

  • Copie de formulaire zone non modifiable.zip
    20.8 KB · Affichages: 91
  • Copie de formulaire zone non modifiable.zip
    20.8 KB · Affichages: 84
  • Copie de formulaire zone non modifiable.zip
    20.8 KB · Affichages: 83
Dernière édition:

Excel-lent

XLDnaute Barbatruc
liste de choix : NOM+Prénom - une fois sélection : q l nom

Bonjour Boisgontier, Joss56,

Joss56 à dit:
Pourquoi être obligé de sélectionner le nom et le prénom? Il serait peut-être plus simple de proposer un combo proposant l'identifiant complet? Ca éviterait les erreurs de sélection.

J'avais mis des listes de choix pour éviter les erreurs de saisie, mais effectivement, je n'ai pas pensé aux erreurs de sélection! De plus, je ne savais pas faire!

Merci donc à Boisgontier d'avoir répondu à ma question ET d'avoir mis cette astuce sympa en place sur mon fichier.

Merci également pour vos explications sur le Me.... et NomFormulaire...
Je me doutais que c'était ça, mais je préféré en être sur!

Concernant la ComboBox1, lorsqu'on clic sur la flèche bas, dans la liste déroulante, on voit le NOM+Prénom, mais une fois qu'on a sélectionné un choix, on ne voit plus que le NOM!

Il serait possible d'avoir NOM+Prénom?

J'ai essayé divers truc, mais aucun ne fonctionne! Vous avez une solution?

Vous en remerciant par avance.
 

Excel-lent

XLDnaute Barbatruc
Re : Formulaire : zone variable non modifiable

Bonsoir tout le monde,

Comme vous avez pu le voir, j'ai créé une macro pour modifier le temps de travail d'un salarié via un UserForm.

Mais j'ai également la même chose pour :
-> créer un nouveau salarié
-> supprimer un salarié

TOUT fonctionne à la perfection jusqu'à ce que l'utilisateur décide de supprimer le 1er salarié de la liste!!!!

Pour mémoire, pour alimenter la combobox où figure le NOM + Prénom, nous avons fait : "Insertion" / "Noms" / "Définir" / dans la zone "fait référence à" nous avons mis
Code:
=DECALER('Liste du Personnel'!$A$[COLOR="Red"][B]2[/B][/COLOR];;;NBVAL('Liste du Personnel'!$A:$A)-1)

Or lorsqu'on supprimer le 1er salarié de la liste, c'est à dire celui se trouvant sur la 2nd ligne.

Cette formule se transforme de la façon suivante :
Code:
=DECALER('Liste du Personnel'![COLOR="Red"][B]#REF[/B][/COLOR]!;;;NBVAL('Liste du Personnel'!$A:$A)-1)

Évidement, après ça fonctionne moins bien! :mad:

Connaissait vous une parade?

Pour essayer de trouver une solution, j'ai extrait le problème :
'Liste du Personnel'!$A$2

J'ai écris cette formule dans une cellule, puis j'ai cherché une autre formule pouvant me donner la même chose, mais qui ne bougerais pas en fonction des créations/suppressions de lignes.

J'ai pensé à la fonction ADRESSE()

Soit
=ADRESSE(2;1;;;"Liste du Personnel")

2 et 1 étant des chiffres, lors de création, suppression de ligne, ça ne devrait pas bouger, non?

Lorsque j'écris cela dans une cellule j'obtiens :
'Liste du Personnel'!$A$2

Ce qui vous en conviendrais est franchement similaire non?

Pourtant lorsque je l'insère dans la formule ainsi :
Code:
=DECALER([COLOR="Red"]ADRESSE(2;1;;;"Liste du Personnel")[/COLOR];;;NBVAL('Liste du Personnel'!$A:$A)-1)

ou ainsi :
Code:
=DECALER([COLOR="Red"]&=ADRESSE(2;1;;;"Liste du Personnel")&[/COLOR];;;NBVAL('Liste du Personnel'!$A:$A)-1)

ou ainsi :
Code:
=DECALER([COLOR="Red"]&ADRESSE(2;1;;;"Liste du Personnel")&[/COLOR];;;NBVAL('Liste du Personnel'!$A:$A)-1)

Lors de la validation de la formule, il n'en veut pas!

Quelqu'un a une idée?

Merci d'avance pour vos propositions.
 

ledzepfred

XLDnaute Impliqué
Re : Formulaire : zone variable non modifiable

Bonsoir Excel-lent

tout d'abord j'aimerai te dire que ton pseudo ne te va pas du tout :
tu es tout sauf lent et t'es plutôt excellent (à méditer;))

pour ton problème de définition de ta plage:

pourquoi ne pas ajouter dans ton code suppression et/ou création la définition de ta plage avec la formule qui marche à savoir
Code:
=DECALER('Liste du Personnel'!$A$2;;;NBVAL('Liste du Personnel'!$A:$A)-1)

l'enregistreur de macros donne :
Code:
  ActiveWorkbook.Names.Add Name:="maplage", RefersToR1C1:= _
        "=OFFSET('Liste du Personnel'!R2C1,,,COUNTA('Liste du Personnel'!C1)-1)"
à ajouter en fin de code

a+
 

Excel-lent

XLDnaute Barbatruc
Re : Formulaire : zone variable non modifiable

Bonsoir Ledzepfred,

Je te retourne le compliment!

Merci beaucoup pour ta solution! Je suis vraiment coui... j'aurais dû y penser!!!!

Pendant que tu étais ici à m'aider, j'ai trouvé ceci dans l'aide Excel :

"si vous souhaitez que la formule fasse toujours référence à la même cellule, même si la ligne au-dessus de la cellule est supprimée ou si la cellule est déplacée, utilisez la fonction de feuille de calcul INDIRECT"

Ce qui semble étrangement coller avec mes symptômes! Reste plus qu'à décortiquer cette fonction que j'utilise très très rarement, et voir si en forcant un peu, elle veuille bien se glisser dans ma formule.

Sinon, je me rabattrais sur ta solution. Seul inconvénient, je devrais la répéter autant de fois que j'en ai besoin (environ 6 fois - à moins que je fasse une sous-macro?!?) et je ne suis pas trop à l'aise avec les référencements de cellule sous la forme : R2C1 ou offset (c'est mon talon d'achille).

Je préfère nettement Cells(ligne, Colonne) ou Range("A:"& Ligne) car où qu'on soit avant, c'est tjrs juste!

Merci encore à toi, vais dormir un peu et repenser à tout cela demain soir.
 
Dernière édition:

Excel-lent

XLDnaute Barbatruc
Re : Formulaire : zone variable non modifiable

Bonsoir tout le monde,

Un grand merci à tout le monde pour votre aide.

Finalement, j'ai opté pour la solution de Boisgontier, m'évitant ainsi de retoucher mon code (du moins pour cette partie, car le projet n'est pas encore fini!).

Bonne soirée à tous.

Espérant pouvoir vous rendre la pareil un de ces 4!
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 206
Messages
2 086 219
Membres
103 158
dernier inscrit
laufin