[RESOLU] Variable hors context

Enerjp

XLDnaute Junior
Bonjour tout le monde,

Alors voila, j'ai une macro "constantes" dans un module qui va me fixer 3 chemins de fichiers et 3 nom de fichiers
Code:
Public Chemin$, NomFich$, CheminHist$, NomFichHist$, CheminFact$, NomFichFact$

Sub constantes()

'fixe le nom et chemin des classeur
Chemin = ThisWorkbook.Path & "\"
NomFich = ThisWorkbook.Name

CheminHist = Chemin
NomFichHist = "Paiement des factures pour test1.xlsm"
    
CheminFact = Chemin

End Sub

toues déclaré string dans un seul module. Mon fichier principal ouvre les deux autres à son ouverture (thisworkbook/open).

Mon problème est que dans Thisworkbook en faisant l’exécution pas à pas avec la fenêtre espion (et les 6 variables ci dessus) je vous que juste une (NomFichHist) n'est pas dans le même contexte que les autres et devient hors context dès qu'elle à ouvert les classeur...

les nom est correcte puisque le classeur principal trouve et ouvre les classeurs, seulement pour la suite dès que la variable (NomFichHist) apparais j'ai erreur d'éxecution 9 : l'indice n'appartiens pas à la selection.

j'ai essayé de changer ma marco "constantes de places", de redéclarer les variables, de changer leur type bref je ne sais plus... merci pour votre aide.
 
Dernière édition:

Enerjp

XLDnaute Junior
Re : Variable hors context

Bonjour Roland,
Merci pour l'info j'avais déjà rencontré le problème.
Pour mon problème je l'ai résolu en sortant toutes les lignes de codes contenant des variables du Thisworkbook et en les mettant dans une procédure à part dans un module.
J'appelle donc ces procédures des modules depuis thisworkbook (Call "procédure") et je n'ai plus de problème avec les variables (déclaré avec Public une seule fois dans un seul module).
Merci quand mêm pour le tuyau! bonne journée.
 

Enerjp

XLDnaute Junior
Re : Variable hors context

Par dans le thisworkbook. J'avais :
VB:
Private Sub Workbook_Open()

Dim DerniereDate$, NouveauNumFact$
Dim ListeFacture
Dim Annul%, paye%, impaye%, ouverte%, i%, compteur%
Dim ArgentManque@, ArgentEu@, ArgentAttente@, ArgentAnnul@, ArgentTOT@


With Application
    .DisplayAlerts = False
    .ScreenUpdating = False
End With

Call constantes

'ouvre l'archivage
    Workbooks.Open Filename:=CheminHist & NomFichHist

'compteur
    Workbooks(NomFichHist).Sheets("Archivage").Range("A1:h1").Select
    Range(Selection, Selection.End(xlDown)).Select

  [/highlight ] 

avec "constantes" ma procédure fixant les variables. En lançant ce code il m'ouvre correctement le classeur mais la variable "NomFichHist ce vidait juste après. J'ai donc rassembler ces ligne dans une procédure "debut" que j'ai mise dans un module et là ça marche... Mais pourquoi, mystère!^^.

 [code=vb]
Private Sub Workbook_Open()

Dim DerniereDate$, NouveauNumFact$
Dim ListeFacture
Dim Annul%, paye%, impaye%, ouverte%, i%, compteur%
Dim ArgentManque@, ArgentEu@, ArgentAttente@, ArgentAnnul@, ArgentTOT@


With Application
    .DisplayAlerts = False
    .ScreenUpdating = False
End With

Call constantes

Call debut

  [/highlight ]
 

Statistiques des forums

Discussions
312 500
Messages
2 089 013
Membres
104 004
dernier inscrit
mista