Microsoft 365 recherche fichier sans un dossier

pelerin65

XLDnaute Occasionnel
Bonjour le forum,

voila j'avais un fichier excel avec le code suivant

VB:
nomF = Sheets("Tableau de Bord").Range("Q2") '<- adapter éventuellement le nom de la feuille
If nomF <> "" Then
    fichier = Dir(CHEMIN_TR & nomF & ".xls*")
    If Left(fichier, Len(nomF)) = nomF Then
        VREP = MsgBox("Le Fichier" & " " & [Q2] & " " & "existe, l'ouvrir?", vbYesNo)
       If VREP = 6 Then
            Set wb = Workbooks.Open(CHEMIN_TR & fichier)
        End If
     Else
        VREP = MsgBox(fichier & "La tournée" & " " & [Q2] & " " & "n'existe pas, création d'un nouveau fichier ?", vbYesNo)
        If VREP = 6 Then
            Set wb = Workbooks.Open(CHEMIN_FICHIER_TR_BASE)
            wb.SaveAs (CHEMIN_TR & nomF & ".xlsb")
        End If
    End If
End If


J'aimerai pouvoir l'adapter à ce nouveau ficher qui est 100% avec des userform
ca me permets de pouvoir avoir un historique par N° de Tournée

je joins le fichier
 

Pièces jointes

  • Notes.xlsb
    302.1 KB · Affichages: 7

pelerin65

XLDnaute Occasionnel
Re
Le bouton "AFFICHER" sert a afficher le userform "Préparation"
Si le Fichier (Fiche) doit avoir dans son nom le numéro de la journée, c'est après l'affichage de "Préparation"qu'il faudrait lancer la création de la fiche.. pourquoi le créer a l'ouverture alors qu'il va , d'après ce que j'ai compris , contenir les données de la feuille "journal" ( question que j'ai posé , sans réponse , à préciser donc !) et donc complète en fin de journée.
Explique moi lol
Jean marie
Re
c est que je voudrait qu'il se nomme au début car il y a des collègues qui ont déjà du mal avec l'informatique comme a la fermeture Excel demande de l enregistre
Cordialement
JL
 

pelerin65

XLDnaute Occasionnel
Bonjour le forum, ChTi160, Fanch55,

Ce code fonctionne en fin de journée, il enregistre bien le fichier en le renommant avec le N° de Tournée
j'utilise le bouton Valider de l 'userform "PREPARATION"
Private Sub CmbValider_Click()
'Private Sub LblTournee_Click()
Dim Fichier As String
Dim Wb As Workbook
Dim Chemin_Tr As String: Chemin_Tr = "C:\Loc Ng 25\01-Tounées\"
Dim Chemin_Fichier_Tr_Base As String: Chemin_Fichier_Tr_Base = "C:\Loc Ng 25\Loc Ng.xlsb"
Dim nomF As String: nomF = Chemin_Tr & Me.LblTournee & ".xlsb"
If nomF <> "" Then
Err.Clear: On Error Resume Next
' on vérifie qu'il ne soit pas déjà ouvert
Set Wb = Application.Workbooks(Me.LblTournee & ".xlsb")
If Wb Is Nothing Then
Fichier = Dir(nomF)
If Fichier <> "" Then
' le fichier existe
If MsgBox("Le Fichier " & Me.LblTournee & " existe" & vbLf _
& "l'ouvrir ?", vbQuestion + vbYesNo) = vbYes Then
Set Wb = Workbooks.Open(Chemin_Tr & Fichier)
End If
Else
If MsgBox("La tournée " & nomF & "n'existe pas" & vbLf _
& "voulez-vous la créer ?", vbQuestion + vbYesNo) = vbYes Then
Set Wb = Workbooks.Open(Chemin_Fichier_Tr_Base)
Wb.SaveAs (nomF)
End If
End If
Else
Wb.Activate
End If
Le problème reste le même, la recherche en début de journée, savoir s'il existe le fichier afin de pourvoir utiliser l'archive.
Le souci, c'est de pourvoir faire une recherche dans le dossier "Tournées"

Est-il possible de faire une prérecherche du N° Tournée à l'ouverture du fichier avec ESV et date et afficher une Msgbox avec le N° de Tournée afin de pourvoir l'ouvrir le fichier existant s'il existe sinon de créer un nouveau fichier en le renommant avec le N° de tournée trouvé

Cordialement
JL
 

Pièces jointes

  • Loc Ng.xlsb
    330.2 KB · Affichages: 2

pelerin65

XLDnaute Occasionnel
Bonsoir Jean luc
pas de réponse à mes questions Lol
mais j'en ai encore mdr !

j'ai vu que tu as ajouté des OptionButton , pour les premiers , je pense qu'il doivent servir a Filtrer les Lignes du Journal , et celui Intitulé "LOC NG" sert à quoi ?
Pourquoi n'as tu pas mis un Combobox pour trie les lignes sur les "Catégories" ?
bon j'essaye de Comprendre
tu as un Dossier "Tournées" et au fur et a mesure tu y archives les données (de la feuille "Journal" c'est ça ?) soit dans le Fichier , exemple "SE08.xlsb " si il existe ou alors tu Crées et tu le renommes ce fichier par exemple "SE08.xlsb" avec l'intitulé de la Tournées en cours de traitement et tu y mets les données de la feuille "Journal" de la Journée en cours ? c'est ça ?

Bonne continuation

jean marie
Bonjour ChTi160,
ce code permettais de garder le fichier de base vierge tout en renommant ou en vérifiant si le fichier existe ou pas ou de le créer s'il n existe pas.
Dim nomF As String
Dim fichier As String
Dim wb As Workbook
Dim wb2 As Workbook
Dim VREP As String
Dim Workbook As String

nomF = Sheets("Tableau de Bord").Range("Q2") '<- adapter éventuellement le nom de la feuille
If nomF <> "" Then
fichier = Dir(CHEMIN_TR & nomF & ".xls*")
If Left(fichier, Len(nomF)) = nomF Then
VREP = MsgBox("Le Fichier" & " " & [Q2] & " " & "existe, l'ouvrir?", vbYesNo)
If VREP = 6 Then
Set wb = Workbooks.Open(CHEMIN_TR & fichier)
End If
Else
VREP = MsgBox(fichier & "La tournée" & " " & [Q2] & " " & "n'existe pas, création d'un nouveau fichier ?", vbYesNo)
If VREP = 6 Then
Set wb = Workbooks.Open(CHEMIN_FICHIER_TR_BASE)
wb.SaveAs (CHEMIN_TR & nomF & ".xlsb")
End If
End If
End If

Bien pour la feuille journal et se remplir uniquement avec la tournée du jour (par exemple si le 14 mai le N° de tournée est SE08 dans le journal, ca sera la journée du 14 mai et les prochaines de la même tournée, le 15 mai, la tournée n'auras pas le même N° de tournée donc pas le même journal d'où l'importance de pouvoir le renomme au début de de pourvoir afin de garder le fichier de base vierge
après les option buttons, il est vrai que c'est pour la fin de journée pour créer le rapport finale avec le responsable de mesure c'est pourvoir trier par catégories les données brutes avec le système d enregistrement car on a très très souvent des différence de points kilométriques, c'est une idée
cordialement
JL
 

pelerin65

XLDnaute Occasionnel
Bonjour Jean Luc
Tu dis :

J'ai déjà du le demander,mais bon !
Qu'appelles tu "fichier" de Base"
Pourrais tu par exemple mettre une explication du genre a partir du Fichier "Notes.xlsb" je remplie la feuille "Journal"
Puis en fin de journée de la Tournée SE08.xlsb
Je vérifie que la tournée SE08.xlsb se trouve ou pas dans le dossier "Tournées"
A partir de quoi créés tu ce fichier ,un fichier vierge sans rien (entêtes) , à partir de la feuille "Journal" en y récupérant tout (avec entêtes)ou seulement les données.
Dans l'attente
Bonne journée
Jean marie
Re ChTi160
Ce fichier ci-dessous
fichier de Base = Loc Ng
 

Pièces jointes

  • Loc Ng.xlsb
    330.2 KB · Affichages: 1

pelerin65

XLDnaute Occasionnel
Re
ca non plus je ne comprends pas Lol

que vient faire la date dans la recherche du Fichier qui s'appelle du Numéro de la Tournée ? (SE08.xlsb)
et ça ?


tu dis "créer un nouveau fichier " à partir de quoi Lol
et on en fait quoi de ce Fichier trouvé ou Créée ? Lol
Tu vois il faut être Clair et Précis car toi tu connais très bien la Marche à suivre ,mais pas nous Lol
d'ou toutes mes questions et demandes .......
Jean marie
Re ChTi160
j'ouvre le fichier Loc Ng,
il n'ouvre la fenêtre ACCUEIL

I
9.png

Avec mon ancien fichier, après avoir rempli la combo et la date avec le code suivant
c'est là que qu'il ouvrait le deuxième fichier et qu'il renomme le fichier avec son numéro de tournée. car il y avait une recherche
Dim nomF As String
Dim fichier As String
Dim wb As Workbook
Dim wb2 As Workbook
Dim VREP As String
Dim Workbook As String

nomF = Sheets("Tableau de Bord").Range("Q2") '<- adapter éventuellement le nom de la feuille
If nomF <> "" Then
fichier = Dir(CHEMIN_TR & nomF & ".xls*")
If Left(fichier, Len(nomF)) = nomF Then
VREP = MsgBox("Le Fichier" & " " & [Q2] & " " & "existe, l'ouvrir?", vbYesNo)
If VREP = 6 Then
Set wb = Workbooks.Open(CHEMIN_TR & fichier)
End If
Else
VREP = MsgBox(fichier & "La tournée" & " " & [Q2] & " " & "n'existe pas, création d'un nouveau fichier ?", vbYesNo)
If VREP = 6 Then
Set wb = Workbooks.Open(CHEMIN_FICHIER_TR_BASE)
wb.SaveAs (CHEMIN_TR & nomF & ".xlsb")
End If
End If
End If
aujourd'hui, avec un seul fichier Excel avec des userform, ça l'air impossible de faire le même processus.

ce processus me permettais de garder un fichier de base 'Loc Ng"
et de créer des fichiers nommé par le numéro de tournée.

voila je parlais de faire une prerecheche lol
cordialement
 

pelerin65

XLDnaute Occasionnel
Re ChTi160

ok, tu dis beaucoup de possibilités, mais c est quoi une fichier x, je vois pas ce que c'est en plus, je n'arrive pas à retenir le vba; je vais au moins essayer de corriger les problèmes sur les boutons "supprimer" et "ajouter" dans l'autre fil,
j'ai beaucoup travaillé passer du temps avec l ancien pour ce fichier.
je vais réfléchir à ces possibilités de ton post pour comprendre et voir une fichier d'exemples

Merci de ton aide
cordialement
JL
 

ChTi160

XLDnaute Barbatruc
Re
Ok je comprends mieux
X c'est comme quand on dit porter plainte contre X
Par exemple j'ai un fichier nommé "Modèle.xlsb" plutôt que X
C'est ce fichier Modèle que je renommerais "SE08.xlsb"
Encore faudrait il savoir ce qui doit te servir dans ces Fichiers archivés. Mais bon !
Je vais te laisser finir comme tu l'entends .
Tu devrais y arriver !
Je ne t'embête plus lol
Je vais supprimer tout ce qui ne correspond pas. A ta demande .
Bonne fin de journée
Jean marie
 
Dernière édition:

pelerin65

XLDnaute Occasionnel
Re
Ok je comprends mieux
X c'est comme quand on dit porter plainte contre X
Par exemple j'ai un fichier nommé "Modèle.xlsb" plutôt que X
C'est ce fichier Modèle que je renommerais "SE08.xlsb"
Encore faudrait il savoir ce qui doit te servir dans ces Fichiers archivés. Mais bon !
Je vais te laisser finir comme tu l'entends .
Tu devrais y arriver !
Je ne t'embête plus lol
Je vais supprimer tout ce qui ne correspond pas. A ta demande .
Bonne fin de journée
Jean marie
Bonjour ChTi160

comment on fait pour récupère la valeur de lbltournée de l'userform PREPARATION
en cliquant sur le Bouton "Journal"
j aimerai à l ouverture de l'userform JOURNAL" avoir la valeur du label "lbltournée" dans une textbox
c'est possible de le faire en vba
cordialement
JL
 

ChTi160

XLDnaute Barbatruc
Tu déclares une variable Public
Exemple : StrTounee as String
Puis lors de l'appui sur le bouton journal
Dans l'initialize du userform "JOURNAL" tu mets (Si ton Texbox s'appelle TxBoxTournee)
TxtBoxTournee.Text=StrTournee
Depuis mon téléphone
Jean marie
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 488
Messages
2 088 866
Membres
103 979
dernier inscrit
imed