Fonction ne marche plus sur excel 2007

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

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

alainca31

Guest
Bonjour
J’ai un programme sur Excel 2003 qui fonctionné bien, depuis que je suis passé sous vista et office 2007 certaine fonction ne marche plus et entre autre celle la :
If modif = "fonct" Then
Set p = formulaire.MultiPage1.Pages(0)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(1)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(2)
p.Enabled = True
Set p = formulaire.MultiPage1.Pages(3)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(4)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(5)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(6)
p.Enabled = False
formulaire.MultiPage1.Value = 2
End If
J’ai à chaque fois le message suivant :
Erreur d’exécution « 13 » incompatibilité de type
Merci de votre aide
 
Re : Fonction ne marche plus sur excel 2007

Bonjour Alain,

"P" est-il bien déclaré et si oui, comment... A priori il devrait l'être ainsi :
Code:
Dim p As Page

Quelle ligne de code bogue ? Pas facile de te répondre en ne voyant qu'une petite partie de procédure....

bon après midi
@+
 
Re : Fonction ne marche plus sur excel 2007

J'ai oublié le code
Public Sub typeModif(formulaire As UserForm)
'Préparation du formulaire passé en paramètre en fonction du choix
'des RadiosButtons du UserForm1
Dim p As Page
If modif = "admin" Then
Set p = formulaire.MultiPage1.Pages(0)
p.Enabled = True
Set p = formulaire.MultiPage1.Pages(1)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(2)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(3)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(4)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(5)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(6)
p.Enabled = False
End If
If modif = "agent" Then
Set p = formulaire.MultiPage1.Pages(0)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(1)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(2)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(3)
p.Enabled = True
Set p = formulaire.MultiPage1.Pages(4)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(5)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(6)
p.Enabled = False
formulaire.MultiPage1.Value = 3
End If
If modif = "fonct" Then
Set p = formulaire.MultiPage1.Pages(0)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(1)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(2)
p.Enabled = True
Set p = formulaire.MultiPage1.Pages(3)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(4)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(5)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(6)
p.Enabled = False
formulaire.MultiPage1.Value = 2
End If
If modif = "prod" Then
Set p = formulaire.MultiPage1.Pages(0)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(1)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(2)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(3)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(4)
p.Enabled = True
Set p = formulaire.MultiPage1.Pages(5)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(6)
p.Enabled = False
formulaire.MultiPage1.Value = 4
End If
If modif = "poste" Then
Set p = formulaire.MultiPage1.Pages(0)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(1)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(2)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(3)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(4)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(5)
p.Enabled = True
Set p = formulaire.MultiPage1.Pages(6)
p.Enabled = False
formulaire.MultiPage1.Value = 5
End If
If modif = "serv" Then
Set p = formulaire.MultiPage1.Pages(0)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(1)
p.Enabled = True
Set p = formulaire.MultiPage1.Pages(2)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(3)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(4)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(5)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(6)
p.Enabled = False
formulaire.MultiPage1.Value = 1
End If
If modif = "postprod" Then
Set p = formulaire.MultiPage1.Pages(0)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(1)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(2)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(3)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(4)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(5)
p.Enabled = False
Set p = formulaire.MultiPage1.Pages(6)
p.Enabled = True
formulaire.MultiPage1.Value = 6
End If
End Sub
 
Re : Fonction ne marche plus sur excel 2007

Re,

je vois ceci dans ta procédure :
Code:
Public Sub typeModif(formulaire As UserForm)

USF, c'est l'userform.... il doit être passé en argument à ta procédure, et est représenté par la variable "formulare"... logiquement cette variable est initialisée lors du lancement de la procédure....
 
Re : Fonction ne marche plus sur excel 2007

Bonjour et merci de m'aider
Comment voit-on si USF est bien chargé en mémoire
Quand je suis dans le débogueur P m'indique " nothing"
J'ai ressayé sur Excel 2003 sur un autre poste et ca marche nickel
Cordialement
 
Re : Fonction ne marche plus sur excel 2007

Bonjour
Je suis désolé de poser des questions idiotes mais ce n'est pas moi qui ai ecrit le programme, mes connaissances en VBA existe mais sont limitées.
Le programme ne bug pas que sur Set p = formulaire.MultiPage1.Pages(0)
Mais aussi sur "Set p = UserForm1.MultiPage1.Pages(0)" du code ci dessous.

'méthode qui active que certaines pages de l'application
'en fonction des droits de l'utilisateur connecté
Public Sub typeUtil()
Dim p As Pages
If id = "util" Then
UserForm1.MultiPage1.Value = 0
' Set p = UserForm1.MultiPage1.Pages(0)
' p.Enabled = True
'Set p = UserForm1.MultiPage1.Pages(1)
'p.Enabled = False
'Set p = UserForm1.MultiPage1.Pages(2)
' p.Enabled = False
' Set p = UserForm1.MultiPage1.Pages(3)
' p.Enabled = False
' Set p = UserForm1.MultiPage1.Pages(4)
' p.Enabled = True
End If
If id = "admin" Then
UserForm1.MultiPage1.Value = 1
' Set p = UserForm1.MultiPage1.Pages(0)
'p.Enabled = True
'Set p = UserForm1.MultiPage1.Pages(1)
' p.Enabled = True
' Set p = UserForm1.MultiPage1.Pages(2)
' p.Enabled = True
' Set p = UserForm1.MultiPage1.Pages(3)
' p.Enabled = True
' Set p = UserForm1.MultiPage1.Pages(4)
'p.Enabled = True
End If
If id = "superadmin" Then
' UserForm1.MultiPage1.Value = 1
'Set p = UserForm1.MultiPage1.Pages(0)
'p.Enabled = True
'Set p = UserForm1.MultiPage1.Pages(1)
' p.Enabled = True
' Set p = UserForm1.MultiPage1.Pages(2)
' p.Enabled = True
'Set p = UserForm1.MultiPage1.Pages(3)
'p.Enabled = True
' Set p = UserForm1.MultiPage1.Pages(4)
' p.Enabled = True
End If
If id = "drh" Then
UserForm1.MultiPage1.Value = 2
' Set p = UserForm1.MultiPage1.Pages(0)
'p.Enabled = False
'Set p = UserForm1.MultiPage1.Pages(1)
' p.Enabled = False
' Set p = UserForm1.MultiPage1.Pages(2)
' p.Enabled = True
' Set p = UserForm1.MultiPage1.Pages(3)
' p.Enabled = False
' Set p = UserForm1.MultiPage1.Pages(4)
' p.Enabled = True
End If
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
422
  • Question Question
Microsoft 365 VBA sur outlook
Réponses
14
Affichages
1 K
Retour