récupérer info dans le nom de fichier

francedemo

XLDnaute Occasionnel
[résolu] récupérer info dans le nom de fichier

bonjour à tous
voilà, j'ai récupéré sur le site un bout de code bien utile pour mon besoin:
je crée une fiche SAV qui passe d'abord par le répertoire "devis" puis par celui des "vente"
Code:
Sub enregistrement_auto_Devis_SAV()

'Contrôler de la validité des symboles de la cellule
    Dim Arr
    Arr = Array(" ", "*", "?", ">", "<", ":", "", "/", "|")
'Utiliser le nom de livraison comme racine du nom de fichier
    x = ActiveSheet.Range("G6").Value
    y = ActiveSheet.Range("AG1").Value
    z = ActiveSheet.Range("AG2").Value
'Remplacer chacun des élément par "_"
    For Each elt In Arr
    x = Replace(x, elt, "_")
    Next
'Formater la date
    MaDate = Format(Date, "YYYY_MM_dd_")
'Se placer dans le bon répertoire
    If Range("C7") = "Devis" Then
    ChDir "O:\SAV\DevisSAV"
    ElseIf Range("C7") = "Commande" Then
    ChDir "O:\SAV\VenteSAV\2009"
    ElseIf Range("C7") = "Garantie" Then
    ChDir "O:\SAV\Garantie\2009"
    End If
'Enregistrer le fichier sous...
    ActiveWorkbook.SaveAs Filename:=x & "_" & MaDate & y & "_" & z & ".xls"
'Ouvrir "RécapVenteCardio2009base" pour renseigner les lignes à facturer
    If Range("C7") = "Commande" Then
    Fichier = "o:\gestion commerciale\RecapVenteCardio2009base.xls"
    Workbooks.Open Filename:=Fichier, UpdateLinks:=1
    End If
    
End Sub
en gros, je récupère le nom du client en cellule G6 et je crée le nom de fichier sous la forme "nom du client"_"date de création de la fiche"_
dans le cas d'un devis, je place l'enregistrement du fichier dans le répertoire "devis"
dans le cas d'une vente, je place le fichier dans "vente" avec "SAV"(y)_"n°ordre"(z) en fin de fichier et j'ouvre le fichier de récapitulatif
dans le cas de garantie, je place le fichier dans "garantie" avec "GAR"(y)_"n°ordre"(z)
tout ça fonctionne au poil
je n'ai plus qu'un cas de figure: une fois le devis édité puis validé par le client
je dois enregistrer le fichier sous la forme nom du client_date de création de la fiche(y)_SAV ou GAR_n°ordre(z)
le problème est que la macro modifie la date, ce que je ne veux pas
je veux juste ajouter à la fin SAV ou GAR (y) + n°ordre (z) et déplacer le fichier dans le répertoire correspondant

j'espère avoir été suffisamment clair

merci d'avance pour vos réponses
 
Dernière édition:

soenda

XLDnaute Accro
Re : récupérer info dans le nom de fichier

Bonjour le fil, francedemo

Dans l'extrait de ta Sub, ci-dessus, le nom de fichier contient la date à laquelle est effectuée la sauvegarde.
Code:
'Formater la date
    MaDate = Format(Date, "YYYY_MM_dd_")
    ...
'Enregistrer le fichier sous...
    ActiveWorkbook.SaveAs Filename:=x & "_" & MaDate & y & "_" & z & ".xls"
Si tu veux une date fixe (la date de vente, par exemple), alors tu entres une date fixe dans une cellule de ta feuille
ex: Cells(Lig, Col) = "22/06/2009"

Tu va récupérer cette date quand tu fais ta sauvegarde, et ton code devient (à adapter)
Code:
'Formater la date
    MaDate = Format(Cells(Lig, Col), "YYYY_MM_dd_")
    ...
'Enregistrer le fichier sous...
    ActiveWorkbook.SaveAs Filename:=x & "_" & MaDate & y & "_" & z & ".xls"
A plus
 

francedemo

XLDnaute Occasionnel
Re : récupérer info dans le nom de fichier

bonjour soenda et merci pour ta réponse,
je teste ça tout de suite
et je reviens

ok, j'ai testé et adapté, ça marche, en fait, sur ma fiche, j'ai une cellule "date" qui se met à jour avec "=aujourdhui()", je bloque la date à la création de la fiche et je la récupère dans le nom de fichier donc pour mon premier pb c'est résolu

par contre pour le 2ème point, as tu une idée : je reprends les différentes opérations =>
1 - je crée le devis, le place automatiquement dans "\devis"
2 - le client l'accepte
3 - j'édite la fiche SAV et place le fichier dans "\SAV" avec le nom modifié
mais je voudrais supprimer le fichier existant sous "\devis"
(et ça, je ne sais pas faire :eek:)
 
Dernière édition:

francedemo

XLDnaute Occasionnel
Re : récupérer info dans le nom de fichier

bon, j'ai trituré mon code
c'est simple, un peu répétitif, mais bon,
par contre, je bute sur la suppression du fichier
si quelqu'un connait l'astuce...
Code:
'Se placer dans le bon répertoire et enregistrer le fichier
    If Range("C7") = "Devis" Then
    CheminDevis = "O:\SAV\DevisSAV"
    ActiveWorkbook.SaveAs Filename:=CheminDevis & "\" & x & "_" & MaDate & ".xls"
'Se placer dans le bon répertoire et enregistrer le fichier
    ElseIf Range("C7") = "Garantie" Then
    CheminGarantie = "O:\SAV\Garantie\2009"
    ActiveWorkbook.SaveAs Filename:=CheminGarantie & "\" & x & "_" & MaDate & y & "_" & z & ".xls"
'Se placer dans le bon répertoire et enregistrer le fichier
    ElseIf Range("C7") = "Commande" Then
    CheminCommande = "O:\SAV\VenteSAV\2009"
    CheminDevis = "O:\SAV\DevisSAV"
    ActiveWorkbook.SaveAs Filename:=CheminCommande & "\" & x & "_" & MaDate & y & "_" & z & ".xls"
[B]c'est là où ça coince[/B]
    Workbook.Delete Filename:=CheminDevis & "\" & x & "_" & MaDate & ".xls"
    End If
'Ouvrir "RécapVenteCardio2009base" pour renseigner les lignes à facturer
    If Range("C7") = "Commande" Then
    Fichier = "o:\gestion commerciale\RecapVenteCardio2009base.xls"
    Workbooks.Open Filename:=Fichier, UpdateLinks:=1
    End If

merci d'avance
 

Discussions similaires

Statistiques des forums

Discussions
312 294
Messages
2 086 897
Membres
103 404
dernier inscrit
sultan87