Fonction ne marche plus sur excel 2007

alainca31

XLDnaute Nouveau
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
 

Pierrot93

XLDnaute Barbatruc
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
@+
 

alainca31

XLDnaute Nouveau
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
 

Pierrot93

XLDnaute Barbatruc
Re : Fonction ne marche plus sur excel 2007

Re,

tu ne dis pas quelle ligne bogue....

tu pourrais également faire ceci :

Code:
formulaire.MultiPage1.Pages(0).Enabled = True

ton USF est bien chargé en mémoire lorsque tu exécutes ce code ?
 

Pierrot93

XLDnaute Barbatruc
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....
 

alainca31

XLDnaute Nouveau
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
 

alainca31

XLDnaute Nouveau
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
 

Discussions similaires

Statistiques des forums

Discussions
312 229
Messages
2 086 426
Membres
103 206
dernier inscrit
diambote