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 Subpour 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 Subbonjour 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)
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
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