OVH Cloud OVH Cloud

Ouvrir un fichier Excel 'comme'

14 réponses
Avatar
Maurice
Bonjour,

=C0 partir d'un champ, j'ouvre un fichier Access, par VBA,=20
dont le nom et mon champs sont en 'relations'.
Ex: Excel.exe C:\"&[champ]&".xls (je ne suis pas certain=20
de la propret=E9 de ce code, mais dans mon code vba, tout=20
est correct)

Le probl=E8me c'est que la fin du nom du fichier change=20
souvent (01;02;03) . Je voudrais donc qu'apr=E8s le nom de=20
mon champ, Access ouvre tout ce qui commence par mon champ.

Exemple: Le fichier C:\209-10-01-02.xls

Mon champ est ici 209. Je voudrais que Access ouvre le=20
fichier Excel en seule fonction du champ, m=EAme si le reste=20
(ici 10-01-02 est n'importe quoi.)

J'ai pens=E9 =E0: Excel.exe C:\"&[champ]&"-"&*&".xls =20
Mais =E7a ne fonctionne pas.

Merci,
Maurice

4 réponses

1 2
Avatar
Maurice
Rebonjour et remerci encore pour toute votre aide.
Il y a juste un petit problème avec les chemins d'accès.
Pour les deux lignes notés ci-bas. J'ai essayé plusieurs
manières de les nommer, mais ça ne marchait pas.

Dans le premier, à la 'barre oblique' et au ':', il dit
qu'il attend un séparateur de liste ou ).
C'est la même chose pour le 2-, sauf qu'il attend en plus
une fin d'instruction à '70000'.

1-Public Function Chercher("Excel.exe ""C:Maurice""".....
2-Shell "Excel.exe " & Chercher(C:Maurice, "70000-
*.xls", False)


Pour le 1-, j'ai essayé de régler avec ceci:
------------------------------
NomDuChemin = "Excel.exe ""C:Maurice"""
NomDuFichier = "70000-abc-01.xls"
With FileSearch
.NewSearch
.LookIn = NomDuChemin
.FileName = NomDuFichier
(etc....)
------------------------------
Pour 2- Avec ceci:
Private Sub Commande8_Click()
Shell "Excel.exe "" & Chercher(C:Maurice70000-*.xls)"""
End Sub
-------------------------
Dans les cas testés, si ça fonctionne un peu, il me dit:
'&Chercher(C:Maurice70000-*.xls).xls

Code Complet:
-------------------------
Public Function Chercher(NomDuChemin As String,
NomDuFichier As String, Sous_répertoires As Boolean) As
String
On Error Resume Next
Dim I As Long
NomDuChemin = "Excel.exe ""C:Maurice"""
NomDuFichier = ""
With FileSearch
.NewSearch
.LookIn = NomDuChemin
.FileName = NomDuFichier
.SearchSubFolders = Sous_répertoires
.MatchTextExactly = True
.FileType = msoFileTypeAllFiles
If .Execute(msoSortByFileName,
msoSortOrderAscending, True) > 0 Then
For I = 1 To .FoundFiles.Count
Chercher = Chercher & .FoundFiles(I) & ";"
Next I
End If
End With
End Function

-------------


Private Sub Commande8_Click()
Shell "Excel.exe "" & Chercher(C:Maurice70000-*.xls)"""
End Sub
-----------------------


Merci
Maurice
Avatar
Raymond [mvp]
j'ai oublié les guillemets:
Shell "Excel.exe " & Chercher("C:Maurice", "70000-*.xls", False) ' ou True

ne pas toucher la fonction.
donc nouvelle version:

Private Sub Commande8_Click()
Shell "Excel.exe " & Chercher("C:Maurice", "70000-*.xls", False) ' ou True
End Sub


Public Function Chercher(NomDuChemin As String, NomDuFichier As String,
Sous_répertoires As Boolean) As String
On Error Resume Next
Dim I As Long
With FileSearch
.NewSearch
.LookIn = NomDuChemin
.FileName = NomDuFichier
.SearchSubFolders = Sous_répertoires
.MatchTextExactly = True
.FileType = msoFileTypeAllFiles
If .Execute(msoSortByFileName, msoSortOrderAscending, True) > 0 Then
For I = 1 To .FoundFiles.Count
Chercher = Chercher & """" & .FoundFiles(I) & """ "
Next I
End If
End With
End Function

--
@+
Raymond Access MVP
http://access.seneque.free.fr/
http://access.vba.free.fr/
http://access2003.free.fr/
http://users.skynet.be/mpfa/ pour débuter sur le forum


"Maurice" a écrit dans le message de
news:4a4301c48068$228df7e0$
Rebonjour et remerci encore pour toute votre aide.
Il y a juste un petit problème avec les chemins d'accès.
Pour les deux lignes notés ci-bas. J'ai essayé plusieurs
manières de les nommer, mais ça ne marchait pas.

Dans le premier, à la 'barre oblique' et au ':', il dit
qu'il attend un séparateur de liste ou ).
C'est la même chose pour le 2-, sauf qu'il attend en plus
une fin d'instruction à '70000'.

1-Public Function Chercher("Excel.exe ""C:Maurice""".....
2-Shell "Excel.exe " & Chercher(C:Maurice, "70000-
*.xls", False)
Avatar
Maurice
J'ai essayé ceci pour la commande 8:

Private Sub Commande8_Click()
Dim NomDuChemin As String
NomDuChemin = "Excel.exe ""C:Maurice"""
Shell "Excel.exe " & Chercher(NomDuChemin, "70000-abc-
01.xls", False)
End Sub

J'avais mal compris le code de chercher.
Sauf qu'il ouvre une page vierge, alors que le fichier
existe.

Dans la Public Function, Que faut-il que je mette comme
nom de fichier? "70000-*.xls"

Merci,
Maurice
Avatar
Maurice
Merci! Tout fonctionne à merveille!

Je sais que l'Univers et la bêtise humaine sont infinies,
mais je ne sais pas si d'autres choses peuvent l'être.
Si oui, alors je vous remercie infiniement, et sinon,
vraiment vraiment beaucoup.

Merci,
Maurice
1 2