desolé mes post prenne 2h a arivé
oui mon bouton est dans ma feuille de calcul mais il n'y a pas un moyen our metre se code avec le reste ???
Version imprimable
desolé mes post prenne 2h a arivé
oui mon bouton est dans ma feuille de calcul mais il n'y a pas un moyen our metre se code avec le reste ???
C'est vrai TAIM ...
On devrait peut être splitter le thread ??
en fait le but est de créer dynamiquement des boutons et de pouvoir leur associer une fonction en passant à chaque fois un paramètre différent selon le bouton...
le but est de repérer si le nom de fichier associé au bouton est présent dans le repertoire ou non ???
Dans une feuille de calcul on ne peut repérer les boutons selon les cellules dans lesquelles ils se trouvent... sauf si, au moment de la création ils sont nommée selon les cellules dans lesquelles ils sont placés "A12", "C15"...
Par contre, j'ai bien peur que ce nom ne soit pas directement utilisable.
Mais là, ne l'ayant jamais fait dans une feuille de calcul, je pense que SilkyRoad est mieux placé que moi pour te répondre.
En cas de défaillance de SR... on regardera
A+
ben on peut toujours utiliser le tag ou le caption du bouton pour le passer en paramètre non ?
Bien sûr, mais (je ne l'ai jamais fait sur une feuille) j'ai peur qu'il ne faille une macro par bouton... ???Citation:
ben on peut toujours utiliser le tag ou le caption du bouton pour le passer en paramètre
Comme je suis sur Excel97, et que mes possibilités sont limitées en matière de création dynamique de contrôles par rapport aux versions ultérieures, je préfère ne pas te fourvoyer. Je passe la main.
Et SylkyRoad qui répond pas... :cry: Je commence à être inquiet
A+
Il est toujours possible de créer un groupe "indexé" pour éviter de répéter sa syntaxe pour chaque bouton.
mais la question était :
L'utilisation du tag (plus transparente que celle du Caption) est sans doute possible pour ce qui est du passage des paramètres.Citation:
comment attribuer au click de chacun de ses bouton un appel à une fonction avec paramètre ?
Utiliser maintenant une chaine de caractères pour appeler une fonction est une autre paire de manches... et je ne sais pas si c'est possible
Je réponds à ça :
Citation:
Utiliser maintenant une chaine de caractères pour appeler une fonction est une autre paire de manches... et je ne sais pas si c'est possible
fonctionne.Code:
1
2
3
4 Private Sub CommandButton1_Click() LaMacro = "Essai" Application.Run "'Perso.xls'!" & LaMacro End Sub
A+
sauf savoir comment attribuer dynamiquement la bonne vleur dans le tag au moment de la création du bouton :wink:
C'est une question ? :lol:Citation:
sauf savoir comment attribuer dynamiquement la bonne vleur dans le tag au moment de la création du bouton
D'où l'attribution d'un nom adapté au bouton selon sa position dans la feuille...
A toi jmfmarques... :wink:
ça, alors !Citation:
C'est une question ?
D'où l'attribution d'un nom adapté au bouton selon sa position dans la feuille...
A toi jmfmarques...
1) je ne connais aucun frein à modifier dynamiquement une propriété tag.
du genre, peut-être (pour un groupe de boutons):
2) ce qu'il y a à écrire dans ce tag est, en principe, connu du développeur (et qui osera tenter de se substituer à lui... et à sa pensée ?)Code:Bouton(i).tag = "toto"
3) l'utilisation annexe (au besoin) d'un tableau ("array") n'est pas interdite
4) il est toujours possible d'insérer dans le "tag" un séparateur quelconque pour séparer le nom de la fonction de ses paramètres....
5) on joue au ping pong ou quoi ? Si on joue au ping pong (et avec qui ?), je veux bien jouer, mais je vais souvent "couper"... alors méfiance...
Moi non plus, strictement parlant. L'avantage restant qu'en mettant dans le nom l'adresse de la cellule dans laquelle se trouve le bouton, on a l'adresse. Or il me semblait (j'ai pu me tromper) que l'adresse de la cellule dans laquelle le bouton devait être placé avait "de l'importance"... Mais j'ai pu me tromper. Aucune intention de tromper le lecteur là-dedans... :lol:Citation:
1) je ne connais aucun frein à modifier dynamiquement une propriété tag.
du genre, peut-être (pour un groupe de boutons):
Attendons donc plus de précision :wink:
Tu ne t'es pas trompé, Ouskel'n'or !
On peut faire cela aussi, bien évidemment.
Je voyais mal où tu voulais en venir...
Mais l'emploi de séparateurs dans le tag permet d'avoir des captions plus ergonomiques, dans la mesure voù l'utilisateur final n'a pas à connaître nécessairement les "dessous de l'affaire".
Pardonne-moi : j'ai cru un instant que tu voulais continuer à "balader" dans les allées...
je reviens sur ce bout de code ...
en fait si je saisi bien ça va ecrire directement les sub dans le code ...Code:
1
2
3
4
5
6
7
8
9
10
11 For i = 1 To 2 Texte = "Sub Bouton" & i & "_Click()" & vbCrLf Texte = Texte & " MsgBox ""Test " & i & "" & vbCrLf Texte = Texte & "End Sub" With ThisWorkbook.VBProject.VBComponents(ActiveSheet.CodeName).CodeModule j = .CountOfLines + 1 .InsertLines j, Texte End With Next i
mais que se passe-t-il si on sauvegarde ...
le but est de faire tourner le code à l'ouverture du fichier pour faire une mise à jour des boutons en focntions de fichiers existants ou non ?..
Hé ! Là, je ne suis plus du tout...
Il s'agirait finalement de construire dynamiquement une procédure ?
Et pourquoi pas la construire conditionnellement en dur, beaucoup plus simplement ?
Là, je suis désorienté...
Oui !Citation:
en fait si je saisi bien ça va ecrire directement les sub dans le code ...
Elle est sauvegardéeCitation:
mais que se passe-t-il si on sauvegarde ...
Pas de pb, au moment de fermer le fichier ou de l'enregistrer, tu peux effacer la/les procédures créées, soit en effaçant les lignesCitation:
le but est de faire tourner le code à l'ouverture du fichier pour faire une mise à jour des boutons en focntions de fichiers existants ou non ?..
soit en effaçant le module.Code:.InsertLines j, ""
Auquel cas tu dis si tu as besoin de code
A+
Edit
Dommage que tu n'aies pas séparé tes questions... Toutes pourraient individuellement intéresser des personnes différentes
je récapitule ...
a l'ouverture du fichier je scanne un repertoire à la recherche de fichiers.xls
pour chaque fichier xls je crée deux boutons
l'un avec un lien vers le fichier,
l'autre vers une procédure qui :
- me dirige vers le fichier doc associé (nom stocké dans le tag) si celui ci existe
- m'ouvre un doc vierge si il n'existe pas et le nomme du nom du tag ...
je pense que c'est plus clair là ? :oops:
Comme quoi... :cry:
De quel fichier parles-tu ?Citation:
a l'ouverture du fichier je scanne un repertoire à la recherche de fichiers.xls
pour chaque fichier xls je crée deux boutons
l'un avec un lien vers le fichier,
Je reprends :
Ça, tu peux le mettre en dur (cf remarque de jmfmarques)Citation:
a l'ouverture du fichier je scanne un repertoire à la recherche de fichiers.xls
Boutons "volatiles" placés sur des cellules définies... C'est bien ça ?Citation:
pour chaque fichier xls je crée deux boutons
Une question : Le fichier aux boutons est-il enregistré en fin d'utilisation ?
Si oui, les boutons doivent-ils disparaître ?
vu plus hautCitation:
avec un lien vers le fichier
Citation:
l'autre vers une procédure qui...
Question : Dans ce cas précis, qu'entends-tu par "dirige vers..." faut-il se placer dans Word ou simplement ouvrir le doc ?Citation:
1 - me dirige vers le fichier doc associé (nom stocké dans le tag) si celui ci existe
Même question : faut-il se placer dans Word ou simplement créer le doc ?Citation:
2 - m'ouvre un doc vierge si il n'existe pas et le nomme du nom du tag ...
Désolé pour toutes ces questions mais les réponses vont dépendre des différentes options. Si écrire une procédure en dynamique ne pose pas de pb, il faut tout de même savoir si on ne peut pas faire autrement... A déboguer, ce n'est pas une sinécure :cry:
Tu dis
A+
enfait je scanne les fichier pour apré collé leur entetes le lien renvoi vers chaque fihier source de l'enteteCitation:
De quel fichier parles-tu ?
jespere que je suis clair :oops:
pour chaque fichier xls présent dans le repertoire je crée un lien vers le fichier xls du repertoire ...
ensuite le fichier.doc est un fichier de commentaires donc il faudrait lui donner le focus ... pas juste l'ouvrir ...
Tout cela me rappelle un pari fait... et tenu ... de faire à l'aide de VB (et de très nombreux drags and drops, etc...) un exécutable qui, une fois utilisé, permettait... d'écrire un programmpe Vb sans autre chose que les Runtimes de VB... Les drags and drops n'étant possibles qu'en fonction d'un paramètre dépendant d'une variable, tenue bien cachée...
Le but (c'était un pari) avait été atteint... Mais avec un poids inégalé jusqu'alors...
Pour en revenir à nos moutons : je pense réellement que l'écriture d'une procédure relève de l'expression, entre autres, de conditions et que si l'on connaît ces conditions, il vaut mieux écrire d'emblée des instructions conditionnelles. Mais bon...