Erreur pr ouvrir UserForm par Bouton

Bonjour Tous le Monde,

Dans l'onglet Formulaire, que ce Forum m’ont aidé à faire, j'ai crée un Bouton pour ouvrir le UserForm Print_Rapport.

Quand je clic, j'ai un message d'erreur:

soit: impossible de définir la propriété hidden de la classe range

ou: incompatibilité de type.

Mais quand je clic sur le bouton Print_Rapport de l'onglet Rapport, ça fonctionne.

Noter, que tous les onglets et VBasic sont protéger par mot de passe: 123

Y a t'il une solution pour que ça fonctionne.

Je joins mon fichier.

Merci

Jean.

41test-v4.xlsm (428.33 Ko)

bonsoir

pour commencer :

quand vous lancer :

Sub Print_Rapport()
'Imprime le Rapport'
UserForm_Rapport.Show
ActiveWorkbook.Save  'Sauvegarde'
End Sub

a partir de la feuille "Formulaire" vous aurez

Private Sub UserForm_initialize()
Cells.EntireRow.Hidden = False 'ceci pour la feuille "Formulaire"
derLn = Range("A" & Rows.Count).End(xlUp).Row 'ceci pour la feuille "Formulaire"
Set dico = CreateObject("Scripting.Dictionary")
For ln = 2 To derLn
dico(CStr(Range("A" & ln))) = "" 'ceci pour la feuille "Formulaire"
'alors si ton code fonctionne bien il va envoyer une ComboBox vide
Next ln

ComboBox_Date.List = Application.Transpose(dico.keys) '
End Sub

Bonsoir AMIR,

Merci de prendre le temps pour ma solution.

Pour l'instant, je ne comprend pas votre explication.

J'ai essayé de remplacé le code par le vôtre, mais ça ne

fonctionne toujours pas.

Pouvez-vous m'éclairer S.V.P.

Merci

Jean.

Bonjour,

Les appels se rendent à UserForm_Rapport, lequel démarre UserForm_initialize.

Au début du code, tu ne mentionnes pas sur quelle feuille tu veux appliquer le code...

Gelinotte

Bonsoir Gelinotte,

Maintenant je comprends un peu plus, mais je ne sais pas comment faire pour

mentionner le nom de la feuille Formulaire au code.

J'ai besoin d'aide sur ce point S.V.P.

Merci

Jean

Bonjour,

La macro UserForm_initialize de Userform_Rapport demande des actions sur une feuille sans préciser sur laquelle travailler. Le code tente donc de travailler sur la feuille active... d'où l'erreur si l'appel était fait de la feuille Formulaire.

Ça fonctionnait sur la feuille Rapport, car, la feuille Rapport avait déjà été décachée et était active.

Pour que ça fonctionne à partir du bouton de la feuille Formulaire, il faut faire deux actions préalables.

L'une étant de décacher la feuille Rapport (nécessite un mot de passe) et l'autre de rende cette feuille Rapport Active.

Il serait possible de faire exécuter UserForm_initialize de Userform_Rapport sans sélectionner la feuille Rapport. Mais là, il faudrait modifier plus avant le code. Pour l'instant, tenons-nous à quelques changements mineurs.

Autre chose, les 2 boutons "Print Rapport" (chacun sur une feuille) menaient tous deux à la macro Print_Rapport du module Module_Print_Rapport. J'ai donc créé la macro "Print Rapport2" (copie d'origine) aussi dans Module_Print_Rapport, afin de modifier "Print Rapport" pour décacher la feuille Rapport et de la rendre active avant de poursuivre sur l'appel de Userform_Rapport.

Gelinotte

47test-v5.xlsm (422.22 Ko)

Bonjour Gelinotte,

C'est plus compliqué que je pensais. Sans votre aide, je n'y serais jamais arrivé.

Un TRÈS GROS MERCI, d'avoir pris le temps de corriger mon fichier.

J'apprécie vraiment.

Jean.

Bonjour,

Tiens Toé Kolisse ...

Je me suis amusé à apporter quelques modifications ... les pensant utiles.

J'ai ajouté une validation de 3 essais du mot de passe pour accéder à la feuille Rapport. (code prit sur le Net et modifié)

À partir de la feuille Formulaire, le bouton "Print Rapport" fonctionne sans décacher (sauf une fraction de seconde) la feuille Rapport.

Espérant que ce sera utile

Gelinotte

56test-v6.xlsm (430.91 Ko)

Bonjour Gélinotte,

Je dois dire que j'aime bien cette version, car elle va empêcher d'oublier de protéger l'onglet Rapport après l'impression.

Encore une fois, MERCI.

Jean

Rechercher des sujets similaires à "erreur ouvrir userform bouton"