Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Public Const pas activé

3 réponses
Avatar
MD
J'ai dans un fichier une macro Auto_Open sub
Dim VBComp As VBComponent
Set VBComp = ThisWorkbook.VBProject.VBComponents("Public")
ThisWorkbook.VBProject.VBComponents.Remove VBComp
Dim FName As String
FName = "c:\mam97\code.txt"
ThisWorkbook.VBProject.VBComponents.Import FName
End Sub

Le contenu du fichier text est:

Attribute VB_Name = "Public"
Public Const Drive = "c:"

Quand la macro du fichier roule, elle importe le texte du fichier text mais
la variable Public Const (DRIVE) n'est pas activée et ne contient pas la
valeur de "c:"

des idées????

Michel

3 réponses

Avatar
Denis Michon
Bonjour MD,


2 observations :

********** A***************
Le mot "Public" est un mot réservé par le code de programmation réservé au langage VBA.
Tu dois éviter d'utiliser ces mots réservés à un autre usage que celui qui leur est dédié.

En passant, tu me dire quelle composante porte le nom de "Public" ... Je suis curieux ;-)

***********B****************

FName = "c:mam97code.txt"

Le nom de ton fichier à importer doit avoir l'extension .bas et non .txt.
Si tu modifies l'extension, tu règlera ton problème.


Attribute VB_Name = "VarPublic"
Public Const Drive = "c:"

Le résultat après l'exportation :

à mon projet , il y avait un nouveau module Nommée : VarPublic
et dans ce module , en première ligne : Public Const Drive = "c:"

**********************************


Salutations!



"MD" a écrit dans le message de news:kJklb.48292$
J'ai dans un fichier une macro Auto_Open sub
Dim VBComp As VBComponent
Set VBComp = ThisWorkbook.VBProject.VBComponents("Public")
ThisWorkbook.VBProject.VBComponents.Remove VBComp
Dim FName As String
FName = "c:mam97code.txt"
ThisWorkbook.VBProject.VBComponents.Import FName
End Sub

Le contenu du fichier text est:

Attribute VB_Name = "Public"
Public Const Drive = "c:"

Quand la macro du fichier roule, elle importe le texte du fichier text mais
la variable Public Const (DRIVE) n'est pas activée et ne contient pas la
valeur de "c:"

des idées????

Michel
Avatar
Frédéric Sigonneau
Bonsoir Denis,


Le nom de ton fichier à importer doit avoir l'extension .bas et non .txt.
Si tu modifies l'extension, tu règlera ton problème.


L'extension .bas n'a rien d'obligatoire...
N'importe quelle extension fait l'affaire (même .denis si tu veux) du moment que
le fichier est un fichier texte. Point final :)
Même l'en-tête, généré lors d'une exportation
Attribute VB_Name = "NomDuModule"
n'est pas obligatoire. Il ne sert qu'à donner un nom au module, et s'il est
absent Excel donne au module un nom par défaut du type Modulex...

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !

Avatar
Denis Michon
Bonsoir Frédéric,

" N'importe quelle extension fait l'affaire (même .denis si tu veux) du moment que le fichier est un fichier texte."

Je dirais plus, je dirais même, que même sans extension, cela fonctionne. Comme j'ai l'habitude de travailler avec les
extensions des fichiers affichés dans l'explorateur, je t'avoue franchement que ces extensions sont un bon repère pour
moi pour les distinguer !


" Même l'en-tête, généré lors d'une exportation Attribute VB_Name = "NomDuModule" n'est pas obligatoire. "

Sauf si, dans le Classeur du Monsieur, il a d'autres procédures qui utilisent une référence à ce module (ayant ce nom)
et à ses procédures .

Sur le fond, je suis d'accord avec toi .

;-)


Salutations!








"Frédéric Sigonneau" a écrit dans le message de news:
Bonsoir Denis,


Le nom de ton fichier à importer doit avoir l'extension .bas et non .txt.
Si tu modifies l'extension, tu règlera ton problème.


L'extension .bas n'a rien d'obligatoire...
N'importe quelle extension fait l'affaire (même .denis si tu veux) du moment que
le fichier est un fichier texte. Point final :)
Même l'en-tête, généré lors d'une exportation
Attribute VB_Name = "NomDuModule"
n'est pas obligatoire. Il ne sert qu'à donner un nom au module, et s'il est
absent Excel donne au module un nom par défaut du type Modulex...

FS
--
Frédéric Sigonneau [MVP Excel - né un sans-culottide]
Gestions de temps, VBA pour Excel :
http://perso.wanadoo.fr/frederic.sigonneau
Si votre question sur Excel est urgente, évitez ma bal !