Recherche fichier

Bonjour le forum,

Dans mon travail, je travaille avec un fichier Excel lors de l'enregistrement.
La tournée se nomme comme ca "A0......" suivant la tournée du jour. Et plus d'une centaine de tournées, et ça me permets de travailler avec les notes de la même tournée passée
J'occupe deux soit soit le poste ou j'utilise ce fichier.
Nous sommes trois a travailler sur se poste
Je voudrais pourvoir créer une petit macro avec un imputbox avec une recherche par nom du fichier
Si le fichier existe, me propose de l'ouvrir via un msgbox
Si le fichier n'existe pas , me propose d'ouvrir le fichier de base via un msgbox aussi.

Je ne suis pas spécialiste vba je cherche beaucoup et j adapte mais la je suis dépassé.

J'avais trouvé une ébauche, donc je joint le fichier,
J'ai toujours une résultat nul. par msgbox "le fichier existe pas

et je n'arrive pas à avoir la proposition d'ouvrir le fichier de base

Je vous remercie d'avance de votre aide.

j'espère être clair et compréhensif

bonjour,

une proposition de correction du code pour la recherche d'un fichier existant.

Option Explicit

Sub test()
    Dim chemin As String, Fichier As String
    Dim nomF As String, ok As Boolean
    Dim wb As Workbook

    Set wb = ThisWorkbook
    chemin = "C:\Users\6810558F\OneDrive - SNCF\Documents\0-Loc Ng\04-Tournées Realisées\" ' adapter

    nomF = InputBox("Saisir une partie du nom du fichier", "Ouvrir fichier")
    nomF = LCase(Replace(nomF, " ", ""))
    Fichier = Dir(chemin & "*.xls*")    ' 1er fichier
    Do While (Len(Fichier) > 0)
        If Fichier <> ThisWorkbook.Name Then
            If InStr(LCase(Replace(Fichier, " ", "")), nomF) Then
                If MsgBox("Ouvrir " & Fichier, vbYesNo + vbQuestion, "Nom correct ?") = vbYes Then
                    ok = True
                    Exit Do
                End If
            End If
        End If
        Fichier = Dir()    ' fichier suivant
    Loop
    If ok Then
        Set wb = Workbooks.Open(chemin & Fichier)
    Else
        MsgBox ("le fichier n existe pas")
    End If
End Sub

pour le cas où le fichier n'existe pas quel est le nom du fichier de base et quel nom faut-il lui donner après l'avoir ouvert ?

Bonsoir h2so4,

Super le code, fonctionne bien

Une petit question quand j'ouvre la recherche,

J'ai le nom de la tournée du jour qui s affiche dans une cellule "G8", il est possible de la recherche du fichier existant peut se faire automatiquement

bonjour,

code adapté.

Option Explicit

Sub test()
    Dim chemin As String, Fichier As String
    Dim nomF As String, ok As Boolean
    Dim wb As Workbook

    Set wb = ThisWorkbook
    chemin = "C:\Users\6810558F\OneDrive - SNCF\Documents\0-Loc Ng\04-Tournées Realisées\" ' adapter

    'nomF = InputBox("Saisir une partie du nom du fichier", "Ouvrir fichier")
    nomF = Sheets("feuil1").Range("G8") '<- adapter éventuellement le nom de la feuille
    nomF = LCase(Replace(nomF, " ", ""))
    Fichier = Dir(chemin & "*.xls*")    ' 1er fichier
    Do While (Len(Fichier) > 0)
        If Fichier <> ThisWorkbook.Name Then
            If InStr(LCase(Replace(Fichier, " ", "")), nomF) Then
                If MsgBox("Ouvrir " & Fichier, vbYesNo + vbQuestion, "Nom correct ?") = vbYes Then
                    ok = True
                    Exit Do
                End If
            End If
        End If
        Fichier = Dir()    ' fichier suivant
    Loop
    If ok Then
        Set wb = Workbooks.Open(chemin & Fichier)
    Else
        MsgBox ("le fichier n existe pas")
    End If
End Sub

bonjour h2so4

super la modification, la recherche se fait automatiquement afin de savoir si le fichier existe

Merci beaucoup encore.

Bonjour H2se4, et le forum.

j'ai réussi à adapter ton code,

voilà lorsque le fichier n'existe pas, il crée bien un fichier qui se renomme avec la cellule "G8"

mais lorsque le fichier existe, il l'ouvre mais là, il me fait une erreur (Ligne surlignée)

image

je me suis lancer une sur une idée en fessant beaucoup d'enregistrement de macro et de l'adaptation

mon idée est un fichier de recherche qui vérifie le Numéro de Tournée existe dans un dossier "Tournées réalisées"

oui, il n'ouvre le fichier et je peux travailler avec avec un onglet avec une archive des tournées précédents

non, il crée le fichier en le renommant au nom de la tournée en G8

et garde le fichier LOC NG 23 vierge qui se situe dans un autre dossier "Loc NG 2023"

et est il possible de vider les cellules "D8 à J8" sans effacer les formules

merci d'avance

17loc-ng-23.zip (1.26 Mo)

Dim chemin2 As String

Dim fichierDeBase As String

Dim nomF As String

Dim Fichier As String

Dim wb As Workbook

Dim VREP As String

' chemin des fichiers

chemin = "C:\Users\6810558F\OneDrive - SNCF\Documents\0-Loc Ng\04-Tournées Realisées\"

chemin2 = "C:\Users\6810558F\OneDrive - SNCF\Documents\0-Loc Ng\00-Projet Loc Ng\Projet Loc Ng 2023\01-Loc Ng 2023\"

fichierDeBase = "Loc NG 23.xlsb"

'nomF = InputBox("Saisir le nom du fichier sans extention", "Ouvrir fichier")

nomF = Sheets("Tableau de Bord").Range("G8") '<- adapter éventuellement le nom de la feuille

If nomF <> "" Then

Fichier = Dir(chemin & nomF & ".xlsb*")

If Left(Fichier, Len(nomF)) = nomF Then

VREP = MsgBox(Fichier & " Fichier existe. l'ouvrir?", vbYesNo)

If VREP = 6 Then

Set wb = Workbooks.Open(chemin & Fichier)

End If

Else

VREP = MsgBox(Fichier & " Fichier n'existe pas. Création du fichier ?", vbYesNo)

If VREP = 6 Then

Set wb = Workbooks.Open(chemin2 & fichierDeBase)

End If

End If

Else

MsgBox ("Recherche annulée.")

End If

End Sub

Bonsoir,

le code est 1234

Rechercher des sujets similaires à "recherche fichier"