Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

transformer un nom de fichier en variable

10 réponses
Avatar
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.

10 réponses

Avatar
Thierry DEMAN [MVP]
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" a écrit dans le message de
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.









Avatar
jbongran
"Fred" a écrit dans le message de
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

Avatar
Fred
Merci pour vos réponses, je teste de suite.

Fred.


"jbongran" a écrit dans le message de
news:4797b8ea$0$13704$
"Fred" a écrit dans le message de
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



Avatar
Fred
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" a écrit dans le message de
news:4797b8ea$0$13704$
"Fred" a écrit dans le message de
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



Avatar
Thierry DEMAN [MVP]
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" a écrit dans le message de
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" a écrit dans le message de
news:4797b8ea$0$13704$
"Fred" a écrit dans le message de
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






Avatar
Gilles LAURENT [MVP]
"Fred" a écrit dans le message de
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
Avatar
Méta-MCI \(MVP\)
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
Avatar
moi
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

Avatar
Méta-MCI \(MVP\)
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

Avatar
Fred
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" a écrit dans le message de
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