If strFileToOpen <> False ou ou autre ?

Bonjour à tous !

Je me creuse la tête en cherchant sur tous les forums pour trouver mon erreur depuis une bonne heure, et je trouve toujours pas. Dans mon désespoir, je vous demande de l'aide.

Dans mon code, il arrive un moment où l'utilisateur doit choisir le fichier qu'il veut ouvrir. S'il choisit un fichier, celui-ci doit être ouvert. Si non, un message apparaît ("No file selected") et met fin au Sub (=> Exit Sub)

Sauf qu'étrangement (ou pas ^^), lorsque je mets le code suivant:

Dim strFileToOpen As String
    'The user can choose a file to add
      strFileToOpen = Application.GetOpenFilename _
     (Title:="Choose a file to open.", _
     FileFilter:="Excel Files *.xls* (*.xls*),")

        'If the user selected a file, then open it.
         If strFileToOpen <> "" Then
        Workbooks.Open Filename:=strFileToOpen

        'If no file is selected, then write a message box and exit the process
         Else
        MsgBox "No file selected.", vbExclamation, "Sorry!"
        Exit Sub
        Application.ScreenUpdating = True
        Application.ScreenUpdating = False

        End If

Et que je ne sélectionne PAS de fichier (si je sélectionne un fichier ça fonctionne...), il bloque sur cette ligne

Workbooks.Open Filename:=strFileToOpen

Par contre, si je change

If strFileToOpen <> "" Then

en

If strFileToOpen <> False Then

Alors tout fonctionne si je sélectionne un fichier, mais si je le sélectionne pas, j'ai un message d'erreur sur cette ligne-là:

If strFileToOpen <> False Then

Une idée ?

Merci

Hello !

Ben ? chez moi ça marche nickel !

Ah bon ? Tiens c'est étrange... Bon quoi qu'il en soit, j'ai ajouté "On Error Result Next" et ça fonctionne comme il faut, donc je pense m'arrêter à ça avant de perdre trop de temps à me creuser les méninges.

Merci quand même

Bonne journée !


Ah ben en fait non Ca exécute bien le code que j'ai envoyé mais par contre ça fait pas tout le reste (ce que la macro doit faire ensuite, après avoir ouvert le fichier)

Mais pourquoi ça marche pas euuuhhh

Hmmm étrange, vous avez dit étrange ?

Ton code correspond à celui sur les captures d'écran ?

Oui je m'en suis assurée. Je comprendre d'autant moins pourquoi ça fait une différence si je mets = "" ou = False

Les deux devraient donner le même résultat, non ?

L'Application.Getopenfilename renvoie une valeur type booléenne.

Bon, sinon, moi j'ai une préférence pour cette fonction (éprouvée), qui devrait marcher chez toi.

Sub aa()
Dim NomFichier as string
NomFichier = RechercheFichier()

If NomFichier <> "" Then
        Workbooks.Open Filename:=NomFichier

        'If no file is selected, then write a message box and exit the process
        Else
        MsgBox "No file selected.", vbExclamation, "Sorry!"
        Exit Sub
End If

End Sub

Function RechercheFichier() As String
    Dim fd As FileDialog
    Dim NomFichier As String

    Set fd = Application.FileDialog(msoFileDialogFilePicker)
    With fd
        .Filters.Add "Fichiers Excel", "*.xls"
        .Title = "Recherche de fichier"
        .InitialFileName = "Adresses.xls"
    End With
    If fd.Show = -1 Then NomFichier = fd.SelectedItems(1)

    RechercheFichier = NomFichier
    Set fd = Nothing
End Function

Wiiiiiiiiiiiiiii ça fonctionne !!!

Merci beaucoup !

Toutes ces heures de sauvées

Rechercher des sujets similaires à "strfiletoopen false"