Ouvrir un fichier ?

Bonsoir, j'ai cette macro :

Function OuvreFichier() As String
  With Application.FileDialog(msoFileDialogFilePicker)
    .InitialFileName = ThisWorkbook.Path & "\"
    .Title = "Choisir un fichier exemple"
    .AllowMultiSelect = False
    .Filters.Clear
    .Filters.Add "Fichiers", "*.xls,*.xlsm"
    If .Show = True Then   
        OuvreFichier = .SelectedItems(1)
        If InStr(OuvreFichier, "\Liste.xls") < 1 Then
                OuvreFichier = ""
                MsgBox "Veuillez choisir le fichier nommé (Liste...) ", vbCritical
        Else
                Workbooks.Open .SelectedItems(1)
        End If
    End If
  End With
End Function

J'aimerais juste pouvoir ouvrir un fichier avec un début qui s'écrit "Liste" même si il y quelque chose d'écrit après.

Merci à vous.

Je suis peut-être à côté de la plaque mais çà, çà ne te vas pas ?

Sub ouvrir()
Dim chemin$, fichier$

chemin = ThisWorkbook.Path & "\"
fichier = Dir(chemin & "Liste" & "*")
Workbooks.Open chemin & fichier

End Sub

J'essaye dès que possible et je te dirai, merci.

Bonsoir,

une autre proposition

function OuvreFichier() as string
 With Application.FileDialog(msoFileDialogFilePicker)
    .InitialFileName = ThisWorkbook.Path & "\"
    .Title = "Choisir un fichier exemple"
    .AllowMultiSelect = False
    .Filters.Clear
    .Filters.Add "Fichiers", "*.xls,*.xlsm"
    If .Show = True Then
        OuvreFichier = UCase(.SelectedItems(1))
        If InStr(OuvreFichier, "\LISTE") = 0 Or InStr(OuvreFichier, ".XLS") = 0 Then
                OuvreFichier = ""
                MsgBox "Veuillez choisir le fichier nommé (Liste...xls(m)) ", vbCritical
        Else
                Workbooks.Open .SelectedItems(1)
        End If
    End If
  End With
end function

Merci ça fonctionne au début, mais la soucis c'est qu'un fois que le fichier s'ouvre la macro qui suit n'agit pas et j'ai quelques codes par la suite mais il faut les modifier je pense ?

 Nom = "Liste.xls"
Windows("Liste.xls").Activate

Je précise que mon nom de fichier change chaque semaine, donc j'ai besoin que la macro accepte un nom aléatoire mais le début sera toujours "Liste"

Et aussi le fichier que je dois ouvrir est un xlsx ? il ne le vois pas !

Merci les chefs !

Bonsoir,

correction pour inclure fichiers xlsx.

function OuvreFichier() as string
 With Application.FileDialog(msoFileDialogFilePicker)
    .InitialFileName = ThisWorkbook.Path & "\"
    .Title = "Choisir un fichier exemple"
    .AllowMultiSelect = False
    .Filters.Clear
    .Filters.Add "Fichiers", "*.xls*"
    If .Show = True Then
        OuvreFichier = UCase(.SelectedItems(1))
        If InStr(OuvreFichier, "\LISTE") = 0 Or InStr(OuvreFichier, ".XLS") = 0 Then
                OuvreFichier = ""
                MsgBox "Veuillez choisir le fichier nommé (Liste...xls...) ", vbCritical
        Else
                Workbooks.Open .SelectedItems(1)
        End If
    End If
  End With
end function

Ca l'ouvre mais la macro bloque la :

MsgBox "Veuillez choisir le fichier nommé (Liste...xls...) ", vbCritical

Le nom du fichier change chaque semaine il peut être Liste A1 semaine 1 ou Liste A8 semaine 4 etc etc

Bonsoir,

c'est que le nom du fichier que tu as indiqué ne contient pas \Liste... et ne contient pas xls...

J'ai peut être du mal m'exprimer.

Par les ... Je veux dire qu'après le mot Liste il y aura des choses écrites.

Bonjour,

DJ FA a écrit :

J'ai peut être du mal m'exprimer.

Par les ... Je veu dire qu'après le mot Liste il y aura des choses écrites.

j'avais bien compris. et ma réponse indiquait que soit le nom ne contenait pas par \liste soit ne contenait pas xls, soit les deux conditions.

relance le programme, fais ta sélection , un fichier trace.txt sera créé dans le même répertoire que ton programme. joins ce fichier sur le forum.

function OuvreFichier() as string
 With Application.FileDialog(msoFileDialogFilePicker)
    .InitialFileName = ThisWorkbook.Path & "\"
    .Title = "Choisir un fichier exemple"
    .AllowMultiSelect = False
    .Filters.Clear
    .Filters.Add "Fichiers", "*.xls*"
    If .Show = True Then
        OuvreFichier = UCase(.SelectedItems(1))
open "trace.txt" for output as 1
print #1,.selecteditems(1))
close 1
        If InStr(OuvreFichier, "\LISTE") = 0 Or InStr(OuvreFichier, ".XLS") = 0 Then
                OuvreFichier = ""
                MsgBox "Veuillez choisir le fichier nommé (Liste...xls...) ", vbCritical
        Else
                Workbooks.Open .SelectedItems(1)
        End If
    End If
  End With
end function

Merci je teste cet après-midi.

Bonjour,

je rencontre un problème d'ouverture de classeur également.

Je souhaite créer un bouton "VALIDER" qui :

1- ouvre un fichier excel existant

2- copie les données demandées

voici ce que j'ai écrit mai j'ai un message d'erreur, je pense que je dois ajouter une liaison.

Je suis nouvelle et je ne connais pas bien le langage VBA.

Merci d'avance pour vos réponses.

validation

bonjour,

il est préférable de ne pas mélanger les sujets.

Veux-tu ouvrir un nouveau sujet pour ton problème ?

merci

Bonjour h2so4,

J'ai ouvert un nouveau sujet, afin de ne pas mélanger les problèmes

Cordialement,

Margue

Désolé il me bloque toujours là en m'affichant la fenêtre d'erreur :

MsgBox "Veuillez choisir le fichier nommé (Liste...xls...)

bonsoir,

relance le programme, fais ta sélection , un fichier trace.txt sera créé dans le même répertoire que ton programme. joins ce fichier sur le forum.

peux-tu envoyer le fichier trace.txt qui a normalement été créé dans le répertoire de ton fichier excel ?

ca donne ça :

K:\test\Liste n°7 A3S-S12-2015.xlsx

Bonjour,

proposition de correction

function OuvreFichier() as string
 With Application.FileDialog(msoFileDialogFilePicker)
    .InitialFileName = ThisWorkbook.Path & "\"
    .Title = "Choisir un fichier exemple"
    .AllowMultiSelect = False
    .Filters.Clear
    .Filters.Add "Fichiers", "*.xls*"
    If .Show = True Then
        OuvreFichier =.SelectedItems(1)
       fichier=ucase(.selecteditems(1))
open "trace.txt" for output as 1
print #1,fichier
close 1
        If InStr(fichier, "\LISTE") = 0 Or InStr(fichier, ".XLS") = 0 Then
                OuvreFichier = ""
                MsgBox "Veuillez choisir le fichier nommé (Liste...xls...) ", vbCritical
        Else
                Workbooks.Open .SelectedItems(1)
        End If
    End If
  End With
end function

Merci beaucoup j'ai réussi à faire ce que je voulais.

Rechercher des sujets similaires à "ouvrir fichier"