Chemin d'enregistrement fait avec des variables

barbu26

XLDnaute Nouveau
Bonjour à tout le monde,

Voila j'ai un petit soucis. Grâce à une macro, je génère un fichier Excel que j'enregistre ensuite. Pour l'enregistrement, j'ai décidé de le couper en petit bout de variable.

Première variable, il s'agit du chemin (par exemple : D:\DONNEES)

Pour cela, je déclare une variable public dans une autre userform et je lui attribue la valeur d'une cellule

Public cheminExcel as string


cheminExcel = Sheets(5).Cells(1, 1).Value


Ensuite le nom du fichier dépend de la valeur d'une autre cellule

fichier = cheminExcel & Sheets(1).[A1].Value & ".xls"


Enfin j'enregistre mon fichier avec :

ActiveWorkbook.SaveAs Filename:=fichier


J'ai essayé de tourner mes variables dans tout les sens (avec des .value, . text ...) rajouter des " " et des & mais la je cale vraiment. Pouvez vous m'aidez svp et surtout m'expliquer comment faire pour que je comprennes une bonne fois pour toute ^^

Merci par avance :D
 

Pierrot93

XLDnaute Barbatruc
Re : Chemin d'enregistrement fait avec des variables

Bonjour,

heu perso, en l'état pas tout compris...
Pour cela, je déclare une variable public dans une autre userform et je lui attribue la valeur d'une cellule

il faut bien sur que l'usf en question soit toujours chargé en mémoire lors de l'enregistrement....

bon après midi
@+
 

Efgé

XLDnaute Barbatruc
Re : Chemin d'enregistrement fait avec des variables

Bonjour barbu26
Trois idées:
1 - Il manque un \ dans ton fichier
fichier = cheminExcel & "\" & Sheets(1).[A1].Value & ".xls"
2 - Met ta variable public dans un module standart.
3- Si ton premier UserForm n'est pas utilisé tu risque de ne pas valoriser ta variable
Cordialement

EDIT Salut Pierrot :)
 

barbu26

XLDnaute Nouveau
Re : Chemin d'enregistrement fait avec des variables

Merci pour vos réponses

Pour Pierrot93

Comment je peut faire pour que ma variable soit toujours chargé? J'ai trouvé une solution de dépannage, je la stocke caché dans un classeur mais bon, c'est pas une super solution j'avoue.

Pour Efgé,

Ouais désolé j'ai oublié de le mettre quand j'ai fais mon message ;-) Qu'entends tu par un module standart?
 

Pierrot93

XLDnaute Barbatruc
Re : Chemin d'enregistrement fait avec des variables

Re, re fg:)

Comment je peut faire pour que ma variable soit toujours chargé? J'ai trouvé une solution de dépannage, je la stocke caché dans un classeur mais bon, c'est pas une super solution j'avoue.

tu la déclares dans un module standard.... et non dans le module d'un l'usf....
 

barbu26

XLDnaute Nouveau
Re : Chemin d'enregistrement fait avec des variables

Et j'ai rien d'autre à faire? Il y a pas un moyen pour qu'elle garde en mémoire la valeur que je lui est affecté, même après une fermeture? Désolé, j'ai appris à bidouiller sur Excel en autodidacte, et j'ai bien conscience que je pose des questions de débutant ^^
 

Efgé

XLDnaute Barbatruc
Re : Chemin d'enregistrement fait avec des variables

Re
Dans la liste des modules il y un module ThisWorkBook
Mets ce code dedans:
VB:
Public cheminExcel As String
Private Sub Workbook_Open()
cheminExcel = Sheets(5).Cells(1, 1).Value
End Sub
La variable public doit ^etre avant le Private Sub Workbook_Open()
A Chaque ouverture du fichier ta variable prendra la valeur de la feuille5.Cells(1,1)
Cordialement
 

Pierrot93

XLDnaute Barbatruc
Re : Chemin d'enregistrement fait avec des variables

Re,

Et j'ai rien d'autre à faire?
bah non...

Il y a pas un moyen pour qu'elle garde en mémoire la valeur que je lui est affecté, même après une fermeture?

à la fermeture du fichier la variable sera réinitialisée.... tu peux peut être stockée sa valeur dans une cellule, dans une plage nommée ou dans les propriétés du classeur.... Avoir selon ton projet...
 

barbu26

XLDnaute Nouveau
Re : Chemin d'enregistrement fait avec des variables

Ok merci beaucoup pour ton aide :D

Je la stocke déjà dans une cellule, le soucis est de comment faire pour qu'au démarrage de mon classeur, la variable cheminExcel prennent la valeur de la cellule ?
 

Discussions similaires

Statistiques des forums

Discussions
312 480
Messages
2 088 755
Membres
103 945
dernier inscrit
Rémi