Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Déclaration Public Const : soucis en vue

CAPRI_456

XLDnaute Occasionnel
Bonsoir le Forum,

Dans une procédure ou je dois déclarer à plusieurs reprises des chemins de répertoire où se trouvent des fichiers, je souhaiterai éliminer la répétition de ces données dans de multiples modules....

Pour ce faire, j'ai tenté de regrouper les "constantes" dans un module standard nommé "Module_Public_Const"

cela prend la forme suivante:


etc.. avec d'autres Chemins ...

Eh bien voilà...... j'ai un msg d'erreur

Erreur de compilation - "constante requise " et mise en surbrillance de Year, puis, Month, etc....

D'où vient ?



Je vous remercie pour votre aide

CAPRI_456
 

Habitude

XLDnaute Accro
Re : Déclaration Public Const : soucis en vue

les fontions
Year
Month
Day

Retournent des Integer et non des DATE

Essaie

Public Const Annee As Integer = Year(Now)
Public Const Mois As Integer = Month(Now)
Public Const Jour As Integer = Day(Now)
 

ROGER2327

XLDnaute Barbatruc
Re : Déclaration Public Const : soucis en vue

Bonsoir CAPRI_456, Habitude
Vous ne pouvez utiliser ni variables, ni fonctions définies par l'utilisateur ni fonctions Visual Basic intrinsèques (telles que Chr) dans des expressions attribuées à des constantes.
dit Monsieur Porte dans ses fichiers d'aide...
Les seules choses autorisées sont
Littéral, autre constante ou toute autre combinaison pouvant contenir tout opérateur arithmétique ou logique à l'exception de Is.
dit-il encore.

Conclusion : déclaré comme entier, date, variant, ... Public Const Annee As ... = Year(Now) ne saura que planter.​
ROGER2327
#2889
 

ChTi160

XLDnaute Barbatruc
Re : Déclaration Public Const : soucis en vue

Salut CAPRI_456
Bonsoir le Fil
Bonsoir le Forum

arff peut être une solution
dans ton Module tu Déclares un Tablo_Const par exemple
tu le dimensionnes à besoin
Exemple

Dim Tablo_Const (8,2) as variant
Public Chemin3 As String
Public Chemin4 As String

Code:
Tablo_Const(0,0)="[SIZE=2]Annee[/SIZE]":Tablo_Const(0,1) = Year(Now)
[SIZE=3]Tablo_Const(1,0)=  "[SIZE=2]Mois[/SIZE]"  :Tablo_Const(1,1) = Month(Now)
Tablo_Const(2,0) = "[SIZE=2]Jour[/SIZE]"  :Tablo_Const(2,1) = Day(Now)
Tablo_Const(3,0) = "[SIZE=2]Date[/SIZE]": Tablo_Const(3,1) = Tablo_Const(2, 1) & "-" & Tablo_Const(1, 1) & "-" & Tablo_Const(0,1)
Tablo_Const(4,0)=  "[SIZE=2]JA[/SIZE]"    :Tablo_Const(4,1) = Format(DateAdd("n", 1, today), "dd-mm-yyyy")  'renvoie today
Tablo_Const(5,0)=  "[SIZE=2]JAD[/SIZE]"  :Tablo_Const(5,1) = Format(DateAdd("n", 1, today), "dd-mm-yyyy")  'renvoie 00:01 soit 1 minute[/SIZE]
puis dans tes procédures ou dans le tableau

tu mets
par exemple
Chemin3 = "\\10.120.49.253\Serveur-XLS-PAS-ANALYSES\man-xls-du-" & Tablo_Const(5,1)
Chemin4 = "\\10.120.49.253\Serveur--XLS-ANALYSES\man-xls-du-" &
Tablo_Const(5,1)
ou
Tablo_Const(6,0)= "Chemin3" :Tablo_Const(6,1)= "\\10.120.49.253\Serveur-XLS-PAS-ANALYSES\man-xls-du-" & Tablo_Const(5,1)
Tablo_Const(7,0)= "Chemin4" :Tablo_Const(7,1)= "\\10.120.49.253\Serveur--XLS-ANALYSES\man-xls-du-" & Tablo_Const(5,1)
pas sur d'avoir compris
non Testé lol
bonne fin de Soirée
 
Dernière édition:

Bebere

XLDnaute Barbatruc
Re : Déclaration Public Const : soucis en vue

bonjour Capri,Roger,Chti,Habitude
déclare ce qui ne va pas en variable public
fait une procédure qui s'exécute à l'ouverture du classeur(thisworkbook)
exemple

Public MaDate As Date

Sub IniVar()
j = Day(Date)
m = Month(Date)
an = Year(Date)
MaDate = DateSerial(an, m, j)
'MsgBox MaDate
End Sub

dans thisworbook

Private Sub Workbook_Open()
IniVar
End Sub

à bientôt
 

ChTi160

XLDnaute Barbatruc
Re : Déclaration Public Const : soucis en vue

Salut egman
Bonsoir ROGER2327 ,Bebere

Arf sous cette forme on ne risque pas grand chose Lol

j'ai ensuite testé ,mais bon à part ,comme Bebere , récupérer une des variable dans un MsgBox

Bonne fin de Soirée
 

CAPRI_456

XLDnaute Occasionnel
Re : Déclaration Public Const : soucis en vue

Bonsoir le Forum, Roger,Chti,Habitude,Bebere,

6 réponses.....si vite, suis dépassé ... hihi.
j'examine vos propositions et reviens à vous.

CAPRI_456
 

CAPRI_456

XLDnaute Occasionnel
Re : Déclaration Public Const : soucis en vue

ai teste successivement:

-prop "HABITUDE" : même avec Integer = bug identique.
cela semblerait interdit comme l'explique "ROGER 2327"

-prop "CHTI 160" : Message d'erreur =
"instruction incorrecte à l'extérieur d'une procédure pour
"année", .....;

-prop "Bebere" : je ne vois pas comment continuer avec mes chemins 3 , 4 après avoir initialisé les variables.

J'y repenserai demain...
Car il se fait tard

Merci
Bonne nuit

CAPRI_456
 

ChTi160

XLDnaute Barbatruc
Re : Déclaration Public Const : soucis en vue

Salut egman
bonjour le fil
Bonjour le Forum

Voila ce que j'ai testé dans un module
Code:
Option Explicit

Public Tablo_Const(8, 2) As Variant
Public Chemin3 As String
Public Chemin4 As String


Sub test()

Tablo_Const(0, 0) = "Annee": Tablo_Const(0, 1) = Year(Now)
Tablo_Const(1, 0) = "Mois": Tablo_Const(1, 1) = Month(Now)
Tablo_Const(2, 0) = "Jour": Tablo_Const(2, 1) = Day(Now)
Tablo_Const(3, 0) = "Date": Tablo_Const(3, 1) = Tablo_Const(2, 1) & "-" & Tablo_Const(1, 1) & "-" & Tablo_Const(0, 1)
Tablo_Const(4, 0) = "JA": Tablo_Const(4, 1) = Format(DateAdd("n", 1, Date), "dd-mm-yyyy")   'renvoie today
Tablo_Const(5, 0) = "JAD": Tablo_Const(5, 1) = Format(DateAdd("n", 1, Date), "dd-mm-yyyy")
Tablo_Const(6, 0) = "Chemin3": Tablo_Const(6, 1) = "\\10.120.49.253\Serveur-XLS-PAS-ANALYSES\man-xls-du-" & Tablo_Const(5, 1)
Tablo_Const(7, 0) = "Chemin4": Tablo_Const(7, 1) = "\\10.120.49.253\Serveur--XLS-ANALYSES\man-xls-du-" & Tablo_Const(5, 1)

MsgBox Tablo_Const(7, 1)

End Sub
à voir ensuite pour adapter
Bonne journée
 

CAPRI_456

XLDnaute Occasionnel
Re : Déclaration Public Const : soucis en vue

Bonjour le Fil ,
Chti,

Génial, ce tableau m'éclaircit vraiment l'horizon et donne de l'air à mes modules où je déclarait systématiquement les chemns de repertoires avec des fonctions dates ou des variables à incorporer dans la définition du Chemin?

Merci beaucoup à Chti et au Forum pour ces précisions et cette rapidité.

CAPRI_456
 

CAPRI_456

XLDnaute Occasionnel
Re : Déclaration Public Const : soucis en vue

et voilà déjà de retour.. ,

Puis je aussi ajouter ce qui suit et qui tient au Chemin ainsi déclaré comme constante dans ce module qui sert aux autres modules aussi ?

'If Dir(Chemin4, vbDirectory + vbHidden) = "" Then MkDir (Chemin4)
'si le dossier n'existe pas, le créer

S'agit-il là aussi de quelque chose que l'on puisse intégrer en tant que constante.?

Merci le Fil

CAPRI_456
 

CAPRI_456

XLDnaute Occasionnel
Re : Déclaration Public Const : soucis en vue

A nouveau,

A mon avai me suis laissé éblouir... ai cru que cela fonctionnait, or dans le module testté, mon Chemin était toujours déclaré à l'ancienne comme variable.. et donc il fonctionnait.

la question est donc:

Merci CAPRI_456
 

ChTi160

XLDnaute Barbatruc
Re : Déclaration Public Const : soucis en vue

Salut CAPRI_456
Bonsoir le Fil
Bonsoir le Forum


arff je ne comprends pas tout lol

pour ce qui est de ta demande (si j'ai compris bien sûr)
Si Chemin4 se trouve dans
Code:
Tablo_Const(7, 0) = "Chemin4":[I][B] Tablo_Const(7, 1)[/B][/I] = _
 "\\10.120.49.253\Serveur--XLS-ANALYSES\man-xls-du-" & Tablo_Const(5, 1)
Code:
If Dir(" &[I][B] Tablo_Const(7, 1)[/B][/I] & _
 ", vbDirectory + vbHidden) = "" Then MkDir [I][B]Tablo_Const(7, 1)[/B][/I]
'si le dossier n'existe pas, le créer
arff pas sur d'avoir compris
Lol
mais tu vas nous éclairer
Bonne fin de Soirée
 
Dernière édition:

CAPRI_456

XLDnaute Occasionnel
Re : Déclaration Public Const : soucis en vue

Bonsoir le Forum, Chti,

Au fait je ne vois pas comment écrire le code dans mon module en y intégrant les constantes déclarées dans le "Tablo".

Le but étant d'éliminer un max de code pour définir ces chemins (pas seulement dans ce module , mais dans une série de module) je ne vois pas.

voici à titre d'exemple mon module qui va utiliser les constantes
- en brun, celles que je ne devrai plus utiliser , donc gain de place

Comment donc faire références valablement à mes chemins dans le code (ici en bleu). Dois je conserver le mot Chemin.... et le déclarer Dim dans le code ou le remplacer par Tablo_const (...,....)partout...


Finalement, je me demande si je gagne beaucoup à avoir des lignes de code avec des chiffres Tablo_const (9,1) qui tout compte fait sont moins visibles que Chemin00


Merci pour votre aide
CAPRI_456
 

Discussions similaires

Réponses
2
Affichages
362
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…