transformer un nom de fichier en variable

Le
Fred
Bonjour,

Débutant en VBS, j'exécute le script ci dessous:

' LECTURE COMPLETE DU FICHIER

Set Fsys = CreateObject("Scripting.FileSystemObject")
Set MonFic = Fsys.OpenTextFile("c:test.txt", 1)

'TEST DE L'EXISTENCE DU FICHIER
Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")

If oFSO.FileExists("c:test.txt") = True Then
MsgBox "le fichier existe"
Else
MsgBox "le fichier n'existe pas"
End If


Je souhaite tester l'existence du fichier, mais à l'aide d'une variable.
J'ai essayé de faire :

If oFSO.FileExists(MonFIC) = True Then

Mais ça ne marche pas; pourriez-vous m'indiquer comment récupérer le nom du
fichier dans une variable afin de faire mon test ?

Merci.

FRED.
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Thierry DEMAN [MVP]
Le #707539
Bonsoir,

si tu utilises une variable au lieu d'un objet, cela fonctionnera beaucoup
mieux

Donc,

Monfic="C:test.Txt"
If oFSO.FileExists(MonFIC) = True Then ...

fonctionnera très bien!

Comme tu définis MonFic comme Objet (avec l'instruction "set Monfic=...."),
il y a erreur dans le script!

A bientôt,
--
Thierry DEMAN-BARCELÒ
Exchange MVP, MCSE2003+M,MCSE2003+S,MCDBA,MCITP dba&Dev
http://base.faqexchange.info http://www.faqexchange.info
http://ISAFirewalls.org

"Fred" news:%
Bonjour,

Débutant en VBS, j'exécute le script ci dessous:

' LECTURE COMPLETE DU FICHIER

Set Fsys = CreateObject("Scripting.FileSystemObject")
Set MonFic = Fsys.OpenTextFile("c:test.txt", 1)

'TEST DE L'EXISTENCE DU FICHIER
Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")

If oFSO.FileExists("c:test.txt") = True Then
MsgBox "le fichier existe"
Else
MsgBox "le fichier n'existe pas"
End If


Je souhaite tester l'existence du fichier, mais à l'aide d'une variable.
J'ai essayé de faire :

If oFSO.FileExists(MonFIC) = True Then ...

Mais ça ne marche pas; pourriez-vous m'indiquer comment récupérer le nom
du fichier dans une variable afin de faire mon test ?

Merci.

FRED.









jbongran
Le #707538
"Fred" news:%
Bonjour,

Débutant en VBS, j'exécute le script ci dessous:

' LECTURE COMPLETE DU FICHIER

Set Fsys = CreateObject("Scripting.FileSystemObject")
Set MonFic = Fsys.OpenTextFile("c:test.txt", 1)

'TEST DE L'EXISTENCE DU FICHIER
Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")

If oFSO.FileExists("c:test.txt") = True Then
MsgBox "le fichier existe"
Else
MsgBox "le fichier n'existe pas"
End If


Je souhaite tester l'existence du fichier, mais à l'aide d'une variable.
J'ai essayé de faire :

If oFSO.FileExists(MonFIC) = True Then ...

Mais ça ne marche pas; pourriez-vous m'indiquer comment récupérer le nom
du fichier dans une variable afin de faire mon test ?

Merci.

FRED.
Dim strFichier

strFichier = "c:test.txt"
'TEST DE L'EXISTENCE DU FICHIER
Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
If oFSO.FileExists(strFichier) = True Then
MsgBox "le fichier existe, on peut l'ouvrir"
Set MonFic = Fsys.OpenTextFile("c:test.txt", 1)
blah, blah..
MonFic.Close
Set MonFic = Nothing
Else
MsgBox "le fichier n'existe pas"
End If
Set oFSO = Nothing

Fred
Le #707377
Merci pour vos réponses, je teste de suite.

Fred.


"jbongran" news:4797b8ea$0$13704$
"Fred" news:%
Bonjour,

Débutant en VBS, j'exécute le script ci dessous:

' LECTURE COMPLETE DU FICHIER

Set Fsys = CreateObject("Scripting.FileSystemObject")
Set MonFic = Fsys.OpenTextFile("c:test.txt", 1)

'TEST DE L'EXISTENCE DU FICHIER
Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")

If oFSO.FileExists("c:test.txt") = True Then
MsgBox "le fichier existe"
Else
MsgBox "le fichier n'existe pas"
End If


Je souhaite tester l'existence du fichier, mais à l'aide d'une variable.
J'ai essayé de faire :

If oFSO.FileExists(MonFIC) = True Then ...

Mais ça ne marche pas; pourriez-vous m'indiquer comment récupérer le nom
du fichier dans une variable afin de faire mon test ?

Merci.

FRED.
Dim strFichier

strFichier = "c:test.txt"
'TEST DE L'EXISTENCE DU FICHIER
Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
If oFSO.FileExists(strFichier) = True Then
MsgBox "le fichier existe, on peut l'ouvrir"
Set MonFic = Fsys.OpenTextFile("c:test.txt", 1)
blah, blah..
MonFic.Close
Set MonFic = Nothing
Else
MsgBox "le fichier n'existe pas"
End If
Set oFSO = Nothing



Fred
Le #707376
A nouveau moi!

Merci, cela fonctionne, mais...
Je rencontre les deux problèmes suivants:
1 - j'exécute ce script au sein d'un classeur Excel et souhaiterais
récupérer cette variable depuis le contenu d'une cellule:

Dim strFic As Range
Set strFichier = Range("A1")

Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
If oFSO.FileExists(strFichier) = True Then

etc...


Mais ça ne fonctionne pas, je n'arrive pas à récupérer ma variable...

2- Pour mon info, si j'exécute ce script en enregistrant un fichier txt et
lui positionnant l'extension .vbs, je vois passer une fenêtre dos très
rapidement mais rien d'autre...
Je me demande pourquoi....


Merci encore,

FRED.











"jbongran" news:4797b8ea$0$13704$
"Fred" news:%
Bonjour,

Débutant en VBS, j'exécute le script ci dessous:

' LECTURE COMPLETE DU FICHIER

Set Fsys = CreateObject("Scripting.FileSystemObject")
Set MonFic = Fsys.OpenTextFile("c:test.txt", 1)

'TEST DE L'EXISTENCE DU FICHIER
Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")

If oFSO.FileExists("c:test.txt") = True Then
MsgBox "le fichier existe"
Else
MsgBox "le fichier n'existe pas"
End If


Je souhaite tester l'existence du fichier, mais à l'aide d'une variable.
J'ai essayé de faire :

If oFSO.FileExists(MonFIC) = True Then ...

Mais ça ne marche pas; pourriez-vous m'indiquer comment récupérer le nom
du fichier dans une variable afin de faire mon test ?

Merci.

FRED.
Dim strFichier

strFichier = "c:test.txt"
'TEST DE L'EXISTENCE DU FICHIER
Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
If oFSO.FileExists(strFichier) = True Then
MsgBox "le fichier existe, on peut l'ouvrir"
Set MonFic = Fsys.OpenTextFile("c:test.txt", 1)
blah, blah..
MonFic.Close
Set MonFic = Nothing
Else
MsgBox "le fichier n'existe pas"
End If
Set oFSO = Nothing



Thierry DEMAN [MVP]
Le #707375
Hello,

vérifie que ton fichier de script s'appelle bien "xxx.VBS" et non
"xxxx.VBS.txt"
=> Modifier l'affichage des dossiers pour avoir l'affichage des extensions.

Prends l'habitude de lancer tes scripts vbs par CSCRIPT xxxx.VBS, ou mieux,
positionnes CSCRIPT par défaut:

cscript //H:cscript

A+
--
Thierry DEMAN-BARCELÒ
Exchange MVP, MCSE2003+M,MCSE2003+S,MCDBA,MCITP dba&Dev
http://base.faqexchange.info http://www.faqexchange.info
http://ISAFirewalls.org

"Fred" news:
A nouveau moi!

Merci, cela fonctionne, mais...
Je rencontre les deux problèmes suivants:
1 - j'exécute ce script au sein d'un classeur Excel et souhaiterais
récupérer cette variable depuis le contenu d'une cellule:

Dim strFic As Range
Set strFichier = Range("A1")

Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
If oFSO.FileExists(strFichier) = True Then

etc...


Mais ça ne fonctionne pas, je n'arrive pas à récupérer ma variable...

2- Pour mon info, si j'exécute ce script en enregistrant un fichier txt et
lui positionnant l'extension .vbs, je vois passer une fenêtre dos très
rapidement mais rien d'autre...
Je me demande pourquoi....


Merci encore,

FRED.











"jbongran" news:4797b8ea$0$13704$
"Fred" news:%
Bonjour,

Débutant en VBS, j'exécute le script ci dessous:

' LECTURE COMPLETE DU FICHIER

Set Fsys = CreateObject("Scripting.FileSystemObject")
Set MonFic = Fsys.OpenTextFile("c:test.txt", 1)

'TEST DE L'EXISTENCE DU FICHIER
Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")

If oFSO.FileExists("c:test.txt") = True Then
MsgBox "le fichier existe"
Else
MsgBox "le fichier n'existe pas"
End If


Je souhaite tester l'existence du fichier, mais à l'aide d'une variable.
J'ai essayé de faire :

If oFSO.FileExists(MonFIC) = True Then ...

Mais ça ne marche pas; pourriez-vous m'indiquer comment récupérer le nom
du fichier dans une variable afin de faire mon test ?

Merci.

FRED.
Dim strFichier

strFichier = "c:test.txt"
'TEST DE L'EXISTENCE DU FICHIER
Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")
If oFSO.FileExists(strFichier) = True Then
MsgBox "le fichier existe, on peut l'ouvrir"
Set MonFic = Fsys.OpenTextFile("c:test.txt", 1)
blah, blah..
MonFic.Close
Set MonFic = Nothing
Else
MsgBox "le fichier n'existe pas"
End If
Set oFSO = Nothing






Gilles LAURENT [MVP]
Le #707218
"Fred" news:
| A nouveau moi!

Bonsoir !

| Merci, cela fonctionne, mais...
| Je rencontre les deux problèmes suivants:
| 1 - j'exécute ce script au sein d'un classeur Excel et souhaiterais
| récupérer cette variable depuis le contenu d'une cellule:

Sub GetFileFromCell()
' création d'une instance fso
Set oFs = CreateObject("Scripting.FileSystemObject")

' lecture de la cellule A1 contenant le nom complet du fichier
' le nom complet du fichier sera présent dans la variable strFile
strFile = Worksheets("Feuil1").Range("A1")

' recherche la présence du fichier
If oFs.FileExists(strFile) Then MsgBox ("File exists !")
End Sub

| 2- Pour mon info, si j'exécute ce script en enregistrant un fichier
| txt et lui positionnant l'extension .vbs, je vois passer une fenêtre
| dos très rapidement mais rien d'autre...
| Je me demande pourquoi....

En complément de la réponse de Thierry :

- Ouvrez une invite de commandes cmd.exe
- Déplacez-vous dans le dossier de votre script
- Exécuter ensuite votre script via la commande suivante :
D:Test> cscript //nologo monscript.vbs

--
Gilles LAURENT
MVP Windows Server - Admin Frameworks
http://glsft.free.fr
Méta-MCI \(MVP\)
Le #707215
Bonjour !

Juste un détail : dans un range Excel, le contenu est normalement fourni
par la propriété .value :
Range("A1").value

@-salutations

Michel Claveau
moi
Le #707214
Bonjour,

Notre ami Méta-MCI (MVP) tapota :

Juste un détail : dans un range Excel, le contenu est normalement
fourni par la propriété .value :
Range("A1").value




C'est vrai mais value est la propriété par défaut
ça devrait marcher aussi ainsi
même si je désaprouve ce type de chose...

HB

Méta-MCI \(MVP\)
Le #707213
Bonjour !

la propriété par défaut


Peut-être avec VBA ou VBS ; mais, avec Python, par exemple, il n'y a pas
de propriété par défaut. Son absence génère alors une erreur.

Mais, bon, vu que, là, je sors du cadre de la demande, je sors (bis)...

Michel Claveau

Fred
Le #710712
Bonjour,

Je vous remercie, la récupération de la variable fonctionne maintenant.
Mais bon, comme je suis lancé dans les demandes, je tente le coup:
Dans mon code, j'arrive à lire le contenu du fichier, à aller chercher la
balise qui m'interresse ( 'RECHERCHE LIGNE REF DOS )
Mais ce que je souhaiterais faire, c'est remplacer son contenu
(<refdos>toto</refdos> par <refdos>TATA</refdos>) et là..... c'est la grosse
panique à bord !!

FRED.






Sub Extraire()
'
' Extraire Macro
' Macro enregistrée le 22/01/2008 par Fred
'

Range("B1").Select
ActiveCell.FormulaR1C1 = "=MID(RC[-1],18,6)"
Range("B1").Select
Selection.AutoFill Destination:=Range("B1:B1500"), Type:=xlFillDefault
Range("B1:B1500").Select
Columns("A:A").EntireColumn.AutoFit
Range("A1").Select


End Sub

Sub Lire()

'RECUPERATION VARIALBLE CELLULE EXCEL
Dim strFic As Range
Set Mon_Fic = Range("A1")

MsgBox Mon_Fic

'TEST DE L'EXISTENCE DU FICHIER
Dim oFSO
Set oFSO = CreateObject("Scripting.FileSystemObject")

If oFSO.FileExists(Mon_Fic) = True Then

MsgBox "le fichier existe"
Else
MsgBox "le fichier n'existe pas"

End If

' LECTURE COMPLETE DU FICHIER

Set Fsys = CreateObject("Scripting.FileSystemObject")
Set OFSO2 = Fsys.OpenTextFile(Mon_Fic, 1)

Contenu = OFSO2.Readall

msg = "Le fichier contient : " & Contenu

MsgBox (msg)


'RECHERCHE LIGNE REF DOS
Const ForReading = 1, ForWriting = 2

Dim OFSO3, MyFile2

Set OFSO3 = CreateObject("Scripting.FileSystemObject")

Set MyFile2 = OFSO3.OpenTextFile(Mon_Fic, ForReading)

' Tant que la fin du fichier n'est pas atteinte...
Do While Not MyFile2.AtEndOfStream

'...Lire chaque ligne
ReadLineTextFile = MyFile2.ReadLine

'Si la chaîne de caractère <refdos> est rouvée, alors l'inclure dans la
variable "ReadLineTextFile"
If InStr(ReadLineTextFile, "<refdos>") Then
MsgBox ReadLineTextFile
Else
End If

Loop

End Sub



"moi" news:
Bonjour,

Notre ami Méta-MCI (MVP) tapota :

Juste un détail : dans un range Excel, le contenu est normalement
fourni par la propriété .value :
Range("A1").value




C'est vrai mais value est la propriété par défaut
ça devrait marcher aussi ainsi
même si je désaprouve ce type de chose...

HB



Publicité
Poster une réponse
Anonyme