skwick
Messages postés10Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention16 octobre 2007 11 oct. 2007 à 10:48
Dans cette macro je n'ai pas d'autre ligne de commande. Apres j'ai 3 macros, une qui se déclenche au démarrage (masque une feuille), une pour creer des pages (bouton) et une pour supprimer des pages (bouton).
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 11 oct. 2007 à 12:29
A mon avis, c'est jrivet qui te donne la bonne piste. Et comme tu réponds à côté de sa question ^^
Je crois que cette macro n'est pas enregistrée dans un module, mais dans la feuille elle-même. Quand elle s'exécute, elle supprime effectivement la feuille et donc le code qui y est attaché. Résultat, message d'erreur tout simplement parce qu'il n'y a plus de code à exécuter et que le End Sub n'a pas été rencontré.
La solution à mon sens, insérer un module, couper coller de ta macro dans ce module et déclarer la procédure en public :
skwick
Messages postés10Date d'inscriptionvendredi 27 janvier 2006StatutMembreDernière intervention16 octobre 2007 11 oct. 2007 à 13:29
L'idée était bonne mais ne semble pas être la solution à mon problème... j'ai déclaré la macro dans un module (selon moi c'était déjà le cas) public mais rien n'y change... Cela provient peu être d'un mauvais paramétrage de excel...
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 11 oct. 2007 à 23:09
Bonsoir,
Personnellement, pour moi le code fonctionne parfaitement. Tant que je ne pourrais pas récréer l'erreur, je ne pourrais pas t'aider.
A priori, je pense qu'un appelle se fait sur la page supprimée après coup... il semble qu'on a tous cette même idée... Peux-tu déposer ton fichier quelque part, pour qu'on puisse le télécharger... je pense qu'on pourra ensuite d'apporter une explication. A vrai dire, tu donnes pas assez d'information pour bien comprendre ton code...
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 12 oct. 2007 à 11:48
Petit conseil en passant...
Évite d'écrire du code comme ceci
If x = "modele" Then
Else
Écris plutôt
If x <> "modele" then
et tu enlèves le Else qui ne sert à rien.
Même chose pour le dernier Else... enlève-le. Il ne sert à rien, là non plus.
jrivet
Messages postés7392Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 12 oct. 2007 à 12:26
Salut,
En complément je dirais qu'il faut éviter les On Error Resume Next,
Sub NoMessageOndelete()
Dim x As String
Dim Retour As VbMsgBoxResult
Retour = MsgBox("Confirmation de suppression", vbOKCancel + vbQuestion + vbDefaultButton2, "suppression ligne")
If Retour = vbOK Then
x = ActiveSheet.Name
If x <> "modele" Then
Worksheets(1).Activate
Application.DisplayAlerts = False
Call ThisWorkbook.Worksheets(x).Delete
Application.DisplayAlerts = True
End If
End If
End Sub
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 14 oct. 2007 à 07:59
Bonjour,
C'est bête, mais le téléchargement est soumi à autorisation...
En plus, cette longueur de code (qui remplace une seule instruction qui noralement fonctionne) n'explique pas le problème rencontré... ce qui aurait été plus instructif de comprendre... (même si le principal c'est d'avoir trouvé une solution)...
us_30
Messages postés2065Date d'inscriptionlundi 11 avril 2005StatutMembreDernière intervention14 mars 201610 14 oct. 2007 à 08:13
Encore moi...
A la réflexion, je me demande si le réglage du niveau de sécurité ne serait-il pas le responsable...
Enfin, quoi qu'il en soit, le code (ou les codes), peuvent se résumer ainsi :
Sub Delete_Sheet()
On Error Resume Next
Application.DisplayAlerts = False
ActiveSheet.Delete
Application.DisplayAlerts = True
End Sub
puisse qu'il semble que c'est la désactivation des messages d'erreurs (Application.displayalerts) qui semble être le blocage.
ON ERROR RESUME NEXT, est utile ! lorsqu'on reste qu'une Feuille à supprimer... ce qui n'est pas admis par excel... puisque l'existence d'un fichier Excel doit possèder au moins une Feuille...