Problème avec import fichier CLS

Bonjour

Lorsque je fait l'import du fichier, celui-ci le crée dans un module de classe sous le nom ThisWorkbook1.

Et dans ThisWorkbook il n'y-a rien.

Les autres: modules et Userform ne me pausent pas de problème.

Aurai-je oublié une subtilité!

Bonsoir,

Un fichier .cls correspondant à un module de classe, il est normal qu'il soit importé comme tel. Il doit être cependant utilisé dans les autres modules ou Userform. Il faut donc renommer ThisWorkbook1 avec le nom employé dans ces derniers.

bonjour

je n'ai pas très bien compris; aussi je vous joint la liste de mes fichiers à importer et la procédure utilisée.

Il s'agit du résultat après exécution.

https://www.cjoint.com/c/FGwhyaOE6BV

PS. j'ai mis une instruction

on error

car, sans celle-ci des erreurs surviennent pour les fichiers frx.

D'après ce que vous avez communiqué, il suffit de déplacer le code contenu dans ThisWorkbook1 dans ThisWorkbook et de supprimer ThisWorkbook1.

oui, cela je sais le faire, mais cette modif doit être faite par l'utilisateur; lequel ne connait pas VBA et ne peut effectuer cette opération.

Surtout à distance (ici avec OneDrive).

Pour le module .cls correspondant à ThisWorkbook, essayer cette instruction

ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule.AddFromFile (NomMod)

Effectivement ThisWorkbook se met bien à jour; mais il y-a ces 4 lignes au début qui risquent de gêner le programme!

VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
End

Private Sub Workbook_Open()
            repertoire_photos
                 'rep = Application.ActiveWorkbook.Path
            rep = InputBox("Répertoire des photos", _
                 "par défaut", rep)
          Set Feuil = ActiveWorkbook.Worksheets("Feuil1")
      Set fourniture = ActiveWorkbook.Worksheets("Fournitures")
          Set Objets = ActiveWorkbook.Worksheets("Objets")
          Set ocolor = ActiveWorkbook.Worksheets("Couleurs")
        Set Magasins = ActiveWorkbook.Worksheets("Magasins")
         Set matprem = ActiveWorkbook.Worksheets("Mat.prem")
'rep = "C:\Users\Papy-bell\Documents\Excel"
        Charger_photos
End Sub
ActiveWorkbook.VBProject.VBComponents("ThisWorkbook").CodeModule.DeleteLines 1, 4

Impécable!

Merci, cela fonctionne très bien.

Je ne connaissais pas cette possibilité.

Je vais pouvoir envoyer un fichier à l'utilisateur.

Lequel exécutera mon programme de mises à jour des différentes macros sans toucher à ses données.

PS. quel extension faut-il mettre (xlsm ou xlam)?

Si la procédure d'importation est répétitive, en .xlam Dans ce cas, soit intégrer le fichier comme macro complémentaire, soit le placer dans le dossier de démarrage d'Excel (options avancées)

Rechercher des sujets similaires à "probleme import fichier cls"