Bonjour à tous,
à l'ouverture d'un classeur, sur une condition que je teste, je
propose à l'utilisateur de reprendre les données de l'ancienne
version d'un classeur, installé lui sait où.
Si Ok:
Dim fn As Variant
fn = Application.GetOpenFilename("excel,*.xls", 1, "choisis
l'ancien fichier ", , False)
If TypeName(fn) = "Boolean" Then Exit Sub
Debug.Print "Selected file: " & fn
Workbooks.OpenText fn, Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited,
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True
jusque là, pas de problème.
fn renvoie une string du genre "C:\Rep\sousrep\fichier.xls"
Avant d'ouvrir, je voudrais obtenir le FullName de fn, et le
comparer à un tableau listant les anciennes versions.
mais fn.FullName n'existe pas encore avant l'ouverture.
A votre avis, suis-je mal parti ou dois-je me lancer dans un
traitement de chaîne et obtenir la partie après le dernier "\"
pour récuperer le nom du fichier qu'on va ouvrir (si je veux !)
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
anonymousA
bonojur,
je ne suis pas ur de comprendre ta question. si tu obtiens "C:Repsousrepfichier.xls" pour fn, c'est que tu as déjà ton fullname. Si par contre tu veux n'obetnir que le nom du fichier ou seulement le path ou autre, je te propose les instructions suivantes. Dans ce qui suit remplace ActiveWorkbook.FullName par la variable fn.
Dim fso As FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
MsgBox fso.GetBaseName(ActiveWorkbook.FullName) 'nom fichier sans path et sans extension MsgBox fso.GetAbsolutePathName(ActiveWorkbook.FullName) 'nom fichier avec path complet et extension MsgBox fso.GetFileName(ActiveWorkbook.FullName) 'nom fichier sans path et avec extension
Si ca ne fonctionne pas mettre dans le projet VBA une référence a Microsoft scripting runtime dasn Outils/Reférences.
A+
Bonjour à tous, à l'ouverture d'un classeur, sur une condition que je teste, je propose à l'utilisateur de reprendre les données de l'ancienne version d'un classeur, installé lui sait où. Si Ok:
Dim fn As Variant fn = Application.GetOpenFilename("excel,*.xls", 1, "choisis l'ancien fichier ", , False) If TypeName(fn) = "Boolean" Then Exit Sub Debug.Print "Selected file: " & fn Workbooks.OpenText fn, Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:=True
jusque là, pas de problème.
fn renvoie une string du genre "C:Repsousrepfichier.xls"
Avant d'ouvrir, je voudrais obtenir le FullName de fn, et le comparer à un tableau listant les anciennes versions. mais fn.FullName n'existe pas encore avant l'ouverture.
A votre avis, suis-je mal parti ou dois-je me lancer dans un traitement de chaîne et obtenir la partie après le dernier "" pour récuperer le nom du fichier qu'on va ouvrir (si je veux !)
au plaisir de vous lire, Pat
bonojur,
je ne suis pas ur de comprendre ta question. si tu obtiens
"C:Repsousrepfichier.xls" pour fn, c'est que tu as déjà ton fullname. Si
par contre tu veux n'obetnir que le nom du fichier ou seulement le path ou
autre, je te propose les instructions suivantes.
Dans ce qui suit remplace ActiveWorkbook.FullName par la variable fn.
Dim fso As FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
MsgBox fso.GetBaseName(ActiveWorkbook.FullName) 'nom fichier sans path et
sans extension
MsgBox fso.GetAbsolutePathName(ActiveWorkbook.FullName) 'nom fichier avec
path complet et extension
MsgBox fso.GetFileName(ActiveWorkbook.FullName) 'nom fichier sans path et
avec extension
Si ca ne fonctionne pas mettre dans le projet VBA une référence a Microsoft
scripting runtime dasn Outils/Reférences.
A+
Bonjour à tous,
à l'ouverture d'un classeur, sur une condition que je teste, je
propose à l'utilisateur de reprendre les données de l'ancienne
version d'un classeur, installé lui sait où.
Si Ok:
Dim fn As Variant
fn = Application.GetOpenFilename("excel,*.xls", 1, "choisis
l'ancien fichier ", , False)
If TypeName(fn) = "Boolean" Then Exit Sub
Debug.Print "Selected file: " & fn
Workbooks.OpenText fn, Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited,
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:=True
jusque là, pas de problème.
fn renvoie une string du genre "C:Repsousrepfichier.xls"
Avant d'ouvrir, je voudrais obtenir le FullName de fn, et le
comparer à un tableau listant les anciennes versions.
mais fn.FullName n'existe pas encore avant l'ouverture.
A votre avis, suis-je mal parti ou dois-je me lancer dans un
traitement de chaîne et obtenir la partie après le dernier ""
pour récuperer le nom du fichier qu'on va ouvrir (si je veux !)
je ne suis pas ur de comprendre ta question. si tu obtiens "C:Repsousrepfichier.xls" pour fn, c'est que tu as déjà ton fullname. Si par contre tu veux n'obetnir que le nom du fichier ou seulement le path ou autre, je te propose les instructions suivantes. Dans ce qui suit remplace ActiveWorkbook.FullName par la variable fn.
Dim fso As FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
MsgBox fso.GetBaseName(ActiveWorkbook.FullName) 'nom fichier sans path et sans extension MsgBox fso.GetAbsolutePathName(ActiveWorkbook.FullName) 'nom fichier avec path complet et extension MsgBox fso.GetFileName(ActiveWorkbook.FullName) 'nom fichier sans path et avec extension
Si ca ne fonctionne pas mettre dans le projet VBA une référence a Microsoft scripting runtime dasn Outils/Reférences.
A+
Bonjour à tous, à l'ouverture d'un classeur, sur une condition que je teste, je propose à l'utilisateur de reprendre les données de l'ancienne version d'un classeur, installé lui sait où. Si Ok:
Dim fn As Variant fn = Application.GetOpenFilename("excel,*.xls", 1, "choisis l'ancien fichier ", , False) If TypeName(fn) = "Boolean" Then Exit Sub Debug.Print "Selected file: " & fn Workbooks.OpenText fn, Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:=True
jusque là, pas de problème.
fn renvoie une string du genre "C:Repsousrepfichier.xls"
Avant d'ouvrir, je voudrais obtenir le FullName de fn, et le comparer à un tableau listant les anciennes versions. mais fn.FullName n'existe pas encore avant l'ouverture.
A votre avis, suis-je mal parti ou dois-je me lancer dans un traitement de chaîne et obtenir la partie après le dernier "" pour récuperer le nom du fichier qu'on va ouvrir (si je veux !)
au plaisir de vous lire, Pat
Patrick Loury
Bonjour et merci, tu as raison, j'ai dû mal formuler la question. il s'agissait bien d'obtenir le nom du fichier qu'on va peut-être ouvrir, s'il est en rapport avec le classeur appellant. J'ai contourné le problème ainsi :
fn = Application.GetOpenFilename("excel,*.xls", 1, "choisis un fichier ", , False)
If TypeName(fn) = "Boolean" Then Exit Sub Debug.Print "Selected file: " & fn 'si le classeur qui va s'ouvrir n'est pas Arc-Gestion*, on sort PosMyStr = InStr(1, fn, "Arc-Gestion") If PosMyStr = 0 Then Exit Sub
à une autre fois Pat
"anonymousA" a écrit dans le message de news:
bonojur,
je ne suis pas ur de comprendre ta question. si tu obtiens "C:Repsousrepfichier.xls" pour fn, c'est que tu as déjà ton fullname. Si
par contre tu veux n'obetnir que le nom du fichier ou seulement le path ou
autre, je te propose les instructions suivantes. Dans ce qui suit remplace ActiveWorkbook.FullName par la variable fn.
Dim fso As FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
MsgBox fso.GetBaseName(ActiveWorkbook.FullName) 'nom fichier sans path et
sans extension MsgBox fso.GetAbsolutePathName(ActiveWorkbook.FullName) 'nom fichier avec
path complet et extension MsgBox fso.GetFileName(ActiveWorkbook.FullName) 'nom fichier sans path et
avec extension
Si ca ne fonctionne pas mettre dans le projet VBA une référence a Microsoft
scripting runtime dasn Outils/Reférences.
A+
Bonjour à tous, à l'ouverture d'un classeur, sur une condition que je teste, je
propose à l'utilisateur de reprendre les données de l'ancienne
version d'un classeur, installé lui sait où. Si Ok:
Dim fn As Variant fn = Application.GetOpenFilename("excel,*.xls", 1, "choisis l'ancien fichier ", , False) If TypeName(fn) = "Boolean" Then Exit Sub Debug.Print "Selected file: " & fn Workbooks.OpenText fn, Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:=True
jusque là, pas de problème.
fn renvoie une string du genre "C:Repsousrepfichier.xls"
Avant d'ouvrir, je voudrais obtenir le FullName de fn, et le comparer à un tableau listant les anciennes versions. mais fn.FullName n'existe pas encore avant l'ouverture.
A votre avis, suis-je mal parti ou dois-je me lancer dans un traitement de chaîne et obtenir la partie après le dernier ""
pour récuperer le nom du fichier qu'on va ouvrir (si je veux !)
au plaisir de vous lire, Pat
Bonjour et merci,
tu as raison, j'ai dû mal formuler la question.
il s'agissait bien d'obtenir le nom du fichier qu'on va peut-être
ouvrir, s'il est en rapport avec le classeur appellant.
J'ai contourné le problème ainsi :
fn = Application.GetOpenFilename("excel,*.xls", 1, "choisis un
fichier ", , False)
If TypeName(fn) = "Boolean" Then Exit Sub
Debug.Print "Selected file: " & fn
'si le classeur qui va s'ouvrir n'est pas Arc-Gestion*, on sort
PosMyStr = InStr(1, fn, "Arc-Gestion")
If PosMyStr = 0 Then Exit Sub
à une autre fois
Pat
"anonymousA" <anonymousA@discussions.microsoft.com> a écrit dans
le message de news:
4C546488-F321-4A68-BACE-769BB77A2609@microsoft.com...
bonojur,
je ne suis pas ur de comprendre ta question. si tu obtiens
"C:Repsousrepfichier.xls" pour fn, c'est que tu as déjà ton
fullname. Si
par contre tu veux n'obetnir que le nom du fichier ou seulement
le path ou
autre, je te propose les instructions suivantes.
Dans ce qui suit remplace ActiveWorkbook.FullName par la
variable fn.
Dim fso As FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
MsgBox fso.GetBaseName(ActiveWorkbook.FullName) 'nom fichier
sans path et
sans extension
MsgBox fso.GetAbsolutePathName(ActiveWorkbook.FullName) 'nom
fichier avec
path complet et extension
MsgBox fso.GetFileName(ActiveWorkbook.FullName) 'nom fichier
sans path et
avec extension
Si ca ne fonctionne pas mettre dans le projet VBA une référence
a Microsoft
scripting runtime dasn Outils/Reférences.
A+
Bonjour à tous,
à l'ouverture d'un classeur, sur une condition que je teste,
je
propose à l'utilisateur de reprendre les données de
l'ancienne
version d'un classeur, installé lui sait où.
Si Ok:
Dim fn As Variant
fn = Application.GetOpenFilename("excel,*.xls", 1, "choisis
l'ancien fichier ", , False)
If TypeName(fn) = "Boolean" Then Exit Sub
Debug.Print "Selected file: " & fn
Workbooks.OpenText fn, Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited,
TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:úlse, Tab:=True,
Semicolon:=True
jusque là, pas de problème.
fn renvoie une string du genre "C:Repsousrepfichier.xls"
Avant d'ouvrir, je voudrais obtenir le FullName de fn, et le
comparer à un tableau listant les anciennes versions.
mais fn.FullName n'existe pas encore avant l'ouverture.
A votre avis, suis-je mal parti ou dois-je me lancer dans un
traitement de chaîne et obtenir la partie après le dernier
""
pour récuperer le nom du fichier qu'on va ouvrir (si je veux
!)
Bonjour et merci, tu as raison, j'ai dû mal formuler la question. il s'agissait bien d'obtenir le nom du fichier qu'on va peut-être ouvrir, s'il est en rapport avec le classeur appellant. J'ai contourné le problème ainsi :
fn = Application.GetOpenFilename("excel,*.xls", 1, "choisis un fichier ", , False)
If TypeName(fn) = "Boolean" Then Exit Sub Debug.Print "Selected file: " & fn 'si le classeur qui va s'ouvrir n'est pas Arc-Gestion*, on sort PosMyStr = InStr(1, fn, "Arc-Gestion") If PosMyStr = 0 Then Exit Sub
à une autre fois Pat
"anonymousA" a écrit dans le message de news:
bonojur,
je ne suis pas ur de comprendre ta question. si tu obtiens "C:Repsousrepfichier.xls" pour fn, c'est que tu as déjà ton fullname. Si
par contre tu veux n'obetnir que le nom du fichier ou seulement le path ou
autre, je te propose les instructions suivantes. Dans ce qui suit remplace ActiveWorkbook.FullName par la variable fn.
Dim fso As FileSystemObject
Set fso = CreateObject("Scripting.FileSystemObject")
MsgBox fso.GetBaseName(ActiveWorkbook.FullName) 'nom fichier sans path et
sans extension MsgBox fso.GetAbsolutePathName(ActiveWorkbook.FullName) 'nom fichier avec
path complet et extension MsgBox fso.GetFileName(ActiveWorkbook.FullName) 'nom fichier sans path et
avec extension
Si ca ne fonctionne pas mettre dans le projet VBA une référence a Microsoft
scripting runtime dasn Outils/Reférences.
A+
Bonjour à tous, à l'ouverture d'un classeur, sur une condition que je teste, je
propose à l'utilisateur de reprendre les données de l'ancienne
version d'un classeur, installé lui sait où. Si Ok:
Dim fn As Variant fn = Application.GetOpenFilename("excel,*.xls", 1, "choisis l'ancien fichier ", , False) If TypeName(fn) = "Boolean" Then Exit Sub Debug.Print "Selected file: " & fn Workbooks.OpenText fn, Origin:=xlWindows, _ StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _ ConsecutiveDelimiter:úlse, Tab:=True, Semicolon:=True
jusque là, pas de problème.
fn renvoie une string du genre "C:Repsousrepfichier.xls"
Avant d'ouvrir, je voudrais obtenir le FullName de fn, et le comparer à un tableau listant les anciennes versions. mais fn.FullName n'existe pas encore avant l'ouverture.
A votre avis, suis-je mal parti ou dois-je me lancer dans un traitement de chaîne et obtenir la partie après le dernier ""
pour récuperer le nom du fichier qu'on va ouvrir (si je veux !)