Option d'affichage de UserForm
#1
Régulier XLPages

Inscription: 24/12/2007

Messages: 59

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 11-01-2008 22h40
Bonjour,
Mon UserForm s'affiche automatiquement quand le format de la cellule est "##.00" c'est un format perso pour limité l'affichage de l'UserForm. Cette fonction est rentrer dans chaque feuille;
Private Sub Worksheet_SelectionChange(ByVal Target As Range)



Question:
1°) Est-ce une bonne idée ? Pourrai t-on éviter de mettre un code sur chaque feuille (en le changeant) ?

2°) Peut - on faire comme dans MDF_Calendar un bouton pour selectionner ou non l'affichage automatique ?

Merci pour vos réponses. A+
Edité par PowerPlus le 15/01/2008 16:25:32

Venez sur mon nouvau site: http://www.power-plus-technologie.fr.tc/
Hors Ligne
Rapport   Haut 

Re: Option d'affichage de UserForm
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 11-01-2008 23h19
Bonjour PowerPlus

Et comme d'habitude... tu serais bien inspiré de joindre un exemple simple en pièce jointe de ce que tu cherches à faire, ce qui éviterait à celui qui te répond de monter un cas entier en fonction de ce qu'il a compris du problème...

Merci de ta compréhension.

Le cas échéant, je pense que la piste que tu dois suivre est l'évènement :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As ObjectByVal Target As Range)
dans le module de code de l'objet ThisWorkbook.


Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Option d'affichage de UserForm
#3
Régulier XLPages

Inscription: 24/12/2007

Messages: 59

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 11-01-2008 23h26
En fait c'est éxactement le même que sur ce post


Eddition: Je met dès maintenant, le mardi 15 janvier 2008, le fichier en pièce jointe.
Pièce jointe:
xls Classeur1.xls   [ Taille: 35.50 Ko - Téléchargements: 627 ]
Edité par PowerPlus le 15/01/2008 16:45:37

Venez sur mon nouvau site: http://www.power-plus-technologie.fr.tc/
Hors Ligne
Rapport   Haut 

Re: Option d'affichage de UserForm
#4
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 11-01-2008 23h52
Re,

Citation :

PowerPlus a écrit:
En fait c'est éxactement le même que sur ce post

Mais aller voir ce post. Prenez votre temps (je ne dis pas ça pour vous pressez mais je n'est pas encore eu de réponse de votre part)


Pas de problème PowerPlus.

Concernant ton autre fil, je laisse JCGL continuer la discussion s'il le veut bien puisque c'est lui qui a commencer le sujet...

Pour ma part, je précise qu'à peine 3 heures avant que tu crées ce sujet sous menu contextuel, je vous disais dans un autre fil : "Il est clair que je n'aborderais sans doute pas le sujet des CommandBars dans cet espace" débutants...

Par ailleurs, je t'informe qu'un autre membre souhaite t'apporter son aide dans ce fil de discussion et attend ton retour je pense.

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Option d'affichage de UserForm
#5
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 12-01-2008 00h14
Re,

Par ailleurs, concernant le point :
Citation :

PowerPlus a écrit:
En fait c'est éxactement le même que sur ce post

Non PowerPlus, désolé, ne le prends pas mal, mais ça c'est justement le contraire de ce que j'appelle un exemple simple et épuré à l'essentiel du problème...

Moi je veux bien essayer d'expliquer les choses clairement lorsque je fais une réponse, mais il me parait naturel que le demandeur fasse également un effort dans ce sens...
De plus, je rappelle que l'objectif d'un forum est avant tout de partager et mettre à disposition des questions-réponses qui pourront servir à de futurs visiteurs... la clarté et la précision me semblent donc indispensables.

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Option d'affichage de UserForm
#6
Régulier XLPages

Inscription: 24/12/2007

Messages: 59

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 12-01-2008 13h45
Bonjour,
Désoler pour ces quelques maladresse au niveau du forum. J'ai répondu à Guy, désoler je l'avais un peu oublier :tied: . Je remercie son aide, mais j'avais déjà une réponse qui me convenai.

Pour l'exemple simple et épuré le voici (fichier joint).

Eddition: Je met dès maintenant, le mardi 15 janvier 2008, le fichier en pièce jointe.
Pièce jointe:
xls Classeur1.xls   [ Taille: 35.50 Ko - Téléchargements: 599 ]
Edité par PowerPlus le 15/01/2008 16:47:03

Venez sur mon nouvau site: http://www.power-plus-technologie.fr.tc/
Hors Ligne
Rapport   Haut 

Re: Option d'affichage de UserForm
#7
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 12-01-2008 23h33
Bonsoir PowerPlus,

Comme je le précise un peu partout ici, pour pouvoir être joint, un fichier doit faire 80 ko maximum (c'est déjà plus que la plupart des forums !).
Ton fichier zippé fait 106 Ko, il est donc normal qu'il soit refusé ici.

Pour info, il y a 5 feuilles masquées dans ton classeur : quand je parle d'exemple épuré, je ne parle pas d'éléments masqués mais bien de suppression de tout ce qui n'est pas utile à la compréhension du problème... Si tu l'avais fait, ton fichier zippé ferait environ 52 ko ! Et si tu avais fait l'effort de reconstituer un exemple simple (comme tu l'avais fait avec ton classeur1.xls ici), il pèserait encore moins et moi je perdrais moins de temps à rappeler ça pour la Xième fois...
Que ce soit ici ou ailleurs, sauf cas justifié, j'ai pour habitude de ne jamais répondre aux posts dont les fichiers sont joints autrement que par le forum... Comme tu l'héberges depuis ton propre espace Web et que tu ne peux pas tout savoir, on va dire que j'ai fait exception cette fois-ci... mais sache que ça restera une exception...

Concernant tes questions cette fois :
Citation :
PowerPlus a dit :
Mon UserForms'affiche automatiquement quand le format de la cellule est "##.00" c'est un format perso pour limité l'affichage de l'UserForm. Cette fonction est rentrer dans chaque feuille;
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Est-ce une bonne idée ? Pourrai t-on éviter de mettre un code sur chaque feuille (en le changeant) ?

Oui, l'idée est intéressante et peut être mise en oeuvre assez facilement.
Pour éviter de mettre le même code sur chaque feuille, tu peux placer le code ci-dessous dans le module de code de l'objet ThisWorkbook :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As ObjectByVal Target As Range)
    If 
Target.NumberFormat "##.00" Then
        
'Ton code ici...
        '
        '
    End If
End Sub

... sans oublier de supprimer les procédures Private Sub Worksheet_SelectionChange() correspondante de chaque feuille.

Citation :
PowerPlus a dit :
Peut - on faire comme dans MDF_Calendar un bouton pour selectionner ou non l'affichage automatique ?

Oui, tu peux le faire avec un CheckBox (case à cocher) par exemple (je crois que c'est ce que tu as fait d'ailleurs dans ton USF).
Il te faut par contre stocker la valeur du CheckBox (True ou False) dans une cellule (cachée) de ton classeur pour pouvoir en mémoriser l'état pour une utilisation ultérieure.
C'est très simple, à l'ouverture de ton USF (dans l'évènement Initialize() du module de code du Userform) tu mets quelque chose comme :
CheckBox1.Value Sheets("Feuil1").Range("A1").value
puis, pour stocker la nouvelle valeur en cas de modification, tu mets dans ce même module de code :
Private Sub CheckBox1_Click()
    
Sheets("Feuil1").Range("A1").Value CheckBox1.Value
End Sub

Ensuite, dans le Private Sub Workbook_SheetSelectionChange() (voir ci-dessus), tu pourras mettre quelque chose comme :
Private Sub Workbook_SheetSelectionChange(ByVal Sh As ObjectByVal Target As Range)
    If 
Sheets("Feuil1").Range("A1").Value True Then
        
If Target.NumberFormat "##.00" Then
            
'Ton code ici...
            '
pour afficher le Userform
            
'
        End If
    End If
End Sub


Pour info, dans ton classeur, le code plante à l'ouverture car la feuille "Code" n'existe pas ou plus (pense à supprimer ou commenter les lignes de code qui ne sont plus requises suite à l'épuration du fichier)... en bref : pense également à tester tes fichiers avant de les poster STP. (oui ,je sais ça fait beaucoup à penser, mais ça ne demande que quelques efforts de logique)

Par ailleurs, dernière chose importante :
J'ai édité mon post du 03/01/08 à 16h11 dans CE FIL, lis-le (voir Edtion n°2). Je t'avais dit une ânerie là, il faut que tu en prennes connaissance et que tu rectifies ton projet en conséquence (désolé pour cette bourde, je ne suis pas infaillible non plus).

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Option d'affichage de UserForm
#8
Régulier XLPages

Inscription: 24/12/2007

Messages: 59

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 13-01-2008 09h07
Bonjour,
je suis allé très vite corriger mon proget.

A+
Edité par PowerPlus le 15/01/2008 16:14:12

Venez sur mon nouvau site: http://www.power-plus-technologie.fr.tc/
Hors Ligne
Rapport   Haut 

Re: Option d'affichage de UserForm
#9
Régulier XLPages

Inscription: 24/12/2007

Messages: 59

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 15-01-2008 16h20
Bonjour, c'est pile ce que je voulais.

Mais sans vouloir faire de rebondissement , dans votre add-in il n'y a pas de feuille, alors comment avez-vous fais pour mettre la valeur de votre case à cocher . ?

A+

Venez sur mon nouvau site: http://www.power-plus-technologie.fr.tc/
Hors Ligne
Rapport   Haut 

Re: Option d'affichage de UserForm
#10
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 15-01-2008 19h49
Bonsoir PowerPlus, le Forum,

En fait, il y a une chose que tu ne peux pas savoir (et c'est normal si on ne te l'a jamais dit), c'est qu'une macro complémentaire est au départ un classeur comme un autre. Comme tout classeur, il possède une feuille au minimum, mais peut aussi en posséder plusieurs. Rien ne le distingue d'un classeur tout à fait classique si ce n'est qu'aucune de ces feuilles n'est visible.

Pour ton info, tu peux tenter cette expérience :
Si tu prends une copie d'un de tes classeurs : tu vas dans VBA, tu sélectionnes l'objet ThisWorkbook et tu mets sa propriété IsAddin à True. Tu retournes ensuite dans l'interface Excel et tu verras que ton classeur a disparu ! Tu fais bien évidemment la démarche inverse pour le faire réapparaitre normalement bien sûr.

Dans toutes mes xla, les paramètres utilisateurs qui doivent être stockés, le sont dans une feuille invisible pour l'utilisateur.

Toute la difficulté d'une xla consiste toutefois à créer un code VBA qui n'agit pas sur son propre classeur, mais agira sur d'autres classeurs (ceux qui sont visibles dans l'interface Excel). Mais ça, c'est une autre histoire...

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes