Enregistrement avec un nom spécifique ?

Bonjour,

Mon fichier permettant de faire un suivit, je voudrais savoir si il est possible qu'excel enregistre mon fichier avec un nom type par exemple :

Reunion_Heb_Regularite_semaine_13.xls et qu'a chaque semaine il enregistre avec le nouveau numéro de semaine.

Une fois l'enregistrement effectué, je dois lancer une feuille word pour que la présentation des tableaux soit généré, or le lien du classeur excel ne va jamais correspondre car le nom du fichier changera chaque semaine .

Je serai également intéressé par une réponse à cette question...

UP SVP,

Merci,

Simonn

Bonjour,

voici un petit exemple à copier dans ThisWorkbook du classeur visé:

Const PrefixeNom As String = "Reunion_Heb_Regularite_semaine_"

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)
    'Pour empêcher l'évènement Beforesave de se reproduire
    Application.EnableEvents = False

    'Pour ne pas qu'excel execute l'évènement, l'enregistrement se fait manuellement
    Cancel = True

    'Variable qui contient le nouveau nom du classeur
    Dim NomClasseur As String

    'Détermine le nom du fichier selon la semaine en cours
    NomClasseur = PrefixeNom & num_sem(Date) & "_" & Year(Date) & ".xls"

    'Si le nouveau nom égale le nom du classeur en cours
    If NomClasseur = ActiveWorkbook.Name Then
        'Enregistre le classeur
        ActiveWorkbook.Save
    Else
        'Enregistre sous le nouveau nom
        ActiveWorkbook.SaveAs NomClasseur
    End If

    'Réétablie les évènements
    Application.EnableEvents = True
End Sub

pour le no de la semaine, j'ai trouvé cette fonction sur le net, à coller dans un module:

Public Function num_sem(D As Date) As Long
'Auteur: Laurent Longre. X-Cell
'La fonction suivante renvoie le numéro de semaine conforme à la norme ISO, _
utilisée dans les pays européens (la première semaine d'un mois étant définie _
comme la première semaine comportant au moins quatre jours dans le mois).

    D = Int(D)
    num_sem = DateSerial(Year(D + (8 - Weekday(D)) Mod 7 - 3), 1, 1)
    num_sem = ((D - num_sem - 3 + (Weekday(num_sem) + 1) Mod 7)) \ 7 + 1
End Function

j'ai ajouté l'année dans le nom du fichier. C'est un début de solution qui peut vous aider. Pour ton problème avec word, faudrait plus de détail.

Bonsoir

On peut remplacer

NomClasseur = PrefixeNom & num_sem(Date) & "_" & Year(Date) & ".xls"

Par

NomClasseur = PrefixeNom & DatePart("WW", Date, 2, 2) & "_" & Year(Date) & ".xls"

Comme cela, pas besoin de la fonction num_sem

Amicalement

Nad

Bonjour, J'étais parti en vacances désolé de répondre aussi tardivement.

Merci a vous pour les éléments de réponses proposer je vais essayer ca, par contre, Math, qu'entends tu par module ? C'est bien le bloc qui intègre la programmation concernée ?

Quand tu écris du code dans l'éditeur, tu peux créer des modules pour y inscrire des fonctions ou procedures. Tu peux aussi inscrire du code dans le code de la feuille ou bien dans ThisWorkbook qui représente le classeur. Je te disais de placer la fonction num_sem pour des raisons pratique seulement. En placant une fonction "Public" dans un module, tu peux ensuite l'utiliser partout dans ton code. Mais utilise l'exemple de Nad-Dan qui est plus simple.

C'est bon ca marche impeccable merci a vous 2, il me reste plus qu'a trouver la solutions pour que le fichier word ailles chercher les données sur le bon classeur, mais la je vois pas du tout comment faire je suis vraiment novice en visual basique :s.

Je ne voudrai pas abuser de votre gentillesse mais si quelqu'un pourrai m'aider je lui en serai très reconnaissant.

Bonsoir

Il faudrait savoir quelle est la plage qui doit être placée dans word.

Amicalement

Dan

Une fois que j'ai les plages que faut il que j'en fasse ?

Sinon j'avais pensé a une solution plus simple, Est ce qu'il est possible qu'a partir de word on aille chercher le fichier excel ?

Je n'ai toujours pas trouver réponse a ma solution, mais j'ai essayé plusieurs idées qui n'ont pas été convaincante.

Ceci dit il m'en reste une autre que je n'arrive pas vraiment a faire marcher.

Sachant que mon tableau excel a un nom qui va se générer tout seul, est ce qu'il est possible que je fasse le même genre de code dans word, qui va donc générer le même nom de fichier qu'excel, et qu'excel aille chercher les informations dans le fichier word qui a le même nom ?

SI oui comment ?

Je pense que cette idée peut marcher mais me reste a savoir si oui ou non c'est réalisable.

Rechercher des sujets similaires à "enregistrement nom specifique"