OVH Cloud OVH Cloud

nom de fichier dans variable

6 réponses
Avatar
fdess
Bonjour a tous!
Actuellement je cherche à améliorer le code mon projet de base de donnée
sous excel.
Seulement, j'ai un problème, je n'arrive pas à mettre le nom de deux
classeurs dans des variables, ce qui me permettra d'activer l'un ou l'autre
aisement et de pouvoir changer le nom des fichier sans avoir àà chercher
toutes les occurences dans mes pages de code.
Voila la fonction que j'ai écrite pour arriver à quelque chose :

Private Sub Nom_Classeur()
Set Prog = ActiveWorkbook
Workbooks.Open Filename:= _
"X:\Projets_Actifs\bdprojet.xls"
Set BaseD = ActiveWorkbook
Prog.Activate
End Sub

Le problème est que j'ouvre le classeur pour rentrer le nom dans BaseD.
Je pense qu'il y a un moyen d'éviter cela avec des instructions du genre :
set BaseD = currentFolder.Workbooks("bdprojet.xls")
ou qqchose dans le style mais je n'arrive pas à trouver la bonne instruction
ou synthaxe.
Quelqu'un a t il la solution??
Merci d'avance.
FDESS.

6 réponses

Avatar
Ardus Petus
Si bdprojet.xlms est déjà ouvert:

Private Sub Nom_Classeur()
Set Prog = ActiveWorkbook
Set BaseD = Workbooks("bdprojet.xls")
End Sub

Et voilà!


"fdess" a écrit dans le message de news:

Bonjour a tous!
Actuellement je cherche à améliorer le code mon projet de base de donnée
sous excel.
Seulement, j'ai un problème, je n'arrive pas à mettre le nom de deux
classeurs dans des variables, ce qui me permettra d'activer l'un ou
l'autre aisement et de pouvoir changer le nom des fichier sans avoir àà
chercher toutes les occurences dans mes pages de code.
Voila la fonction que j'ai écrite pour arriver à quelque chose :

Private Sub Nom_Classeur()
Set Prog = ActiveWorkbook
Workbooks.Open Filename:= _
"X:Projets_Actifsbdprojet.xls"
Set BaseD = ActiveWorkbook
Prog.Activate
End Sub

Le problème est que j'ouvre le classeur pour rentrer le nom dans BaseD.
Je pense qu'il y a un moyen d'éviter cela avec des instructions du genre :
set BaseD = currentFolder.Workbooks("bdprojet.xls")
ou qqchose dans le style mais je n'arrive pas à trouver la bonne
instruction ou synthaxe.
Quelqu'un a t il la solution??
Merci d'avance.
FDESS.




Avatar
fdess
Merci Ardus.Petus.
Malheureusement le fichier bdprojet.xls n'est pas encore ouvert,
ce serait trop simple!!!
Ardus, qqun, une autre idée???
A plus
FDESS

"Ardus Petus" a écrit dans le message de news:
%
Si bdprojet.xlms est déjà ouvert:

Private Sub Nom_Classeur()
Set Prog = ActiveWorkbook
Set BaseD = Workbooks("bdprojet.xls")
End Sub

Et voilà!


"fdess" a écrit dans le message de news:

Bonjour a tous!
Actuellement je cherche à améliorer le code mon projet de base de donnée
sous excel.
Seulement, j'ai un problème, je n'arrive pas à mettre le nom de deux
classeurs dans des variables, ce qui me permettra d'activer l'un ou
l'autre aisement et de pouvoir changer le nom des fichier sans avoir àà
chercher toutes les occurences dans mes pages de code.
Voila la fonction que j'ai écrite pour arriver à quelque chose :

Private Sub Nom_Classeur()
Set Prog = ActiveWorkbook
Workbooks.Open Filename:= _
"X:Projets_Actifsbdprojet.xls"
Set BaseD = ActiveWorkbook
Prog.Activate
End Sub

Le problème est que j'ouvre le classeur pour rentrer le nom dans BaseD.
Je pense qu'il y a un moyen d'éviter cela avec des instructions du genre
:
set BaseD = currentFolder.Workbooks("bdprojet.xls")
ou qqchose dans le style mais je n'arrive pas à trouver la bonne
instruction ou synthaxe.
Quelqu'un a t il la solution??
Merci d'avance.
FDESS.








Avatar
Ardus Petus
Avec ton code, tu peux déjà utiliser:
BaseD.Activate

Si tu veux absolument avoir le nom du classeur, tu peux utiliser:
strNomºseD.Name

A moins que je n'aie rien compris à ta question...

Cordialement,
--
AP

"fdess" a écrit dans le message de news:

Bonjour a tous!
Actuellement je cherche à améliorer le code mon projet de base de donnée
sous excel.
Seulement, j'ai un problème, je n'arrive pas à mettre le nom de deux
classeurs dans des variables, ce qui me permettra d'activer l'un ou
l'autre aisement et de pouvoir changer le nom des fichier sans avoir àà
chercher toutes les occurences dans mes pages de code.
Voila la fonction que j'ai écrite pour arriver à quelque chose :

Private Sub Nom_Classeur()
Set Prog = ActiveWorkbook
Workbooks.Open Filename:= _
"X:Projets_Actifsbdprojet.xls"
Set BaseD = ActiveWorkbook
Prog.Activate
End Sub

Le problème est que j'ouvre le classeur pour rentrer le nom dans BaseD.
Je pense qu'il y a un moyen d'éviter cela avec des instructions du genre :
set BaseD = currentFolder.Workbooks("bdprojet.xls")
ou qqchose dans le style mais je n'arrive pas à trouver la bonne
instruction ou synthaxe.
Quelqu'un a t il la solution??
Merci d'avance.
FDESS.




Avatar
Ardus Petus
En relisant, j'ai compris!

En tête de module, tu mets:
Const sMaBase as String = "X:Projets_Actifsbdprojet.xls"

Dans ton codes, tu peux utiliser cette constante:
Workbooks.Open filename:=sMaBase

Et voilà!

--
AP

"fdess" a écrit dans le message de news:

Bonjour a tous!
Actuellement je cherche à améliorer le code mon projet de base de donnée
sous excel.
Seulement, j'ai un problème, je n'arrive pas à mettre le nom de deux
classeurs dans des variables, ce qui me permettra d'activer l'un ou
l'autre aisement et de pouvoir changer le nom des fichier sans avoir àà
chercher toutes les occurences dans mes pages de code.
Voila la fonction que j'ai écrite pour arriver à quelque chose :

Private Sub Nom_Classeur()
Set Prog = ActiveWorkbook
Workbooks.Open Filename:= _
"X:Projets_Actifsbdprojet.xls"
Set BaseD = ActiveWorkbook
Prog.Activate
End Sub

Le problème est que j'ouvre le classeur pour rentrer le nom dans BaseD.
Je pense qu'il y a un moyen d'éviter cela avec des instructions du genre :
set BaseD = currentFolder.Workbooks("bdprojet.xls")
ou qqchose dans le style mais je n'arrive pas à trouver la bonne
instruction ou synthaxe.
Quelqu'un a t il la solution??
Merci d'avance.
FDESS.




Avatar
fdess
Je sais chui tatillon, ou penible, comme tu veux, mais c'est pas tout à fait
ça.
On va y a y arriver!!!
Donc, avec ce que tu viens de me donner, ça me force à reécrire dans chaque
fonction (et j'en ai pas mal) où je change de classeur :
Workbooks(sMaBase).Activate (ou qqchose comme ça)
au lieu de BaseD.Activate, dixit mon code
Comme je suis très fenéant et que mon projet aussi, je voudrais, par une
seule instruction, mettre ce qu'il faut dans BaseD, souviens toi :

Private Sub Nom_Classeur()
Set Prog = ActiveWorkbook
Workbooks.Open Filename:= "X:Projets_Actifsbdprojet.xls"
Set BaseD = ActiveWorkbook
Prog.Activate
End Sub

Ainsi je gagnerai une ligne de code :
Workbooks.Open Filename:= "X:Projets_Actifsbdprojet.xls"
Et mon projet gagnerait du temps car cela lui eviterait un changement de
contexte inutile!

Si tu connais dis moi s'il te plait,
Sinon, te prends par trop la tête, je vais utiliser un des deux codes.
Encore Merci.

FDESS
Plus on est malin, plus le code se restreint!




"Ardus Petus" a écrit dans le message de news:

En relisant, j'ai compris!

En tête de module, tu mets:
Const sMaBase as String = "X:Projets_Actifsbdprojet.xls"

Dans ton codes, tu peux utiliser cette constante:
Workbooks.Open filename:=sMaBase

Et voilà!

--
AP

"fdess" a écrit dans le message de news:

Bonjour a tous!
Actuellement je cherche à améliorer le code mon projet de base de donnée
sous excel.
Seulement, j'ai un problème, je n'arrive pas à mettre le nom de deux
classeurs dans des variables, ce qui me permettra d'activer l'un ou
l'autre aisement et de pouvoir changer le nom des fichier sans avoir àà
chercher toutes les occurences dans mes pages de code.
Voila la fonction que j'ai écrite pour arriver à quelque chose :

Private Sub Nom_Classeur()
Set Prog = ActiveWorkbook
Workbooks.Open Filename:= _
"X:Projets_Actifsbdprojet.xls"
Set BaseD = ActiveWorkbook
Prog.Activate
End Sub

Le problème est que j'ouvre le classeur pour rentrer le nom dans BaseD.
Je pense qu'il y a un moyen d'éviter cela avec des instructions du genre
:
set BaseD = currentFolder.Workbooks("bdprojet.xls")
ou qqchose dans le style mais je n'arrive pas à trouver la bonne
instruction ou synthaxe.
Quelqu'un a t il la solution??
Merci d'avance.
FDESS.








Avatar
Aurélie BIANCHINO
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Je vais encore plus loin dans les questions.<br>
Dans mon cas : le nom de ma feuille est al&eacute;atoire c'est &agrave; dire le id de
ma base de donn&eacute;es.<br>
Comment puis je alors mettre le nom de ma feuille dans une variable en
sachant que ma feuille n'est pas encore ouverte?<br>
<br>
Merci<br>
Cordialement<br>
<br>
<br>
Ardus Petus a &eacute;crit&nbsp;:
<blockquote cite="" type="cite">
<pre wrap="">En relisant, j'ai compris!

En t&ecirc;te de module, tu mets:
Const sMaBase as String = "X:Projets_Actifsbdprojet.xls"

Dans ton codes, tu peux utiliser cette constante:
Workbooks.Open filename:=sMaBase

Et voil&agrave;!

--
AP

"fdess" <a class="moz-txt-link-rfc2396E" href="mailto:">&lt;&gt;</a> a &eacute;crit dans le message de news:
<a class="moz-txt-link-abbreviated" href="mailto:"></a>...
</pre>
<blockquote type="cite">
<pre wrap="">Bonjour a tous!
Actuellement je cherche &agrave; am&eacute;liorer le code mon projet de base de donn&eacute;e
sous excel.
Seulement, j'ai un probl&egrave;me, je n'arrive pas &agrave; mettre le nom de deux
classeurs dans des variables, ce qui me permettra d'activer l'un ou
l'autre aisement et de pouvoir changer le nom des fichier sans avoir &agrave;&agrave;
chercher toutes les occurences dans mes pages de code.
Voila la fonction que j'ai &eacute;crite pour arriver &agrave; quelque chose :

Private Sub Nom_Classeur()
Set Prog = ActiveWorkbook
Workbooks.Open Filename:= _
"X:Projets_Actifsbdprojet.xls"
Set BaseD = ActiveWorkbook
Prog.Activate
End Sub

Le probl&egrave;me est que j'ouvre le classeur pour rentrer le nom dans BaseD.
Je pense qu'il y a un moyen d'&eacute;viter cela avec des instructions du genre :
set BaseD = currentFolder.Workbooks("bdprojet.xls")
ou qqchose dans le style mais je n'arrive pas &agrave; trouver la bonne
instruction ou synthaxe.
Quelqu'un a t il la solution??
Merci d'avance.
FDESS.


</pre>
</blockquote>
<pre wrap=""><!---->

</pre>
</blockquote>
<br>
</body>
</html>