Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

(vba) présentation ...

10 réponses
Avatar
j-pascal
Bonjour,

Question pas vraiment technique ...

J'ai un classeur de 3 feuilles. Les macros s'appliquent aux 2 premières.
A l'état "normal", elles sont "hidden".
La 3ème feuille sert uniquement à lancer 2 macros ...

Question : Est-il judicieux d'utiliser une feuille pour n'afficher que 2
boutons ?
Pour faire moins "vide" j'ai 2 Gifs qui actionnent les macros, et j'ai inclu
un ScrollArea dans le code pour que l'utilisateur ne se perde pas dans cet
espace quasi désert ...

Qu'utiliseriez-vous un "pb" similaire ? J'ai bien pensé à un UF, mais il
faut bien le lancer (ça, à la rigueur, je vois ...) mais il apparaitra bien
sur une Feuille ?!!

Merci d'avance pour vos lumières ...

Cordialement,

JP

10 réponses

Avatar
LSteph
Bonsoir,

Pas forcément
tu peux jouer avec isaddin
http://cjoint.com/?klageZqcZy
(ici UF non modal)

''''''''''''''''''''''''''''''''''
'''Thisworkbook
Private Sub Workbook_Open()
ThisWorkbook.IsAddin = True
UserForm1.Show
End Sub
'''''''''''''''''''

'''userform1 (Menu)
Private Sub CommandButton1_Click()
ThisWorkbook.IsAddin = False
Feuil1.Visible = True
Feuil2.Visible = False
End Sub

Private Sub CommandButton2_click()
ThisWorkbook.IsAddin = False
Feuil2.Visible = True
Feuil1.Visible = False
End Sub

Private Sub CommandButton3_Click()
ThisWorkbook.Close True
End Sub

Private Sub CommandButton4_Click()
ThisWorkbook.IsAddin = True
End Sub

Private Sub UserForm_Terminate()
ThisWorkbook.Close False
Unload Me
End Sub
'''''''''''''''''''''''''''''''''''''


Cordialement.

lSteph

Bonjour,

Question pas vraiment technique ...

J'ai un classeur de 3 feuilles. Les macros s'appliquent aux 2 premières.
A l'état "normal", elles sont "hidden".
La 3ème feuille sert uniquement à lancer 2 macros ...

Question : Est-il judicieux d'utiliser une feuille pour n'afficher que 2
boutons ?
Pour faire moins "vide" j'ai 2 Gifs qui actionnent les macros, et j'ai
inclu un ScrollArea dans le code pour que l'utilisateur ne se perde pas
dans cet espace quasi désert ...

Qu'utiliseriez-vous un "pb" similaire ? J'ai bien pensé à un UF, mais il
faut bien le lancer (ça, à la rigueur, je vois ...) mais il apparaitra
bien sur une Feuille ?!!

Merci d'avance pour vos lumières ...

Cordialement,

JP




Avatar
j-pascal
Bonjour Stéphane,

(Désolé de ne pas avoir répondu plus tôt. Je suis malade depuis 4 jours !)

Merci pour ton classeur.
Plusieurs questions :
- Si je clique sur "Tout masquer" alors que j'ai ouvert un autre classeur,
le Menu reste apparent sur le nouveau classeur, mais ton classeur n'apparaît
plus dans la barre de tâches !
- Si je fais un double-clic gauche sur UserForm1 et que je reviens sur la
page d'accueil, le menu n'est plus apparent ! Pour qu'il réapparaisse, je
vais dans ThisWorkbook et je lance le code ... (?)
- Comment est-ce possible de masquer "toutes" les feuilles d'un classeurs ??
- Qu'est-ce qu'un UF "non modal" ? J'ai comparé les propriétés de ton UF
avec un UF "normal", il n'y a (apparemment) aucune différence !
- Si je saisi qqch sur la Feuil1 (ie) et que je clique ensuite sur Quitter
(du menu), le classeur se ferme sans me demander si j'accepte les
modifications ! (Et je ne peux pas accéder à "Menu" / "Enregistrer sous"
etc.)
- Que faire si je ne veux pas enregistrer les modifications apportées au
classeur ?
- Que veut dire "IsAddIn" (quel est le principe) ?

L'idée me plaît, mais j'ai besoin d'en savoir un peu plus avant de le mettre
entre les mains de mes collaborateurs ...

A bientôt ?

JP

Pas forcément
tu peux jouer avec isaddin
http://cjoint.com/?klageZqcZy



(ici UF non modal)

''''''''''''''''''''''''''''''''''
'''Thisworkbook
Private Sub Workbook_Open()
ThisWorkbook.IsAddin = True
UserForm1.Show
End Sub
'''''''''''''''''''

'''userform1 (Menu)
Private Sub CommandButton1_Click()
ThisWorkbook.IsAddin = False
Feuil1.Visible = True
Feuil2.Visible = False
End Sub

Private Sub CommandButton2_click()
ThisWorkbook.IsAddin = False
Feuil2.Visible = True
Feuil1.Visible = False
End Sub

Private Sub CommandButton3_Click()
ThisWorkbook.Close True
End Sub

Private Sub CommandButton4_Click()
ThisWorkbook.IsAddin = True
End Sub

Private Sub UserForm_Terminate()
ThisWorkbook.Close False
Unload Me
End Sub
'''''''''''''''''''''''''''''''''''''


Cordialement.

lSteph

Bonjour,

Question pas vraiment technique ...

J'ai un classeur de 3 feuilles. Les macros s'appliquent aux 2 premières.
A l'état "normal", elles sont "hidden".
La 3ème feuille sert uniquement à lancer 2 macros ...

Question : Est-il judicieux d'utiliser une feuille pour n'afficher que 2
boutons ?
Pour faire moins "vide" j'ai 2 Gifs qui actionnent les macros, et j'ai
inclu un ScrollArea dans le code pour que l'utilisateur ne se perde pas
dans cet espace quasi désert ...

Qu'utiliseriez-vous un "pb" similaire ? J'ai bien pensé à un UF, mais il
faut bien le lancer (ça, à la rigueur, je vois ...) mais il apparaitra
bien sur une Feuille ?!!

Merci d'avance pour vos lumières ...

Cordialement,

JP





Avatar
LSteph
Bonjour,

L'exemple sommaire que je t'ai proposé reste un exemple et suivant ta
question répond aux objectifs suivants:
----
1-Te donner une solution:
.isaddin cf ThisWorkbook et code du UF pour
rendre masqué ou non un classeur. En fait cela en fait une macro
complémentaire même si en utilisant isAddin on peut conserver
l'extension xls, le but n'étant pas d'en faire une macrocomplémentaire
mais de se départir du fait qu'un classeur normal exige au moins une
feuille affichée.

2-L'autre moyen est qu'en remettant isaddin à False via CommandButtons
de pouvoir à nouveau rendre telle ou telle feuille visible.

3- Ce faisant cela t'indique qu'un userform ne s'affiche pas du tout
dans une feuille, mais dans l'application, on peut le trouver plus haut
plus bas , ailleurs et même nulle part tout en étant là!
----

- Comment est-ce possible de masquer "toutes" les feuilles d'un
classeurs ??
Je viens d'y répondre, en masquant le classeur .


- Si je clique sur "Tout masquer" alors que j'ai ouvert un autre
classeur, le Menu reste apparent sur le nouveau classeur, mais ton
classeur n'apparaît plus dans la barre de tâches !
C'est tout à fait normal, puisqu'on a fait disparaître le classeur (mais

il est toujours là).
Déjà selon ton propos il y a un seul classeur d'ouvert avec une feuille
qui sert exclusivement à afficher l'une des deux autres et dont tu
souhaitais te débarrasser.
Cela te donne a priori les moyens voulus, il te reste bien évidemment à
les adapter le cas échéant à d'autres contextes que celui posé.
Plus accessoirement même si cette option est possible il vaut mieux à
mon humble avis ne faire apparaître que les fenêtres d'application dans
la barre des tâches ainsi, selon l'usage normalement dévolu à cet barre
pouvoir basculer d'une application à l'autre sans confusions et avec à
disposition une barre un peu moins chargée. Le menu Fenêtre conserve son
utilité pour basculer d'un classeur à l'autre dans l'application, je
trouve cela plus clair ainsi. Tu noteras que dans ce cas ton classeur a
aussi disparu du menu Fenêtre Afficher.

- Qu'est-ce qu'un UF "non modal" ? J'ai comparé les propriétés de ton UF
avec un UF "normal", il n'y a (apparemment) aucune différence !


La différence entre non modal et modal se résume à ce que dans le
premier cas tout en gardant l'UF affiché on peut aller dans la feuille
et dans l'autre non.

- Que faire si je ne veux pas enregistrer les modifications apportées au
classeur ?


Il suffit de cliquer sur la croix qui ferme le userform, comme tu peux
le lire dans le code:
Private Sub UserForm_Terminate()
ThisWorkbook.Close False
Unload Me
End Sub



J'espère que cela répond bien à toutes tes questions.

@+

lSteph



Bonjour Stéphane,

(Désolé de ne pas avoir répondu plus tôt. Je suis malade depuis 4 jours !)

Merci pour ton classeur.
Plusieurs questions :
- Si je clique sur "Tout masquer" alors que j'ai ouvert un autre
classeur, le Menu reste apparent sur le nouveau classeur, mais ton
classeur n'apparaît plus dans la barre de tâches !
- Si je fais un double-clic gauche sur UserForm1 et que je reviens sur
la page d'accueil, le menu n'est plus apparent ! Pour qu'il
réapparaisse, je vais dans ThisWorkbook et je lance le code ... (?)
- Comment est-ce possible de masquer "toutes" les feuilles d'un
classeurs ??
- Qu'est-ce qu'un UF "non modal" ? J'ai comparé les propriétés de ton UF
avec un UF "normal", il n'y a (apparemment) aucune différence !
- Si je saisi qqch sur la Feuil1 (ie) et que je clique ensuite sur
Quitter (du menu), le classeur se ferme sans me demander si j'accepte
les modifications ! (Et je ne peux pas accéder à "Menu" / "Enregistrer
sous" etc.)
- Que faire si je ne veux pas enregistrer les modifications apportées au
classeur ?
- Que veut dire "IsAddIn" (quel est le principe) ?

L'idée me plaît, mais j'ai besoin d'en savoir un peu plus avant de le
mettre entre les mains de mes collaborateurs ...

A bientôt ?

JP

Pas forcément
tu peux jouer avec isaddin
http://cjoint.com/?klageZqcZy



(ici UF non modal)

''''''''''''''''''''''''''''''''''
'''Thisworkbook
Private Sub Workbook_Open()
ThisWorkbook.IsAddin = True
UserForm1.Show
End Sub
'''''''''''''''''''

'''userform1 (Menu)
Private Sub CommandButton1_Click()
ThisWorkbook.IsAddin = False
Feuil1.Visible = True
Feuil2.Visible = False
End Sub

Private Sub CommandButton2_click()
ThisWorkbook.IsAddin = False
Feuil2.Visible = True
Feuil1.Visible = False
End Sub

Private Sub CommandButton3_Click()
ThisWorkbook.Close True
End Sub

Private Sub CommandButton4_Click()
ThisWorkbook.IsAddin = True
End Sub

Private Sub UserForm_Terminate()
ThisWorkbook.Close False
Unload Me
End Sub
'''''''''''''''''''''''''''''''''''''


Cordialement.

lSteph

Bonjour,

Question pas vraiment technique ...

J'ai un classeur de 3 feuilles. Les macros s'appliquent aux 2
premières.
A l'état "normal", elles sont "hidden".
La 3ème feuille sert uniquement à lancer 2 macros ...

Question : Est-il judicieux d'utiliser une feuille pour n'afficher
que 2 boutons ?
Pour faire moins "vide" j'ai 2 Gifs qui actionnent les macros, et
j'ai inclu un ScrollArea dans le code pour que l'utilisateur ne se
perde pas dans cet espace quasi désert ...

Qu'utiliseriez-vous un "pb" similaire ? J'ai bien pensé à un UF, mais
il faut bien le lancer (ça, à la rigueur, je vois ...) mais il
apparaitra bien sur une Feuille ?!!

Merci d'avance pour vos lumières ...

Cordialement,

JP







Avatar
j-pascal
Bonsoir Stéphane,

.isaddin cf ThisWorkbook et code du UF pour
rendre masqué ou non un classeur. En fait cela en fait une macro
complémentaire même si en utilisant isAddin on peut conserver l'extension
xls,


Pas très clair pour moi !
Excel = xls (pour moi) donc tout se qu'on fait avec Excel = xls y compris
avec une ligne de code qui s'appelle IsAddInn (qui a pour but, si j'ai bien
compris, de masquer un classeur ... avec toutes ses feuilles, ce qui n'est
habituellement pas possible !)

le but n'étant pas d'en faire une macrocomplémentaire

Désolé, mais pourquoi parler de macro complémentaire si au bout du compte ce
n'en est pas une ?!

mais de se départir du fait qu'un classeur normal exige au moins une
feuille affichée.


Dans l'absolu, IsAddInn sert-il à autre chose qu'à une application telle que
tu me proposes à présent ?

2-L'autre moyen est qu'en remettant isaddin à False via CommandButtons
de pouvoir à nouveau rendre telle ou telle feuille visible.


Ok

3- Ce faisant cela t'indique qu'un userform ne s'affiche pas du tout dans
une feuille, mais dans l'application,


Cette dernière phrase est un mystère ! Pour moi, Excel est un classeur avec
des feuilles ou des graphiques... Si on prend un classeur et qu'on enlève
toutes les feuilles (et tous les graphiques éventuels), que reste-t-il du
classeur et donc de l'application ??
Formulé autrement : qu'est-ce que signifie "Application" pour Excel ? Si VBA
= Visual Basic for Application et qu'il s'applique à WORD, que serait une
application de traitement de texte sans une feuille pour écrire du texte ??
Comprends pas ;-(

on peut le trouver plus haut
plus bas , ailleurs et même nulle part tout en étant là!


J'étais perdu, à présent tu m'envois en orbite ...

----

- Comment est-ce possible de masquer "toutes" les feuilles d'un
classeurs ??
Je viens d'y répondre, en masquant le classeur .



Donc si on fait disparaître le UF une fois que le classeur est masqué par
IsAddInn, on se retrouve avec un classeur virtuel. Si je raconte ça à ma
femme, elle me fait interner !!

- Si je clique sur "Tout masquer" alors que j'ai ouvert un autre
classeur, le Menu reste apparent sur le nouveau classeur, mais ton
classeur n'apparaît plus dans la barre de tâches !
C'est tout à fait normal, puisqu'on a fait disparaître le classeur (mais

il est toujours là).


Normal pour LSteph !

Déjà selon ton propos il y a un seul classeur d'ouvert avec une feuille
qui sert exclusivement à afficher l'une des deux autres et dont tu
souhaitais te débarrasser.
Cela te donne a priori les moyens voulus, il te reste bien évidemment à
les adapter le cas échéant à d'autres contextes que celui posé.


Avant d'adapter, il faut que je me réadapte à la vie sur Terre ;-)

Plus accessoirement même si cette option est possible il vaut mieux à mon
humble avis ne faire apparaître que les fenêtres d'application dans la
barre des tâches ainsi, selon l'usage normalement dévolu à cet barre
pouvoir basculer d'une application à l'autre sans confusions et avec à
disposition une barre un peu moins chargée.


A part des fenêtres d'application, que pourrait-on afficher dans cette barre
?? De quelle option parles-tu ?? Tu me laisses (??) entendre que
j'utiliserais cette barre à d'autres fins !?

Le menu Fenêtre conserve son
utilité pour basculer d'un classeur à l'autre dans l'application, je
trouve cela plus clair ainsi. Tu noteras que dans ce cas ton classeur a
aussi disparu du menu Fenêtre Afficher.


Donc tu me conseilles de ne pas utiliser IsAddInn !??

- Qu'est-ce qu'un UF "non modal" ? J'ai comparé les propriétés de ton UF
avec un UF "normal", il n'y a (apparemment) aucune différence !


La différence entre non modal et modal se résume à ce que dans le premier
cas tout en gardant l'UF affiché on peut aller dans la feuille et dans
l'autre non.



- Que faire si je ne veux pas enregistrer les modifications apportées au
classeur ?





Il suffit de cliquer sur la croix qui ferme le userform, comme tu peux le
lire dans le code:
Private Sub UserForm_Terminate()
ThisWorkbook.Close False




Je note bien la différence, mais pour moi "ThisWorkbook.Close False" devrait
signifier "on ne ferme pas le classeur" Je ne vois pas de mot qui
ressemblerait de près ou de loin à un "Save" ...

Unload Me




Et puisqu'il ferme, à quoi bon lui dire de "décharger" le UF ? Un classeur
fermé ne garderait pas de UF, non ??

End Sub



J'espère que cela répond bien à toutes tes questions.


Merci en tout cas de l'effort que tu fais pour me rendre la chose limpide
...
Question subsidiaire : l'enregistrement "sous" est-il possible ? Sinon,
l'enregistrement à l'endroit d'où à été lancé le classeur virtuel semble
être de mise ?!

PS : le code Userform_terminate m'intrigue ... Est-ce que le mot "terminate"
indique en général que le code en question s'applique à la fameuse "petite
croix" ? Peut-on utiliser cette "extension" pour un UF "modal" ?

@+ ???

JP

@+

lSteph



Bonjour Stéphane,

(Désolé de ne pas avoir répondu plus tôt. Je suis malade depuis 4 jours
!)

Merci pour ton classeur.
Plusieurs questions :
- Si je clique sur "Tout masquer" alors que j'ai ouvert un autre
classeur, le Menu reste apparent sur le nouveau classeur, mais ton
classeur n'apparaît plus dans la barre de tâches !
- Si je fais un double-clic gauche sur UserForm1 et que je reviens sur la
page d'accueil, le menu n'est plus apparent ! Pour qu'il réapparaisse, je
vais dans ThisWorkbook et je lance le code ... (?)
- Comment est-ce possible de masquer "toutes" les feuilles d'un classeurs
??
- Qu'est-ce qu'un UF "non modal" ? J'ai comparé les propriétés de ton UF
avec un UF "normal", il n'y a (apparemment) aucune différence !
- Si je saisi qqch sur la Feuil1 (ie) et que je clique ensuite sur
Quitter (du menu), le classeur se ferme sans me demander si j'accepte les
modifications ! (Et je ne peux pas accéder à "Menu" / "Enregistrer sous"
etc.)
- Que faire si je ne veux pas enregistrer les modifications apportées au
classeur ?
- Que veut dire "IsAddIn" (quel est le principe) ?

L'idée me plaît, mais j'ai besoin d'en savoir un peu plus avant de le
mettre entre les mains de mes collaborateurs ...

A bientôt ?

JP

Pas forcément
tu peux jouer avec isaddin
http://cjoint.com/?klageZqcZy



(ici UF non modal)

''''''''''''''''''''''''''''''''''
'''Thisworkbook
Private Sub Workbook_Open()
ThisWorkbook.IsAddin = True
UserForm1.Show
End Sub
'''''''''''''''''''

'''userform1 (Menu)
Private Sub CommandButton1_Click()
ThisWorkbook.IsAddin = False
Feuil1.Visible = True
Feuil2.Visible = False
End Sub

Private Sub CommandButton2_click()
ThisWorkbook.IsAddin = False
Feuil2.Visible = True
Feuil1.Visible = False
End Sub

Private Sub CommandButton3_Click()
ThisWorkbook.Close True
End Sub

Private Sub CommandButton4_Click()
ThisWorkbook.IsAddin = True
End Sub

Private Sub UserForm_Terminate()
ThisWorkbook.Close False
Unload Me
End Sub
'''''''''''''''''''''''''''''''''''''


Cordialement.

lSteph

Bonjour,

Question pas vraiment technique ...

J'ai un classeur de 3 feuilles. Les macros s'appliquent aux 2
premières.
A l'état "normal", elles sont "hidden".
La 3ème feuille sert uniquement à lancer 2 macros ...

Question : Est-il judicieux d'utiliser une feuille pour n'afficher que
2 boutons ?
Pour faire moins "vide" j'ai 2 Gifs qui actionnent les macros, et j'ai
inclu un ScrollArea dans le code pour que l'utilisateur ne se perde pas
dans cet espace quasi désert ...

Qu'utiliseriez-vous un "pb" similaire ? J'ai bien pensé à un UF, mais
il faut bien le lancer (ça, à la rigueur, je vois ...) mais il
apparaitra bien sur une Feuille ?!!

Merci d'avance pour vos lumières ...

Cordialement,

JP









Avatar
LSteph
Bonjour,

Si je raconte ça
à ma femme, elle me fait interner !!



Ne sousestimes pas les femmes, peut-être que si tu lui fait lire
elle va t'aider à comprendre ce que j'ai du mal à expliquer!
:o)))

.isaddin
Pas très clair pour moi !



C'est pourtant simple:
(.xla c'est l'extension des macros-complémentaires)
isAddin transforme le classeur .xls qui acquiert ainsi les mêmes
propriétés que s'il était un xla sauf qu'il a toujours l'extension xls
puisqu'on ne la pas enregitré en xla! Et un xla c'est toujours masqué!

Ainsi s'agit-il bien ici d'une ruse pour masquer le classeur!

Pour moi, Excel est un classeur...
Pas du tout:

Excel peut ouvrir des classeurs et contient des menus et des boutons ce
n'est pas pour autant que l'on va dire qu'excel est un bouton!

Excel est une application tableur,
Word une application traitement de texte
VBA Visual Basic pour Applications est une intégration du Visual Basic
en tant que langage utilisable pour les applications Office et d'autres
même parfois (exemple BusinessObjects),
VBE est l'Editeur de Visual Basic c'est une application associée à
excel, ou à d'autres application utilisant VBA et offrant une interface
à l'utilisateur pour programmer.

L'application c'est Excel et on travaille dedans que l'on affiche ou pas
un classeur, de même on peut y faire apparaître un userform sans
afficher de feuille, ou y voir des barres de menus et d'outils même s'il
n'y a pas de classeur ouvert.
L'application comprend une fenêtre visible ainsi que les autres objets
visibles dans l'application mais contient aussi tous les objets non
visibles, fonctionnalités, programmes...

L'objet application est donc le premier "contenant" d'Excel
conceptualisable par l'utilisateur,
à l'intérieur d'autres "contenants", exemple les barres d'outils ou
menus peuvent contenir des sous menus ou des boutons
les classeurs peuvent contenir des feuilles de calcul des feuilles
graphiques des feuilles macros Excel4, des feuille de dialogue
pour mise au point des boites de dialogues personnalisées , ancêtre du
userform dans excel mais dont la compatibilité a été assurée
jusqu'ici..etc..
(clic droit sur l'onglet de feuille insérer pour voir tout cela..)

Lorsque l'on bascule dans la fenêtre de VBE, l'explorateur de projet
sur la gauche (par défaut)affiche une représentation graphique des
éléments présents dans l'application qui ont une existence en tant que
projet Visual Basic ou une appartenance à un projet
exemple : Classeurs xls ou MacrosComplémentaires xla en tant qu' objet
"conteneur" ou projet Vba, ainsi peut on y trouver d'emblée la
représentation des feuilles ou des graphiques qui appartiennent au
classeur dans excel et peuvent être sélectionnés pour faire notamment
apparaître (doubleclic) le module de code qui y est associé, ainsi de
même l'objet ThisWorkbook représente le classeur le module thisworkbook
sert donc aux évennements et routines propres au classeur.
On peut aussi insérer dans un projet des modules standard, modules de
classe ou userform, ils sont eux mêmes des objets à part entière qui
seront enregistrés par excel ou en même temps que le classeur et
contiennent leur code.
Il peuvent en outre être enregistrés séparément clic droit sur l'objet
(exporter)

Comment tout cela communique-t-il:
Il y a toujours un respect de la hierarchie,
Application <=> Excel
Projet<=>Classeur
Feuilles, Modules, Userforms..<=>
Eléments présents dans le classeur ou projet

Pour aller plus loin, si tu crée un bouton dans une feuille
et que tu vas dans le module de feuille que tu cliques sur le déroulant
en haut à gauche Worksheet tu verras CommandButton1

Pour te faire une idée de l'étendue de tous les objets que crée VBA pour
supporter et gèrer ceux que renferme l'application "Excel" va voir dans
l'explorateur d'objets tu seras surpris des quantités, d'objets,
collections d'objets, méthodes, propriétés... etc

3- Ce faisant cela t'indique qu'un userform ne s'affiche pas du tout
dans une feuille, mais dans l'application,




En fait pour aller à plus simple,

Userform1.show

Ce que tu écris là dans ton programme VBA indique à l'application que tu
veux que Userform1 soit chargé et s'affiche sur ton écran et se fiche
pas mal de savoir
s'il y a ou non une feuille en dessous.

on peut le trouver plus haut
plus bas , ailleurs et même nulle part tout en étant là!




Tu peux déterminer la position du userform , même en dehors de la feuille,
tu peux aussi dire userform1.hide
il est toujours là, chargé en mémoire mais on ne le voit pas.

Unload me ouUnload Userform1, là cela ferme complètement le userform

PS : le code Userform_terminate m'intrigue



Private Sub UserForm_Terminate() c'est ce qui est demandé de faire par
VBA quand le userform est refermé (déchargé de la mémoire)
Lorsque tu clique sur la croix c'est idem que Unload Userform donc cela
provoque le terminate
si tu utilisais hide il serait seulement masqué donc pas de terminate.

Pour l'enregistrement j'ai donc à cet effet prévu un bouton quitter
qui enregistre d'abord puis ensuite ferme!

...

@+

lSteph


Bonsoir Stéphane,

.isaddin cf ThisWorkbook et code du UF pour
rendre masqué ou non un classeur. En fait cela en fait une macro
complémentaire même si en utilisant isAddin on peut conserver
l'extension xls,


Pas très clair pour moi !
Excel = xls (pour moi) donc tout se qu'on fait avec Excel = xls y
compris avec une ligne de code qui s'appelle IsAddInn (qui a pour but,
si j'ai bien compris, de masquer un classeur ... avec toutes ses
feuilles, ce qui n'est habituellement pas possible !)

le but n'étant pas d'en faire une macrocomplémentaire

Désolé, mais pourquoi parler de macro complémentaire si au bout du
compte ce n'en est pas une ?!

mais de se départir du fait qu'un classeur normal exige au moins une
feuille affichée.


Dans l'absolu, IsAddInn sert-il à autre chose qu'à une application telle
que tu me proposes à présent ?

2-L'autre moyen est qu'en remettant isaddin à False via
CommandButtons de pouvoir à nouveau rendre telle ou telle feuille
visible.


Ok

3- Ce faisant cela t'indique qu'un userform ne s'affiche pas du tout
dans une feuille, mais dans l'application,


Cette dernière phrase est un mystère ! Pour moi, Excel est un classeur
avec des feuilles ou des graphiques... Si on prend un classeur et qu'on
enlève toutes les feuilles (et tous les graphiques éventuels), que
reste-t-il du classeur et donc de l'application ??
Formulé autrement : qu'est-ce que signifie "Application" pour Excel ? Si
VBA = Visual Basic for Application et qu'il s'applique à WORD, que
serait une application de traitement de texte sans une feuille pour
écrire du texte ?? Comprends pas ;-(

on peut le trouver plus haut
plus bas , ailleurs et même nulle part tout en étant là!


J'étais perdu, à présent tu m'envois en orbite ...

----

- Comment est-ce possible de masquer "toutes" les feuilles d'un
classeurs ??
Je viens d'y répondre, en masquant le classeur .



Donc si on fait disparaître le UF une fois que le classeur est masqué
par IsAddInn, on se retrouve avec un classeur virtuel. Si je raconte ça
à ma femme, elle me fait interner !!

- Si je clique sur "Tout masquer" alors que j'ai ouvert un autre
classeur, le Menu reste apparent sur le nouveau classeur, mais ton
classeur n'apparaît plus dans la barre de tâches !
C'est tout à fait normal, puisqu'on a fait disparaître le classeur

(mais il est toujours là).


Normal pour LSteph !

Déjà selon ton propos il y a un seul classeur d'ouvert avec une
feuille qui sert exclusivement à afficher l'une des deux autres et
dont tu souhaitais te débarrasser.
Cela te donne a priori les moyens voulus, il te reste bien évidemment
à les adapter le cas échéant à d'autres contextes que celui posé.


Avant d'adapter, il faut que je me réadapte à la vie sur Terre ;-)

Plus accessoirement même si cette option est possible il vaut mieux à
mon humble avis ne faire apparaître que les fenêtres d'application
dans la barre des tâches ainsi, selon l'usage normalement dévolu à cet
barre pouvoir basculer d'une application à l'autre sans confusions et
avec à disposition une barre un peu moins chargée.


A part des fenêtres d'application, que pourrait-on afficher dans cette
barre ?? De quelle option parles-tu ?? Tu me laisses (??) entendre que
j'utiliserais cette barre à d'autres fins !?

Le menu Fenêtre conserve son
utilité pour basculer d'un classeur à l'autre dans l'application, je
trouve cela plus clair ainsi. Tu noteras que dans ce cas ton classeur
a aussi disparu du menu Fenêtre Afficher.


Donc tu me conseilles de ne pas utiliser IsAddInn !??

- Qu'est-ce qu'un UF "non modal" ? J'ai comparé les propriétés de
ton UF

avec un UF "normal", il n'y a (apparemment) aucune différence !


La différence entre non modal et modal se résume à ce que dans le
premier cas tout en gardant l'UF affiché on peut aller dans la
feuille et dans l'autre non.



- Que faire si je ne veux pas enregistrer les modifications
apportées au

classeur ?





Il suffit de cliquer sur la croix qui ferme le userform, comme tu peux
le lire dans le code:
Private Sub UserForm_Terminate()
ThisWorkbook.Close False




Je note bien la différence, mais pour moi "ThisWorkbook.Close False"
devrait signifier "on ne ferme pas le classeur" Je ne vois pas de mot
qui ressemblerait de près ou de loin à un "Save" ...

Unload Me




Et puisqu'il ferme, à quoi bon lui dire de "décharger" le UF ? Un
classeur fermé ne garderait pas de UF, non ??

End Sub



J'espère que cela répond bien à toutes tes questions.


Merci en tout cas de l'effort que tu fais pour me rendre la chose
limpide ...
Question subsidiaire : l'enregistrement "sous" est-il possible ? Sinon,
l'enregistrement à l'endroit d'où à été lancé le classeur virtuel semble
être de mise ?!

PS : le code Userform_terminate m'intrigue ... Est-ce que le mot
"terminate" indique en général que le code en question s'applique à la
fameuse "petite croix" ? Peut-on utiliser cette "extension" pour un UF
"modal" ?

@+ ???

JP

@+

lSteph



Bonjour Stéphane,

(Désolé de ne pas avoir répondu plus tôt. Je suis malade depuis 4
jours !)

Merci pour ton classeur.
Plusieurs questions :
- Si je clique sur "Tout masquer" alors que j'ai ouvert un autre
classeur, le Menu reste apparent sur le nouveau classeur, mais ton
classeur n'apparaît plus dans la barre de tâches !
- Si je fais un double-clic gauche sur UserForm1 et que je reviens
sur la page d'accueil, le menu n'est plus apparent ! Pour qu'il
réapparaisse, je vais dans ThisWorkbook et je lance le code ... (?)
- Comment est-ce possible de masquer "toutes" les feuilles d'un
classeurs ??
- Qu'est-ce qu'un UF "non modal" ? J'ai comparé les propriétés de ton
UF avec un UF "normal", il n'y a (apparemment) aucune différence !
- Si je saisi qqch sur la Feuil1 (ie) et que je clique ensuite sur
Quitter (du menu), le classeur se ferme sans me demander si j'accepte
les modifications ! (Et je ne peux pas accéder à "Menu" /
"Enregistrer sous" etc.)
- Que faire si je ne veux pas enregistrer les modifications apportées
au classeur ?
- Que veut dire "IsAddIn" (quel est le principe) ?

L'idée me plaît, mais j'ai besoin d'en savoir un peu plus avant de le
mettre entre les mains de mes collaborateurs ...

A bientôt ?

JP

Pas forcément
tu peux jouer avec isaddin
http://cjoint.com/?klageZqcZy



(ici UF non modal)

''''''''''''''''''''''''''''''''''
'''Thisworkbook
Private Sub Workbook_Open()
ThisWorkbook.IsAddin = True
UserForm1.Show
End Sub
'''''''''''''''''''

'''userform1 (Menu)
Private Sub CommandButton1_Click()
ThisWorkbook.IsAddin = False
Feuil1.Visible = True
Feuil2.Visible = False
End Sub

Private Sub CommandButton2_click()
ThisWorkbook.IsAddin = False
Feuil2.Visible = True
Feuil1.Visible = False
End Sub

Private Sub CommandButton3_Click()
ThisWorkbook.Close True
End Sub

Private Sub CommandButton4_Click()
ThisWorkbook.IsAddin = True
End Sub

Private Sub UserForm_Terminate()
ThisWorkbook.Close False
Unload Me
End Sub
'''''''''''''''''''''''''''''''''''''


Cordialement.

lSteph

Bonjour,

Question pas vraiment technique ...

J'ai un classeur de 3 feuilles. Les macros s'appliquent aux 2
premières.
A l'état "normal", elles sont "hidden".
La 3ème feuille sert uniquement à lancer 2 macros ...

Question : Est-il judicieux d'utiliser une feuille pour n'afficher
que 2 boutons ?
Pour faire moins "vide" j'ai 2 Gifs qui actionnent les macros, et
j'ai inclu un ScrollArea dans le code pour que l'utilisateur ne se
perde pas dans cet espace quasi désert ...

Qu'utiliseriez-vous un "pb" similaire ? J'ai bien pensé à un UF,
mais il faut bien le lancer (ça, à la rigueur, je vois ...) mais il
apparaitra bien sur une Feuille ?!!

Merci d'avance pour vos lumières ...

Cordialement,

JP












Avatar
Misange
ouah !!!
tu devrais mettre ça sur xlwiki !
belle explication :-)

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour,

Si je raconte ça
à ma femme, elle me fait interner !!



Ne sousestimes pas les femmes, peut-être que si tu lui fait lire
elle va t'aider à comprendre ce que j'ai du mal à expliquer!
:o)))

.isaddin
Pas très clair pour moi !



C'est pourtant simple:
(.xla c'est l'extension des macros-complémentaires)
isAddin transforme le classeur .xls qui acquiert ainsi les mêmes
propriétés que s'il était un xla sauf qu'il a toujours l'extension xls
puisqu'on ne la pas enregitré en xla! Et un xla c'est toujours masqué!

Ainsi s'agit-il bien ici d'une ruse pour masquer le classeur!

Pour moi, Excel est un classeur...
Pas du tout:

Excel peut ouvrir des classeurs et contient des menus et des boutons ce
n'est pas pour autant que l'on va dire qu'excel est un bouton!

Excel est une application tableur,
Word une application traitement de texte
VBA Visual Basic pour Applications est une intégration du Visual Basic
en tant que langage utilisable pour les applications Office et d'autres
même parfois (exemple BusinessObjects),
VBE est l'Editeur de Visual Basic c'est une application associée à
excel, ou à d'autres application utilisant VBA et offrant une interface
à l'utilisateur pour programmer.

L'application c'est Excel et on travaille dedans que l'on affiche ou pas
un classeur, de même on peut y faire apparaître un userform sans
afficher de feuille, ou y voir des barres de menus et d'outils même s'il
n'y a pas de classeur ouvert.
L'application comprend une fenêtre visible ainsi que les autres objets
visibles dans l'application mais contient aussi tous les objets non
visibles, fonctionnalités, programmes...

L'objet application est donc le premier "contenant" d'Excel
conceptualisable par l'utilisateur,
à l'intérieur d'autres "contenants", exemple les barres d'outils ou
menus peuvent contenir des sous menus ou des boutons
les classeurs peuvent contenir des feuilles de calcul des feuilles
graphiques des feuilles macros Excel4, des feuille de dialogue
pour mise au point des boites de dialogues personnalisées , ancêtre du
userform dans excel mais dont la compatibilité a été assurée
jusqu'ici..etc..
(clic droit sur l'onglet de feuille insérer pour voir tout cela..)

Lorsque l'on bascule dans la fenêtre de VBE, l'explorateur de projet
sur la gauche (par défaut)affiche une représentation graphique des
éléments présents dans l'application qui ont une existence en tant que
projet Visual Basic ou une appartenance à un projet
exemple : Classeurs xls ou MacrosComplémentaires xla en tant qu' objet
"conteneur" ou projet Vba, ainsi peut on y trouver d'emblée la
représentation des feuilles ou des graphiques qui appartiennent au
classeur dans excel et peuvent être sélectionnés pour faire notamment
apparaître (doubleclic) le module de code qui y est associé, ainsi de
même l'objet ThisWorkbook représente le classeur le module thisworkbook
sert donc aux évennements et routines propres au classeur.
On peut aussi insérer dans un projet des modules standard, modules de
classe ou userform, ils sont eux mêmes des objets à part entière qui
seront enregistrés par excel ou en même temps que le classeur et
contiennent leur code.
Il peuvent en outre être enregistrés séparément clic droit sur l'objet
(exporter)

Comment tout cela communique-t-il:
Il y a toujours un respect de la hierarchie,
Application <=> Excel
Projet<=>Classeur
Feuilles, Modules, Userforms..<=>
Eléments présents dans le classeur ou projet

Pour aller plus loin, si tu crée un bouton dans une feuille
et que tu vas dans le module de feuille que tu cliques sur le déroulant
en haut à gauche Worksheet tu verras CommandButton1

Pour te faire une idée de l'étendue de tous les objets que crée VBA pour
supporter et gèrer ceux que renferme l'application "Excel" va voir dans
l'explorateur d'objets tu seras surpris des quantités, d'objets,
collections d'objets, méthodes, propriétés... etc

3- Ce faisant cela t'indique qu'un userform ne s'affiche pas du tout
dans une feuille, mais dans l'application,




En fait pour aller à plus simple,

Userform1.show

Ce que tu écris là dans ton programme VBA indique à l'application que tu
veux que Userform1 soit chargé et s'affiche sur ton écran et se fiche
pas mal de savoir
s'il y a ou non une feuille en dessous.

on peut le trouver plus haut
plus bas , ailleurs et même nulle part tout en étant là!




Tu peux déterminer la position du userform , même en dehors de la feuille,
tu peux aussi dire userform1.hide
il est toujours là, chargé en mémoire mais on ne le voit pas.

Unload me ouUnload Userform1, là cela ferme complètement le userform

PS : le code Userform_terminate m'intrigue



Private Sub UserForm_Terminate() c'est ce qui est demandé de faire par
VBA quand le userform est refermé (déchargé de la mémoire)
Lorsque tu clique sur la croix c'est idem que Unload Userform donc cela
provoque le terminate
si tu utilisais hide il serait seulement masqué donc pas de terminate.

Pour l'enregistrement j'ai donc à cet effet prévu un bouton quitter
qui enregistre d'abord puis ensuite ferme!

...

@+

lSteph


Bonsoir Stéphane,

.isaddin cf ThisWorkbook et code du UF pour
rendre masqué ou non un classeur. En fait cela en fait une macro
complémentaire même si en utilisant isAddin on peut conserver
l'extension xls,


Pas très clair pour moi !
Excel = xls (pour moi) donc tout se qu'on fait avec Excel = xls y
compris avec une ligne de code qui s'appelle IsAddInn (qui a pour but,
si j'ai bien compris, de masquer un classeur ... avec toutes ses
feuilles, ce qui n'est habituellement pas possible !)

le but n'étant pas d'en faire une macrocomplémentaire

Désolé, mais pourquoi parler de macro complémentaire si au bout du
compte ce n'en est pas une ?!

mais de se départir du fait qu'un classeur normal exige au moins une
feuille affichée.


Dans l'absolu, IsAddInn sert-il à autre chose qu'à une application
telle que tu me proposes à présent ?

2-L'autre moyen est qu'en remettant isaddin à False via
CommandButtons de pouvoir à nouveau rendre telle ou telle feuille
visible.


Ok

3- Ce faisant cela t'indique qu'un userform ne s'affiche pas du tout
dans une feuille, mais dans l'application,


Cette dernière phrase est un mystère ! Pour moi, Excel est un classeur
avec des feuilles ou des graphiques... Si on prend un classeur et
qu'on enlève toutes les feuilles (et tous les graphiques éventuels),
que reste-t-il du classeur et donc de l'application ??
Formulé autrement : qu'est-ce que signifie "Application" pour Excel ?
Si VBA = Visual Basic for Application et qu'il s'applique à WORD, que
serait une application de traitement de texte sans une feuille pour
écrire du texte ?? Comprends pas ;-(

on peut le trouver plus haut
plus bas , ailleurs et même nulle part tout en étant là!


J'étais perdu, à présent tu m'envois en orbite ...

----

- Comment est-ce possible de masquer "toutes" les feuilles d'un
classeurs ??
Je viens d'y répondre, en masquant le classeur .



Donc si on fait disparaître le UF une fois que le classeur est masqué
par IsAddInn, on se retrouve avec un classeur virtuel. Si je raconte
ça à ma femme, elle me fait interner !!

- Si je clique sur "Tout masquer" alors que j'ai ouvert un autre
classeur, le Menu reste apparent sur le nouveau classeur, mais ton
classeur n'apparaît plus dans la barre de tâches !
C'est tout à fait normal, puisqu'on a fait disparaître le classeur

(mais il est toujours là).


Normal pour LSteph !

Déjà selon ton propos il y a un seul classeur d'ouvert avec une
feuille qui sert exclusivement à afficher l'une des deux autres et
dont tu souhaitais te débarrasser.
Cela te donne a priori les moyens voulus, il te reste bien évidemment
à les adapter le cas échéant à d'autres contextes que celui posé.


Avant d'adapter, il faut que je me réadapte à la vie sur Terre ;-)

Plus accessoirement même si cette option est possible il vaut mieux à
mon humble avis ne faire apparaître que les fenêtres d'application
dans la barre des tâches ainsi, selon l'usage normalement dévolu à
cet barre pouvoir basculer d'une application à l'autre sans
confusions et avec à disposition une barre un peu moins chargée.


A part des fenêtres d'application, que pourrait-on afficher dans cette
barre ?? De quelle option parles-tu ?? Tu me laisses (??) entendre que
j'utiliserais cette barre à d'autres fins !?

Le menu Fenêtre conserve son
utilité pour basculer d'un classeur à l'autre dans l'application, je
trouve cela plus clair ainsi. Tu noteras que dans ce cas ton classeur
a aussi disparu du menu Fenêtre Afficher.


Donc tu me conseilles de ne pas utiliser IsAddInn !??

- Qu'est-ce qu'un UF "non modal" ? J'ai comparé les propriétés de
ton UF

avec un UF "normal", il n'y a (apparemment) aucune différence !


La différence entre non modal et modal se résume à ce que dans le
premier cas tout en gardant l'UF affiché on peut aller dans la
feuille et dans l'autre non.



- Que faire si je ne veux pas enregistrer les modifications
apportées au

classeur ?





Il suffit de cliquer sur la croix qui ferme le userform, comme tu
peux le lire dans le code:
Private Sub UserForm_Terminate()
ThisWorkbook.Close False




Je note bien la différence, mais pour moi "ThisWorkbook.Close False"
devrait signifier "on ne ferme pas le classeur" Je ne vois pas de mot
qui ressemblerait de près ou de loin à un "Save" ...

Unload Me




Et puisqu'il ferme, à quoi bon lui dire de "décharger" le UF ? Un
classeur fermé ne garderait pas de UF, non ??

End Sub



J'espère que cela répond bien à toutes tes questions.


Merci en tout cas de l'effort que tu fais pour me rendre la chose
limpide ...
Question subsidiaire : l'enregistrement "sous" est-il possible ?
Sinon, l'enregistrement à l'endroit d'où à été lancé le classeur
virtuel semble être de mise ?!

PS : le code Userform_terminate m'intrigue ... Est-ce que le mot
"terminate" indique en général que le code en question s'applique à la
fameuse "petite croix" ? Peut-on utiliser cette "extension" pour un UF
"modal" ?

@+ ???

JP

@+

lSteph



Bonjour Stéphane,

(Désolé de ne pas avoir répondu plus tôt. Je suis malade depuis 4
jours !)

Merci pour ton classeur.
Plusieurs questions :
- Si je clique sur "Tout masquer" alors que j'ai ouvert un autre
classeur, le Menu reste apparent sur le nouveau classeur, mais ton
classeur n'apparaît plus dans la barre de tâches !
- Si je fais un double-clic gauche sur UserForm1 et que je reviens
sur la page d'accueil, le menu n'est plus apparent ! Pour qu'il
réapparaisse, je vais dans ThisWorkbook et je lance le code ... (?)
- Comment est-ce possible de masquer "toutes" les feuilles d'un
classeurs ??
- Qu'est-ce qu'un UF "non modal" ? J'ai comparé les propriétés de
ton UF avec un UF "normal", il n'y a (apparemment) aucune différence !
- Si je saisi qqch sur la Feuil1 (ie) et que je clique ensuite sur
Quitter (du menu), le classeur se ferme sans me demander si
j'accepte les modifications ! (Et je ne peux pas accéder à "Menu" /
"Enregistrer sous" etc.)
- Que faire si je ne veux pas enregistrer les modifications
apportées au classeur ?
- Que veut dire "IsAddIn" (quel est le principe) ?

L'idée me plaît, mais j'ai besoin d'en savoir un peu plus avant de
le mettre entre les mains de mes collaborateurs ...

A bientôt ?

JP

Pas forcément
tu peux jouer avec isaddin
http://cjoint.com/?klageZqcZy



(ici UF non modal)

''''''''''''''''''''''''''''''''''
'''Thisworkbook
Private Sub Workbook_Open()
ThisWorkbook.IsAddin = True
UserForm1.Show
End Sub
'''''''''''''''''''

'''userform1 (Menu)
Private Sub CommandButton1_Click()
ThisWorkbook.IsAddin = False
Feuil1.Visible = True
Feuil2.Visible = False
End Sub

Private Sub CommandButton2_click()
ThisWorkbook.IsAddin = False
Feuil2.Visible = True
Feuil1.Visible = False
End Sub

Private Sub CommandButton3_Click()
ThisWorkbook.Close True
End Sub

Private Sub CommandButton4_Click()
ThisWorkbook.IsAddin = True
End Sub

Private Sub UserForm_Terminate()
ThisWorkbook.Close False
Unload Me
End Sub
'''''''''''''''''''''''''''''''''''''


Cordialement.

lSteph

Bonjour,

Question pas vraiment technique ...

J'ai un classeur de 3 feuilles. Les macros s'appliquent aux 2
premières.
A l'état "normal", elles sont "hidden".
La 3ème feuille sert uniquement à lancer 2 macros ...

Question : Est-il judicieux d'utiliser une feuille pour n'afficher
que 2 boutons ?
Pour faire moins "vide" j'ai 2 Gifs qui actionnent les macros, et
j'ai inclu un ScrollArea dans le code pour que l'utilisateur ne se
perde pas dans cet espace quasi désert ...

Qu'utiliseriez-vous un "pb" similaire ? J'ai bien pensé à un UF,
mais il faut bien le lancer (ça, à la rigueur, je vois ...) mais
il apparaitra bien sur une Feuille ?!!

Merci d'avance pour vos lumières ...

Cordialement,

JP














Avatar
Philippe.R
Bonjour Misange,

ouah !!!
tu devrais mettre ça sur xlwiki !
belle explication :-)


C'est à cause de ça ?

Ne sousestimes pas les femmes, peut-être que si tu lui fait lire
elle va t'aider à comprendre ce que j'ai du mal à expliquer!
:o)))




<{;o)=))
--
http://www.excelabo.net/mpfe/connexion.php
http://dj.joss.free.fr/trombine.htm
Avec plaisir
Philippe.R
"Misange" a écrit dans le message de
news:eG%
ouah !!!
tu devrais mettre ça sur xlwiki !
belle explication :-)

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour,

Si je raconte ça
à ma femme, elle me fait interner !!



Ne sousestimes pas les femmes, peut-être que si tu lui fait lire
elle va t'aider à comprendre ce que j'ai du mal à expliquer!
:o)))







Avatar
LSteph
Bonjour Flo,

Merci...pour ce compliment!

Sur xlwiki oui, ceci est un peu généraliste, dans quelle rubrique?

Sinon...
...tu peux y prendre et mettre dans une forme plus appropriée ce que tu
trouverais bon d'en conserver, en plus c'est vrai que sur xlwiki il y
aura bon nombre pour rectifier le cas échéant les quelques imprécisions
ou raccourcis que j'ai pu employer dans le but d'expliquer.

A propos...

Par rapport à ce que j'écris ou propose sur mpfe je ne sais pas d'emblée
juger de ce qui serait réellement valable et intéressant de mettre sur
xlwiki ou excelabo, je me suis pourtant parfois dit , tiens cela je
pourrais sans doute le proposer, mais in fine... je ne sais pas
vraiment si c'est valable. Alors par solution de facilité, je me dis que
si quelqu'un trouve cela bien il aura tout loisir de s'en servir.

D'une manière générale, cela je le signe, tu as carte blanche sur tout
ce que je propose sur ce forum, qu'il s'agisse d'explications ou de codes...

Sinon, je comprends aussi que tu peux n'avoir pas forcément le temps
matériel de voir et de prélever dans toutes les ficelles alors si tu
préfères mets moi un petit signal comme ici et j'irais poser là où il
convient.

Cordialement.

lSteph




ouah !!!
tu devrais mettre ça sur xlwiki !
belle explication :-)

Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour,

Si je raconte ça
à ma femme, elle me fait interner !!



Ne sousestimes pas les femmes, peut-être que si tu lui fait lire
elle va t'aider à comprendre ce que j'ai du mal à expliquer!
:o)))

.isaddin
Pas très clair pour moi !



C'est pourtant simple:
(.xla c'est l'extension des macros-complémentaires)
isAddin transforme le classeur .xls qui acquiert ainsi les mêmes
propriétés que s'il était un xla sauf qu'il a toujours l'extension xls
puisqu'on ne la pas enregitré en xla! Et un xla c'est toujours masqué!

Ainsi s'agit-il bien ici d'une ruse pour masquer le classeur!

Pour moi, Excel est un classeur...
Pas du tout:

Excel peut ouvrir des classeurs et contient des menus et des boutons
ce n'est pas pour autant que l'on va dire qu'excel est un bouton!

Excel est une application tableur,
Word une application traitement de texte
VBA Visual Basic pour Applications est une intégration du Visual Basic
en tant que langage utilisable pour les applications Office et
d'autres même parfois (exemple BusinessObjects),
VBE est l'Editeur de Visual Basic c'est une application associée à
excel, ou à d'autres application utilisant VBA et offrant une
interface à l'utilisateur pour programmer.

L'application c'est Excel et on travaille dedans que l'on affiche ou
pas un classeur, de même on peut y faire apparaître un userform sans
afficher de feuille, ou y voir des barres de menus et d'outils même s'il
n'y a pas de classeur ouvert.
L'application comprend une fenêtre visible ainsi que les autres objets
visibles dans l'application mais contient aussi tous les objets non
visibles, fonctionnalités, programmes...

L'objet application est donc le premier "contenant" d'Excel
conceptualisable par l'utilisateur,
à l'intérieur d'autres "contenants", exemple les barres d'outils ou
menus peuvent contenir des sous menus ou des boutons
les classeurs peuvent contenir des feuilles de calcul des feuilles
graphiques des feuilles macros Excel4, des feuille de dialogue
pour mise au point des boites de dialogues personnalisées , ancêtre du
userform dans excel mais dont la compatibilité a été assurée
jusqu'ici..etc..
(clic droit sur l'onglet de feuille insérer pour voir tout cela..)

Lorsque l'on bascule dans la fenêtre de VBE, l'explorateur de projet
sur la gauche (par défaut)affiche une représentation graphique des
éléments présents dans l'application qui ont une existence en tant que
projet Visual Basic ou une appartenance à un projet
exemple : Classeurs xls ou MacrosComplémentaires xla en tant qu' objet
"conteneur" ou projet Vba, ainsi peut on y trouver d'emblée la
représentation des feuilles ou des graphiques qui appartiennent au
classeur dans excel et peuvent être sélectionnés pour faire notamment
apparaître (doubleclic) le module de code qui y est associé, ainsi de
même l'objet ThisWorkbook représente le classeur le module thisworkbook
sert donc aux évennements et routines propres au classeur.
On peut aussi insérer dans un projet des modules standard, modules de
classe ou userform, ils sont eux mêmes des objets à part entière qui
seront enregistrés par excel ou en même temps que le classeur et
contiennent leur code.
Il peuvent en outre être enregistrés séparément clic droit sur l'objet
(exporter)

Comment tout cela communique-t-il:
Il y a toujours un respect de la hierarchie,
Application <=> Excel
Projet<=>Classeur
Feuilles, Modules, Userforms..<=>
Eléments présents dans le classeur ou projet

Pour aller plus loin, si tu crée un bouton dans une feuille
et que tu vas dans le module de feuille que tu cliques sur le
déroulant en haut à gauche Worksheet tu verras CommandButton1

Pour te faire une idée de l'étendue de tous les objets que crée VBA
pour supporter et gèrer ceux que renferme l'application "Excel" va
voir dans l'explorateur d'objets tu seras surpris des quantités,
d'objets, collections d'objets, méthodes, propriétés... etc

3- Ce faisant cela t'indique qu'un userform ne s'affiche pas du
tout dans une feuille, mais dans l'application,




En fait pour aller à plus simple,

Userform1.show

Ce que tu écris là dans ton programme VBA indique à l'application que
tu veux que Userform1 soit chargé et s'affiche sur ton écran et se
fiche pas mal de savoir
s'il y a ou non une feuille en dessous.

on peut le trouver plus haut
plus bas , ailleurs et même nulle part tout en étant là!




Tu peux déterminer la position du userform , même en dehors de la
feuille,
tu peux aussi dire userform1.hide
il est toujours là, chargé en mémoire mais on ne le voit pas.

Unload me ouUnload Userform1, là cela ferme complètement le userform

PS : le code Userform_terminate m'intrigue



Private Sub UserForm_Terminate() c'est ce qui est demandé de faire par
VBA quand le userform est refermé (déchargé de la mémoire)
Lorsque tu clique sur la croix c'est idem que Unload Userform donc
cela provoque le terminate
si tu utilisais hide il serait seulement masqué donc pas de terminate.

Pour l'enregistrement j'ai donc à cet effet prévu un bouton quitter
qui enregistre d'abord puis ensuite ferme!

...

@+

lSteph


Bonsoir Stéphane,

.isaddin cf ThisWorkbook et code du UF pour
rendre masqué ou non un classeur. En fait cela en fait une macro
complémentaire même si en utilisant isAddin on peut conserver
l'extension xls,


Pas très clair pour moi !
Excel = xls (pour moi) donc tout se qu'on fait avec Excel = xls y
compris avec une ligne de code qui s'appelle IsAddInn (qui a pour
but, si j'ai bien compris, de masquer un classeur ... avec toutes ses
feuilles, ce qui n'est habituellement pas possible !)

le but n'étant pas d'en faire une macrocomplémentaire

Désolé, mais pourquoi parler de macro complémentaire si au bout du
compte ce n'en est pas une ?!

mais de se départir du fait qu'un classeur normal exige au moins une
feuille affichée.


Dans l'absolu, IsAddInn sert-il à autre chose qu'à une application
telle que tu me proposes à présent ?

2-L'autre moyen est qu'en remettant isaddin à False via
CommandButtons de pouvoir à nouveau rendre telle ou telle feuille
visible.


Ok

3- Ce faisant cela t'indique qu'un userform ne s'affiche pas du tout
dans une feuille, mais dans l'application,


Cette dernière phrase est un mystère ! Pour moi, Excel est un
classeur avec des feuilles ou des graphiques... Si on prend un
classeur et qu'on enlève toutes les feuilles (et tous les graphiques
éventuels), que reste-t-il du classeur et donc de l'application ??
Formulé autrement : qu'est-ce que signifie "Application" pour Excel ?
Si VBA = Visual Basic for Application et qu'il s'applique à WORD, que
serait une application de traitement de texte sans une feuille pour
écrire du texte ?? Comprends pas ;-(

on peut le trouver plus haut
plus bas , ailleurs et même nulle part tout en étant là!


J'étais perdu, à présent tu m'envois en orbite ...

----

- Comment est-ce possible de masquer "toutes" les feuilles d'un
classeurs ??
Je viens d'y répondre, en masquant le classeur .



Donc si on fait disparaître le UF une fois que le classeur est masqué
par IsAddInn, on se retrouve avec un classeur virtuel. Si je raconte
ça à ma femme, elle me fait interner !!

- Si je clique sur "Tout masquer" alors que j'ai ouvert un autre
classeur, le Menu reste apparent sur le nouveau classeur, mais ton
classeur n'apparaît plus dans la barre de tâches !
C'est tout à fait normal, puisqu'on a fait disparaître le classeur

(mais il est toujours là).


Normal pour LSteph !

Déjà selon ton propos il y a un seul classeur d'ouvert avec une
feuille qui sert exclusivement à afficher l'une des deux autres et
dont tu souhaitais te débarrasser.
Cela te donne a priori les moyens voulus, il te reste bien
évidemment à les adapter le cas échéant à d'autres contextes que
celui posé.


Avant d'adapter, il faut que je me réadapte à la vie sur Terre ;-)

Plus accessoirement même si cette option est possible il vaut mieux
à mon humble avis ne faire apparaître que les fenêtres d'application
dans la barre des tâches ainsi, selon l'usage normalement dévolu à
cet barre pouvoir basculer d'une application à l'autre sans
confusions et avec à disposition une barre un peu moins chargée.


A part des fenêtres d'application, que pourrait-on afficher dans
cette barre ?? De quelle option parles-tu ?? Tu me laisses (??)
entendre que j'utiliserais cette barre à d'autres fins !?

Le menu Fenêtre conserve son
utilité pour basculer d'un classeur à l'autre dans l'application, je
trouve cela plus clair ainsi. Tu noteras que dans ce cas ton
classeur a aussi disparu du menu Fenêtre Afficher.


Donc tu me conseilles de ne pas utiliser IsAddInn !??

- Qu'est-ce qu'un UF "non modal" ? J'ai comparé les propriétés de
ton UF

avec un UF "normal", il n'y a (apparemment) aucune différence !


La différence entre non modal et modal se résume à ce que dans le
premier cas tout en gardant l'UF affiché on peut aller dans la
feuille et dans l'autre non.



- Que faire si je ne veux pas enregistrer les modifications
apportées au

classeur ?





Il suffit de cliquer sur la croix qui ferme le userform, comme tu
peux le lire dans le code:
Private Sub UserForm_Terminate()
ThisWorkbook.Close False




Je note bien la différence, mais pour moi "ThisWorkbook.Close False"
devrait signifier "on ne ferme pas le classeur" Je ne vois pas de mot
qui ressemblerait de près ou de loin à un "Save" ...

Unload Me




Et puisqu'il ferme, à quoi bon lui dire de "décharger" le UF ? Un
classeur fermé ne garderait pas de UF, non ??

End Sub



J'espère que cela répond bien à toutes tes questions.


Merci en tout cas de l'effort que tu fais pour me rendre la chose
limpide ...
Question subsidiaire : l'enregistrement "sous" est-il possible ?
Sinon, l'enregistrement à l'endroit d'où à été lancé le classeur
virtuel semble être de mise ?!

PS : le code Userform_terminate m'intrigue ... Est-ce que le mot
"terminate" indique en général que le code en question s'applique à
la fameuse "petite croix" ? Peut-on utiliser cette "extension" pour
un UF "modal" ?

@+ ???

JP

@+

lSteph



Bonjour Stéphane,

(Désolé de ne pas avoir répondu plus tôt. Je suis malade depuis 4
jours !)

Merci pour ton classeur.
Plusieurs questions :
- Si je clique sur "Tout masquer" alors que j'ai ouvert un autre
classeur, le Menu reste apparent sur le nouveau classeur, mais ton
classeur n'apparaît plus dans la barre de tâches !
- Si je fais un double-clic gauche sur UserForm1 et que je reviens
sur la page d'accueil, le menu n'est plus apparent ! Pour qu'il
réapparaisse, je vais dans ThisWorkbook et je lance le code ... (?)
- Comment est-ce possible de masquer "toutes" les feuilles d'un
classeurs ??
- Qu'est-ce qu'un UF "non modal" ? J'ai comparé les propriétés de
ton UF avec un UF "normal", il n'y a (apparemment) aucune différence !
- Si je saisi qqch sur la Feuil1 (ie) et que je clique ensuite sur
Quitter (du menu), le classeur se ferme sans me demander si
j'accepte les modifications ! (Et je ne peux pas accéder à "Menu" /
"Enregistrer sous" etc.)
- Que faire si je ne veux pas enregistrer les modifications
apportées au classeur ?
- Que veut dire "IsAddIn" (quel est le principe) ?

L'idée me plaît, mais j'ai besoin d'en savoir un peu plus avant de
le mettre entre les mains de mes collaborateurs ...

A bientôt ?

JP

Pas forcément
tu peux jouer avec isaddin
http://cjoint.com/?klageZqcZy



(ici UF non modal)

''''''''''''''''''''''''''''''''''
'''Thisworkbook
Private Sub Workbook_Open()
ThisWorkbook.IsAddin = True
UserForm1.Show
End Sub
'''''''''''''''''''

'''userform1 (Menu)
Private Sub CommandButton1_Click()
ThisWorkbook.IsAddin = False
Feuil1.Visible = True
Feuil2.Visible = False
End Sub

Private Sub CommandButton2_click()
ThisWorkbook.IsAddin = False
Feuil2.Visible = True
Feuil1.Visible = False
End Sub

Private Sub CommandButton3_Click()
ThisWorkbook.Close True
End Sub

Private Sub CommandButton4_Click()
ThisWorkbook.IsAddin = True
End Sub

Private Sub UserForm_Terminate()
ThisWorkbook.Close False
Unload Me
End Sub
'''''''''''''''''''''''''''''''''''''


Cordialement.

lSteph

Bonjour,

Question pas vraiment technique ...

J'ai un classeur de 3 feuilles. Les macros s'appliquent aux 2
premières.
A l'état "normal", elles sont "hidden".
La 3ème feuille sert uniquement à lancer 2 macros ...

Question : Est-il judicieux d'utiliser une feuille pour
n'afficher que 2 boutons ?
Pour faire moins "vide" j'ai 2 Gifs qui actionnent les macros, et
j'ai inclu un ScrollArea dans le code pour que l'utilisateur ne
se perde pas dans cet espace quasi désert ...

Qu'utiliseriez-vous un "pb" similaire ? J'ai bien pensé à un UF,
mais il faut bien le lancer (ça, à la rigueur, je vois ...) mais
il apparaitra bien sur une Feuille ?!!

Merci d'avance pour vos lumières ...

Cordialement,

JP
















Avatar
Misange
:-P
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

Bonjour Misange,

ouah !!!
tu devrais mettre ça sur xlwiki !
belle explication :-)


C'est à cause de ça ?

Ne sousestimes pas les femmes, peut-être que si tu lui fait lire
elle va t'aider à comprendre ce que j'ai du mal à expliquer!
:o)))




<{;o)=))




Avatar
j-pascal
Bonsoir Stéphane,

Merci pour ces explications fournies !! Tu ne me croirais pas si je te
disais que j'ai d'ores et déjà tout compris ;-) Je vais relire et méditer
tout ça ...

En attendant, je fais passer le message à ma femme ... elle qui me disait ce
matin qu'elle projetait de s'inscrire à une formation Excel l'année
prochaine ... ;-)

A bientôt, (et encore merci ! Mais de là à dire que c'est très simple - hum
hum ...)

JP

"LSteph" a écrit dans le message de news:

Bonjour,

Si je raconte ça
à ma femme, elle me fait interner !!



Ne sousestimes pas les femmes, peut-être que si tu lui fait lire
elle va t'aider à comprendre ce que j'ai du mal à expliquer!
:o)))

.isaddin
Pas très clair pour moi !



C'est pourtant simple:
(.xla c'est l'extension des macros-complémentaires)
isAddin transforme le classeur .xls qui acquiert ainsi les mêmes
propriétés que s'il était un xla sauf qu'il a toujours l'extension xls
puisqu'on ne la pas enregitré en xla! Et un xla c'est toujours masqué!

Ainsi s'agit-il bien ici d'une ruse pour masquer le classeur!

Pour moi, Excel est un classeur...
Pas du tout:

Excel peut ouvrir des classeurs et contient des menus et des boutons ce
n'est pas pour autant que l'on va dire qu'excel est un bouton!

Excel est une application tableur,
Word une application traitement de texte
VBA Visual Basic pour Applications est une intégration du Visual Basic en
tant que langage utilisable pour les applications Office et d'autres même
parfois (exemple BusinessObjects),
VBE est l'Editeur de Visual Basic c'est une application associée à excel,
ou à d'autres application utilisant VBA et offrant une interface à
l'utilisateur pour programmer.

L'application c'est Excel et on travaille dedans que l'on affiche ou pas
un classeur, de même on peut y faire apparaître un userform sans afficher
de feuille, ou y voir des barres de menus et d'outils même s'il
n'y a pas de classeur ouvert.
L'application comprend une fenêtre visible ainsi que les autres objets
visibles dans l'application mais contient aussi tous les objets non
visibles, fonctionnalités, programmes...

L'objet application est donc le premier "contenant" d'Excel
conceptualisable par l'utilisateur,
à l'intérieur d'autres "contenants", exemple les barres d'outils ou menus
peuvent contenir des sous menus ou des boutons
les classeurs peuvent contenir des feuilles de calcul des feuilles
graphiques des feuilles macros Excel4, des feuille de dialogue
pour mise au point des boites de dialogues personnalisées , ancêtre du
userform dans excel mais dont la compatibilité a été assurée
jusqu'ici..etc..
(clic droit sur l'onglet de feuille insérer pour voir tout cela..)

Lorsque l'on bascule dans la fenêtre de VBE, l'explorateur de projet
sur la gauche (par défaut)affiche une représentation graphique des
éléments présents dans l'application qui ont une existence en tant que
projet Visual Basic ou une appartenance à un projet
exemple : Classeurs xls ou MacrosComplémentaires xla en tant qu' objet
"conteneur" ou projet Vba, ainsi peut on y trouver d'emblée la
représentation des feuilles ou des graphiques qui appartiennent au
classeur dans excel et peuvent être sélectionnés pour faire notamment
apparaître (doubleclic) le module de code qui y est associé, ainsi de
même l'objet ThisWorkbook représente le classeur le module thisworkbook
sert donc aux évennements et routines propres au classeur.
On peut aussi insérer dans un projet des modules standard, modules de
classe ou userform, ils sont eux mêmes des objets à part entière qui
seront enregistrés par excel ou en même temps que le classeur et
contiennent leur code.
Il peuvent en outre être enregistrés séparément clic droit sur l'objet
(exporter)

Comment tout cela communique-t-il:
Il y a toujours un respect de la hierarchie,
Application <=> Excel
Projet<=>Classeur
Feuilles, Modules, Userforms..<=>
Eléments présents dans le classeur ou projet

Pour aller plus loin, si tu crée un bouton dans une feuille
et que tu vas dans le module de feuille que tu cliques sur le déroulant en
haut à gauche Worksheet tu verras CommandButton1

Pour te faire une idée de l'étendue de tous les objets que crée VBA pour
supporter et gèrer ceux que renferme l'application "Excel" va voir dans
l'explorateur d'objets tu seras surpris des quantités, d'objets,
collections d'objets, méthodes, propriétés... etc

3- Ce faisant cela t'indique qu'un userform ne s'affiche pas du tout
dans une feuille, mais dans l'application,




En fait pour aller à plus simple,

Userform1.show

Ce que tu écris là dans ton programme VBA indique à l'application que tu
veux que Userform1 soit chargé et s'affiche sur ton écran et se fiche pas
mal de savoir
s'il y a ou non une feuille en dessous.

on peut le trouver plus haut
plus bas , ailleurs et même nulle part tout en étant là!




Tu peux déterminer la position du userform , même en dehors de la feuille,
tu peux aussi dire userform1.hide
il est toujours là, chargé en mémoire mais on ne le voit pas.

Unload me ouUnload Userform1, là cela ferme complètement le userform

PS : le code Userform_terminate m'intrigue



Private Sub UserForm_Terminate() c'est ce qui est demandé de faire par VBA
quand le userform est refermé (déchargé de la mémoire)
Lorsque tu clique sur la croix c'est idem que Unload Userform donc cela
provoque le terminate
si tu utilisais hide il serait seulement masqué donc pas de terminate.

Pour l'enregistrement j'ai donc à cet effet prévu un bouton quitter
qui enregistre d'abord puis ensuite ferme!

...

@+

lSteph


Bonsoir Stéphane,

.isaddin cf ThisWorkbook et code du UF pour
rendre masqué ou non un classeur. En fait cela en fait une macro
complémentaire même si en utilisant isAddin on peut conserver
l'extension xls,


Pas très clair pour moi !
Excel = xls (pour moi) donc tout se qu'on fait avec Excel = xls y compris
avec une ligne de code qui s'appelle IsAddInn (qui a pour but, si j'ai
bien compris, de masquer un classeur ... avec toutes ses feuilles, ce qui
n'est habituellement pas possible !)

le but n'étant pas d'en faire une macrocomplémentaire

Désolé, mais pourquoi parler de macro complémentaire si au bout du compte
ce n'en est pas une ?!

mais de se départir du fait qu'un classeur normal exige au moins une
feuille affichée.


Dans l'absolu, IsAddInn sert-il à autre chose qu'à une application telle
que tu me proposes à présent ?

2-L'autre moyen est qu'en remettant isaddin à False via CommandButtons
de pouvoir à nouveau rendre telle ou telle feuille visible.


Ok

3- Ce faisant cela t'indique qu'un userform ne s'affiche pas du tout
dans une feuille, mais dans l'application,


Cette dernière phrase est un mystère ! Pour moi, Excel est un classeur
avec des feuilles ou des graphiques... Si on prend un classeur et qu'on
enlève toutes les feuilles (et tous les graphiques éventuels), que
reste-t-il du classeur et donc de l'application ??
Formulé autrement : qu'est-ce que signifie "Application" pour Excel ? Si
VBA = Visual Basic for Application et qu'il s'applique à WORD, que serait
une application de traitement de texte sans une feuille pour écrire du
texte ?? Comprends pas ;-(

on peut le trouver plus haut
plus bas , ailleurs et même nulle part tout en étant là!


J'étais perdu, à présent tu m'envois en orbite ...

----

- Comment est-ce possible de masquer "toutes" les feuilles d'un
classeurs ??
Je viens d'y répondre, en masquant le classeur .



Donc si on fait disparaître le UF une fois que le classeur est masqué par
IsAddInn, on se retrouve avec un classeur virtuel. Si je raconte ça à ma
femme, elle me fait interner !!

- Si je clique sur "Tout masquer" alors que j'ai ouvert un autre
classeur, le Menu reste apparent sur le nouveau classeur, mais ton
classeur n'apparaît plus dans la barre de tâches !
C'est tout à fait normal, puisqu'on a fait disparaître le classeur (mais

il est toujours là).


Normal pour LSteph !

Déjà selon ton propos il y a un seul classeur d'ouvert avec une feuille
qui sert exclusivement à afficher l'une des deux autres et dont tu
souhaitais te débarrasser.
Cela te donne a priori les moyens voulus, il te reste bien évidemment à
les adapter le cas échéant à d'autres contextes que celui posé.


Avant d'adapter, il faut que je me réadapte à la vie sur Terre ;-)

Plus accessoirement même si cette option est possible il vaut mieux à
mon humble avis ne faire apparaître que les fenêtres d'application dans
la barre des tâches ainsi, selon l'usage normalement dévolu à cet barre
pouvoir basculer d'une application à l'autre sans confusions et avec à
disposition une barre un peu moins chargée.


A part des fenêtres d'application, que pourrait-on afficher dans cette
barre ?? De quelle option parles-tu ?? Tu me laisses (??) entendre que
j'utiliserais cette barre à d'autres fins !?

Le menu Fenêtre conserve son
utilité pour basculer d'un classeur à l'autre dans l'application, je
trouve cela plus clair ainsi. Tu noteras que dans ce cas ton classeur a
aussi disparu du menu Fenêtre Afficher.


Donc tu me conseilles de ne pas utiliser IsAddInn !??

- Qu'est-ce qu'un UF "non modal" ? J'ai comparé les propriétés de
ton UF

avec un UF "normal", il n'y a (apparemment) aucune différence !


La différence entre non modal et modal se résume à ce que dans le
premier cas tout en gardant l'UF affiché on peut aller dans la feuille
et dans l'autre non.



- Que faire si je ne veux pas enregistrer les modifications
apportées au

classeur ?





Il suffit de cliquer sur la croix qui ferme le userform, comme tu peux
le lire dans le code:
Private Sub UserForm_Terminate()
ThisWorkbook.Close False




Je note bien la différence, mais pour moi "ThisWorkbook.Close False"
devrait signifier "on ne ferme pas le classeur" Je ne vois pas de mot qui
ressemblerait de près ou de loin à un "Save" ...

Unload Me




Et puisqu'il ferme, à quoi bon lui dire de "décharger" le UF ? Un
classeur fermé ne garderait pas de UF, non ??

End Sub



J'espère que cela répond bien à toutes tes questions.


Merci en tout cas de l'effort que tu fais pour me rendre la chose limpide
...
Question subsidiaire : l'enregistrement "sous" est-il possible ? Sinon,
l'enregistrement à l'endroit d'où à été lancé le classeur virtuel semble
être de mise ?!

PS : le code Userform_terminate m'intrigue ... Est-ce que le mot
"terminate" indique en général que le code en question s'applique à la
fameuse "petite croix" ? Peut-on utiliser cette "extension" pour un UF
"modal" ?

@+ ???

JP

@+

lSteph



Bonjour Stéphane,

(Désolé de ne pas avoir répondu plus tôt. Je suis malade depuis 4 jours
!)

Merci pour ton classeur.
Plusieurs questions :
- Si je clique sur "Tout masquer" alors que j'ai ouvert un autre
classeur, le Menu reste apparent sur le nouveau classeur, mais ton
classeur n'apparaît plus dans la barre de tâches !
- Si je fais un double-clic gauche sur UserForm1 et que je reviens sur
la page d'accueil, le menu n'est plus apparent ! Pour qu'il
réapparaisse, je vais dans ThisWorkbook et je lance le code ... (?)
- Comment est-ce possible de masquer "toutes" les feuilles d'un
classeurs ??
- Qu'est-ce qu'un UF "non modal" ? J'ai comparé les propriétés de ton
UF avec un UF "normal", il n'y a (apparemment) aucune différence !
- Si je saisi qqch sur la Feuil1 (ie) et que je clique ensuite sur
Quitter (du menu), le classeur se ferme sans me demander si j'accepte
les modifications ! (Et je ne peux pas accéder à "Menu" / "Enregistrer
sous" etc.)
- Que faire si je ne veux pas enregistrer les modifications apportées
au classeur ?
- Que veut dire "IsAddIn" (quel est le principe) ?

L'idée me plaît, mais j'ai besoin d'en savoir un peu plus avant de le
mettre entre les mains de mes collaborateurs ...

A bientôt ?

JP

Pas forcément
tu peux jouer avec isaddin
http://cjoint.com/?klageZqcZy



(ici UF non modal)

''''''''''''''''''''''''''''''''''
'''Thisworkbook
Private Sub Workbook_Open()
ThisWorkbook.IsAddin = True
UserForm1.Show
End Sub
'''''''''''''''''''

'''userform1 (Menu)
Private Sub CommandButton1_Click()
ThisWorkbook.IsAddin = False
Feuil1.Visible = True
Feuil2.Visible = False
End Sub

Private Sub CommandButton2_click()
ThisWorkbook.IsAddin = False
Feuil2.Visible = True
Feuil1.Visible = False
End Sub

Private Sub CommandButton3_Click()
ThisWorkbook.Close True
End Sub

Private Sub CommandButton4_Click()
ThisWorkbook.IsAddin = True
End Sub

Private Sub UserForm_Terminate()
ThisWorkbook.Close False
Unload Me
End Sub
'''''''''''''''''''''''''''''''''''''


Cordialement.

lSteph

Bonjour,

Question pas vraiment technique ...

J'ai un classeur de 3 feuilles. Les macros s'appliquent aux 2
premières.
A l'état "normal", elles sont "hidden".
La 3ème feuille sert uniquement à lancer 2 macros ...

Question : Est-il judicieux d'utiliser une feuille pour n'afficher
que 2 boutons ?
Pour faire moins "vide" j'ai 2 Gifs qui actionnent les macros, et
j'ai inclu un ScrollArea dans le code pour que l'utilisateur ne se
perde pas dans cet espace quasi désert ...

Qu'utiliseriez-vous un "pb" similaire ? J'ai bien pensé à un UF, mais
il faut bien le lancer (ça, à la rigueur, je vois ...) mais il
apparaitra bien sur une Feuille ?!!

Merci d'avance pour vos lumières ...

Cordialement,

JP