Rapport de message :*
 

Re: Supprimer UserForm

Titre du sujet : Re: Supprimer UserForm
par Guy le 16/03/2010 19:45:18

Bonjour beatbles,

J'ai téléchargé ton classeur SuppUser.xls.

Le code ne compile pas, en effet l'instruction :

Unload.UserForm2
 
ne correspond à aucune méthode.

La chose aurait dû s'écrire
Unload UserForm2
Aussi la fonction SuppriUser() est introuvable. Le classeur est-il complet?


Tu cherches à scier la branche sur laquelle tu (m'enfin ton code) es assis avec
   ...
    If comp.Type < 4 Then
          .VBComponents.Remove (comp)
    End If
  Next comp
 
Humm... Et si tu modifiais la méthode utilisée au lieu de chercher à effacer du code qui s'exécute?
Bref tu cherches à descendre en marche, toujours risqué même pour un pro du volant fut-il Schumacher.

Clarifier les actions à prendre en fonction des comportements désirés serait aussi indiqué.
Dit autrement : «Think first, code later»
Ou plus spécifiquement :
Citation :
And I would strongly second Joe's opinion that if you're a newbie at VBA and especially if you're a newbie at programming altogether, I'd get quite a bit more coding under my belt before I'd start messing around with programmatically deleting code from projects. Very easy to make a mell of a hess.
au http://www.mrexcel.com/forum/showthread.php?t=115438

D'où as-tu copié ces bouts de code, histoire d'y voir plus clair? *

Aussi zieuter la section Deleting All VBA Code In A Project du site de Chip Pearson.

Cordialement,

Guy
____
* Le comp.Type est une énumération
Enum vbext_ComponentType

  vbext_ct_StdModule = 1
  vbext_ct_ClassModule =2
  vbext_ct_MSForm = 3
  vbext_ct_ActiveXDesigner = 11
  vbext_ct_Document = 100

End Enum

If comp.Type < 4 Then
  cherche à permettre de ne supprimer que les modules standars, les formulaires et les modules de classe.
  La constante littérale 4 placé dans le code indique la frontière de partage des types de modules à supprimer.
  Et une telle constante ne se devine pas.