Problème d'écriture

  • Initiateur de la discussion Initiateur de la discussion mec94
  • Date de début Date de début

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 !

M

mec94

Guest
Bonjour tout le monde,

Voilà j'ai crée un nom de donnée en vba comme cela :

ActiveWorkbook.Names.Add Name:="Liste" & j, RefersTo:="=offset(choix2,1,match(Cells(" & j & ", " & k &
"),choix1,0)-1,counta(offset(choix2,,match(Cells(" & j & ", " & k &
"),choix1,0)-1))-1)"

le resultat :

Liste12=DECALER(choix2;1;EQUIV(Cells(12;
3);choix1;0)-1;NBVAL(DECALER(choix2;;EQUIV(Cells(12; 3);choix1;0)-1))-1)

toutes les virgules sont des points virgules.

Comment faire pour que les virgules reste des virgules et est ce que c'est pour cela que plus loin mon add plante ? :

Cells(j, Col).Select
With Selection.Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=Liste" & j
End With

Merci pour votre aide
 
Re : Problème d'écriture

Bonjour,

Je ne crois pas qu'il y ait de probleme avec les virgules.

A quoi correspondent Choix1 et Choix2 ?
Ils doivent normalement correspondre à des références.

Pour la formule, ce serait plutot :
Sub test()
j = 12
k = 3
ActiveWorkbook.Names.Add Name:= _
"Liste" & j, RefersTo:="=offset(choix2,1,match(" & Cells(j, k).Address & ",choix1,0)-1,counta(offset(choix2,,match(" & Cells(j, k).Address & ",choix1,0)-1))-1)"
End Sub

Peut etre peux tu poster un petit exemple simplifier de ce que tu veux faire ?...
 
Dernière édition:
Re : Problème d'écriture

Merci pour le coup de main je vais essayer

choix1 = '=DECALER(Listes!$B$1;;;;NBVAL(Listes!$B$1:$Z$1))' C'est la liste des personnes qui se trouve sur la ligne 1 de la feuille Liste.

choix2='=Listes!$B:$B' c'est la première colonne qui correpsond aux tâches affectées à la première personne de la liste de choix1

je vais tester ce que tu m'a donné.

Lorsque je teste cette formule par création d'une liste dans validation de donnée choix liste et source = =DECALER(choix2;1;EQUIV(C12;choix1;0)-1;NBVAL(DECALER(choix2;;EQUIV(C12;choix1;0)-1))-1)
excel me dit que j'ai une erreur dans la donnée source (C12 contient la liste des nom = choix1)
 
Re : Problème d'écriture

je fais

x = "=offset(choix2,1,match(" & Cells(j, k).Address & ",choix1,0)-1,counta(offset(choix2,,match(" & Cells(j, k).Address & ",choix1,0)-1))-1)"

Puis :

Cells(j, Col).Validation.Add xlValidateList, Formula1:=x

Mais vba plante.

je n'arrive pas à créer cette liste qui depend de la valeur de choix1
 
Re : Problème d'écriture

Bonsoir,

J'ai essayer de matérialiser un peu ce que tu fais dans le fichier joint mais je ne sais pas exactement ce que tu veux faire ...
A mon avis, il est préférable de bien remplir les Offset/Decaler (pas de ;; mais plutot des ;0😉. Il est préférable également que Choix2 fasse référence définie plutot qu'une colonne complete.

Ce que j'ai compris, c'est qu'en fonction de ce qui est saisi dans C12, la liste change de référence. A la limite, il n'y peut etre pas besoin de macro pour ça ...
 

Pièces jointes

Re : Problème d'écriture

Bonjour,

Les formules marchent quand je les saisies dans excel menu validation de donnée choix liste, et dans source la formule. Par contre je n'arrive pas a trouver la formule pour faire ma :

Cells(j, Col).Validation.Add xlValidateList, Formula1:=

Si je prends une donnée string (avec des données en dur ou avec j) :
x="=OFFSET(choix2,1,MATCH(R[" & j & "]C,choix1,0)-1,COUNTA(OFFSET(choix2,0,MATCH(R[" & j & "]C,choix1,0)-1))-1)"
x="=DECALER(choix2,1,EQUIV(R12C,choix1,0)-1,NBVAL(DECALER(choix2,0,EQUIV(R12C,choix1,0)-1))-1)"

Ou si je fais un nom de champs les resultats sont toujours les mêmes lorsque je fais la validation ça plante.

J'ai besoin de passer par vba car la liste des tâches affectées a une personne se retrouve dans autant de cellule qu'il y a de jour dans le mois.

Je te joins mon fichier. la feuille dans laquelle doit s'executer la c'est janvier. Les lignes concernées par la liste des tâches sont les lignes sur lesquelles tu as des noms de personnes et elle commence en debut de mois. Pour mettre à jour ces cellules correspondant au liste des tâches il suffit de cliquer en haut dans la barre des tâches mise à jour des activité à saisir. sinon au niveau de vba la procédure s'appelle MajCal et elle se trouve dans le module BarreCra. Tu peux enlever les ligne en trop cela commence au premier activeworkbook.
Le mot de passe est Roto.

Voilà le lien : http://cjoint.com/?gdjCmSEpRO
 
Re : Problème d'écriture

Bonsoir,

Je pense avoir trouvé une solution :

x = "=OFFSET(choix2,1," & Application.Match(Cells(j, 3), Range("choix1"), 0) - 1 & ",COUNTA(OFFSET(choix2,0," & Application.Match(Cells(j, 3), Range("choix1"), 0) - 1 & "))-1)"
ActiveWorkbook.Names.Add Name:="Liste" & j, RefersTo:="=Listes!" & Range(x).Address
With Cells(j, Col).Validation
.Delete
.Add Type:=xlValidateList, Formula1:="=" & "Liste" & j
End With


L'option de validation est capricieuse.
Il faut saisir les ref en francais, il ne faut pas de reference exterieure à la feuille, ce que la macro enregistre, elle ne veut plus l'executer... Bref, là je créé un nom (externe à la feuille) pour chaque ligne et je créé une liste de validation faisant référence à ce nom.

Voir le fichier ici : http://cjoint.com/?gearpKgrhQ

J'ai également fais 2 modifications repérées au passage mais je ne les ai pas testé. Tu verras si ça peut te servir...
A+
 
Re : Problème d'écriture

Je prends ton fichier et le teste.

je te tiens au courant.

En tous les cas je te remercie pour le emps que tu as passé. Moi ne connaissant absolument pas vba je n'y serais pas arrivé.
 
Re : Problème d'écriture

voilà j'ai commençé a tester tout se déroule bien, je suis très content je ne pensais pas y arriver (enfin grâce a ton aide, une épine dans le pied d'enlevée).

J'ai des petits soucis que je répare. je t'explique, j'avais basé mes égalités de valeur sur les 4 premiers caratères des personnes et des tâches pour avoir leur codification. Quand on fait la liste des tâches les blancs dans le code des taches est supprimé. Exemple "MA" pour maladie dans le calendrier n'est plus égal a "MA ". C'est tout pas bien grave.

Je suis vraiment heureux.

Merci mille fois.
 
Re : Problème d'écriture

Re,

Il est possible que j'ai modifié un "MA " en "MA" quelque part...
Il suffit de la remettre dans la feuille Listes je crois.
Ci-joint une autre approche pour avoir la liste de saisie dans la feuille Janvier.
Je passe par une ComboBox, il n'y en a qu'une pour toute la feuille et elle est réactualisée à chaque changement de selection.
C'est normalement un peu moins lourd pour le document...
http://cjoint.com/?gepOZAcfK1
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
2
Affichages
1 K
A
Réponses
27
Affichages
2 K
adet ruireux
A
Réponses
11
Affichages
3 K
F
M
Réponses
2
Affichages
1 K
moialbert2
M
T
  • Résolu(e)
XL pour MAC lenteur du vba
Réponses
16
Affichages
3 K
P
Réponses
7
Affichages
2 K
I
Réponses
1
Affichages
932
inconnu
I
D
  • Question Question
Réponses
13
Affichages
2 K
O
  • Question Question
XL 2016 Erreur VBA
Réponses
3
Affichages
708
O
S
Réponses
1
Affichages
993
Réponses
6
Affichages
2 K
Retour