IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Insérer date de création de fichier [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 46
    Points
    46
    Par défaut Insérer date de création de fichier
    Bonjour tout le monde,

    Je voudrais insérer la date de création du fichier dans une cellule.
    Les solutions que j’ai trouvé dans les multiples posts ne m’ont pas convenu et la solution que j’ai mis en place ne me convient aussi qu’á moitié.
    Le problème: l’utilisateur ouvre un fichier-modèle et l’enregistre sous un autre nom. Une date doit s’insérer, celle de la création de ce fichier.
    J’ai essayé de passer par BuiltinDocumentProperty, mais la date renvoyée est celle du fichier original, soit la date de création du fichier modèle.

    Finalement ma solution est une macro appelée par un bouton :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Sub Recup_Date_Creation()
     
    Dim date_crea As Date
    Dim date_sauv As Date
     
    ‘Crea_Date est le nom de la cellule ou s’inscrit la date
    date_crea = [Crea_Date]
     
    date_sauv = FileDateTime(chemin)
     
    ‘sur le fichier-modele, la date est vide, il faut donc en inscrire une a la creation du fichier
    If date_crea = 0 Then
    date_crea = date_sauv
    End If
     
    ‘la date ne doit pas changer ni en sauvegardant le fichier, ni en le reouvrant
    If date_sauv < date_crea Then
    date_sauv = date_crea
    End If
     
     Range("e5").Select
      ActiveCell.FormulaR1C1 = date_sauv
     
    End Sub
    Je ne trouve pas cette solution satisfaisante car en cas de fausse manip, une mauvaise date sera sauvegardée.
    Je suis donc preneur de toutes les suggestions.
    Merci

  2. #2
    Expert éminent sénior
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Points : 11 274
    Points
    11 274

  3. #3
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 46
    Points
    46
    Par défaut
    Merci kiki29 de cette réponse rapide.
    J'ai effectivement trouvé mon bonheur dans ce tutoriel que j'avais tout d'abord mal exploité. J'en ai déduit ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    Private Sub Workbook_Open()
        Dim PathHoto As String
        Dim machin As String
        PathHoto = ThisWorkbook.path
        HoTo = ThisWorkbook.Name
        PathHoto = PathHoto & "\" & HoTo
        proprietesFichier_getFile PathHoto
    End Sub
    Sub proprietesFichier_getFile(Fichier As String)
        '
        'Nécessite d'activer la référence Microsoft Scripting Runtime
        '
        Dim Cible As Scripting.FileSystemObject
        Dim Valeur As Scripting.file
        Dim Date_Crea As Date
     
        Set Cible = CreateObject("Scripting.fileSystemObject")
        Set Valeur = Cible.GetFile(Fichier)
        Date_Crea = Valeur.DateCreated & Chr(10) & Chr(10)
     
        Range("e5").Select
        ActiveCell.FormulaR1C1 = Date_Crea
     
    End Sub
    Je l'ai mis en Auto Open, mais en fait d'habitude l'utilisateur enregistre l'ancien fichier sous un nouveau nom avant de travailler dessus.
    Comment pourrais-je automatiser la création de la cellule sur cette action ?
    Là, je cale
    Merci

  4. #4
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut une idée
    bonjour

    partant d'un model une simple macro appelé a l'open

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Sub creation_fichier()
    Application.DisplayAlerts = False
     
    Dim chemin As String
    Dim mois, jour, annee As Variant
    mois = Format(Now, "mmmm")
    jour = Format(Now, "d")
    annee = Format(Now, "yyyy")
     
    chemin = "C:\Users\Patrick\Desktop\fichier cré le " & jour & mois & annee & ".xls"
        Cells(1, 1).FormulaR1C1 = "=TODAY()"
        Cells(1, 1).Copy
        Cells(1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
            :=False, Transpose:=False
           Application.CutCopyMode = False
    ActiveWorkbook.SaveAs Filename:=chemin, FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False
     
     
     
     
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  5. #5
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Cells(1, 1).FormulaR1C1 = "=TODAY()"     
    Cells(1, 1).Copy     
    Cells(1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False        
    Application.CutCopyMode = False
    Font la même chose, non?
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  6. #6
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    bonjour mercatog

    c'est parce que je voulais me servir des variables pour etablir le nom de destination

    sinon une autre solution toute simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
     
    Sub truc()
    Application.DisplayAlerts = False
     
    Dim madate As String
    Dim chemin As String
    madate = Replace(Date, "/", "-")' j'evite les simbole dans le nom de destination
    chemin = "C:\Users\Patrick\Desktop\fichier cré le "
    Cells(1, 1) = Date
    ActiveWorkbook.SaveAs Filename:=chemin & madate & ".xls", FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False
    End Sub
     
    la quelle préfere tu??
     
     
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  7. #7
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour Patrick
    Personnellement, je préfère
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim madate As String
    Dim chemin As String
    madate =format(Date,"dd-mm-yyyy")
    '.....
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  8. #8
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    oui daccord

    ca donnerait ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Sub truc3()
    Application.DisplayAlerts = False
     
    Dim madate As String
    Dim chemin As String
    
    madate = Format(Date, "dd-mm-yyyy")
    'a la place de 
    'madate = Replace(Date, "/", "-")' j'evite les simbole dans le nom de destination
    
     chemin = "C:\Users\Patrick\Desktop\fichier cré le "
    Cells(1, 1) = Date
    ActiveWorkbook.SaveAs Filename:=chemin & madate & ".xls", FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False
    End Sub
    oui il me semble que la reduction du code est a son maximum la

    avec ca si il a pas sa solution !! il ne laura plus
    on peu cliquer resolu a ca place
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  9. #9
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Pas encore.
    Tu testes tes codes Patrick? parce que manque un "\" à Chemin ou bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Filename:=chemin & "\" & madate
    Encore, je me méfie toujours du ActiveWorkbook, Activesheet, Plages sans parents dans mes codes.
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    ah

    non!! il ne manque rien c'est toi qui n'a pas bien regardé
    le nom du fichier final s'appelle( "fichier cré le " et la date obtenue)
    exemple :

    "fichier cré le 25-05-2011"
    tralalalalere


    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #11
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Effectivement. désolé.
    Pour le Activemachin, je maintien mon point de vue.
    Cordialement.
    J'utilise toujours le point comme séparateur décimal dans mes tests.

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    rien de grave

    et oui je teste mes codes j'ai un fichier excel "essai macro diverses "constament ouvert il me sert a coucher mes idées a tout moment
    dans un module pour ne pas oublier et pouvoir m'en reservir


    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #13
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 46
    Points
    46
    Par défaut
    Merci de votre attention et de vous pencher ainsi sur mon cas.
    La méthode de sauvegarde automatique sur un nom généré par la date est intéressante mais ce n'est pas ce que je cherche.

    L’utilisateur est amené á ouvrir ses anciens fichiers, les modifier éventuellement et les sauvegarder et il ne faut pas qu'un nouveau fichier soit généré á chaque réouverture.

    Ce que je voulais c’est que la date de creation du fichier puisse s’inscrire au moment de la sauvegarde, sans avoir á appuyer sur un bouton.

    Je ne sais même pas si c'est possible !!

    En fait, je pense que je vais utiliser votre idée

    par contre, il faut que je travaille sur le nom du fichier pour que ca puisse coller.

    Merci beaucoup

  14. #14
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut
    bonjour


    hop!!!op!op! arrete tout!!!! je suis parti sue une bonne idée mais je suis un beuh! j'ai oublié un truc important

    il manque quelque chose au reste de la macro
    en fait a chaque fois que tu va ouvrir le fichier ainsi créé il va se recréé indefiniment

    je suis trop bete j'ai pensé a ca avant de me coucher

    et mercatog ne me la pas fait remarquer
    il faut ajouter a la fin de la macro la suppression des macros sinon sa va etre trop drole

    allez on recommence
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    Sub truc3()
    Application.DisplayAlerts = False
     
    Dim madate As String
    Dim chemin As String
    Dim VbComp As VBComponent
    madate = Format(Date, "dd-mm-yyyy")
    'a la place de 
    'madate = Replace(Date, "/", "-")' j'evite les simbole dans le nom de destination
     
     chemin = "C:\Users\Patrick\Desktop\fichier cré le "
    Cells(1, 1) = Date
    ActiveWorkbook.SaveAs Filename:=chemin & madate & ".xls", FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False
    ' a partir de la on va supprimer les macros pour que ca ne se repete pas 
    For Each VbComp In ActiveWorkbook.VBProject.VBComponents
    Select Case VbComp.Type
    Case 1 To 3
    ActiveWorkbook.VBProject.VBComponents.Remove VbComp
    Case Else
    With VbComp.CodeModule
    .DeleteLines 1, .CountOfLines
    End With
    End Select
    Next VbComp
    'Sauvegarde les modifications
    ActiveWorkbook.Save
    End Sub
    voila maintenant on respire

    derniere precision:
    il faut actuver la reference:MicrosoftVisual Basic for application extensibility x.x sinon ca ne marche pas
    au plaisir

    puré
    on est loin de l'idée de départ

    effectivement si le fichier doit changer de nom (par rapport a la date de modif) oublie mon dernier post

    c'etait justement pour evité ca que j'avait ajouté la suppression des macros

    mais tu risque de te trouver avec des tas de fichiers est ce utile de garder le precedant ???
    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  15. #15
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par Stutak Voir le message
    d'habitude l'utilisateur enregistre l'ancien fichier sous un nouveau nom avant de travailler dessus.
    Comment pourrais-je automatiser la création de la cellule sur cette action ?
    Là, je cale
    Merci
    Tu ne pourrais pas faire un truc du style
    • mémoriser le chemin et le nom du fichier dans une cellule
    • vérifier à l'ouverture du fichier si son chemin et son nom correspondent au contenu de la cellule
    • si c'est différent, on insère la date actuelle et on actualise la cellule avec le nouveau chemin et/ou nom
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  16. #16
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    bonjour fring

    pourquoi faire cette vérification puisque a chaque ouverture le nom doit changer si j ai bien compris

    puisque selon mon exemple le nom de sortie ="zzzzz" & la date

    de toute facon si le fichier est ouvert 20 fois par jour il le fera 20 fois

    mais c'est vrai que je ne connais pas le fichier je ne sais pas ce qu'il y a dedans

    a moins de concidérer que dans ce fichier on ajoute regulierement des lignes ,des objets ou je ne sais quoi la macro est sufisante

    mais ca n'est plus a l'open qu'il faut l'appeler mais a la fermeture


    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  17. #17
    Membre du Club
    Inscrit en
    Février 2006
    Messages
    57
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 57
    Points : 46
    Points
    46
    Par défaut
    Tout d'abord merci à tous les intervenants !

    A l'origine, les utilisateurs ouvraient le dernier fichier en date, le sauvegardaient à la date du jour et je voulais que la date de sauvegarde s'insère.
    Bon

    Avec les idées de Patricktoulon et Mercatog, j'ai gardé l'idée de créer un fichier du jour à partir d'un fichier modèle en automatisant la création.

    Donc maintenant l'utilisateur ouvre le fichier modèle qui lui génère le fichier du jour. La disparition des macros sur le fichier ainsi créé permet de le réouvrir à l'infini sans craindre de perdre les données.

    je vais juste rajouter une fenêtre pour le cas où le fichier du jour a déja été créé et éviter une re-création qui effacerait les données antérieures.

    Juste une précision pour ceux qui voudraient utiliser l'effacement de fichier, il faut aller dans Outils/Macro/Sécurité puis dans l'onglet Editeur , aller cocher dans l'onglet Editeurs approuvés la case Faire confiance au projet Visual BAsic. Sinon l'effacement bloque avec l'erreur 1004.

    Donc pour moi, résolu et encore merci

  18. #18
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    bonjour

    pour la verification si le fichier du jour a été créé
    tu pourrais

    utiliser la methode fichier existe dans la faq juste au debut de la macro

    et voila servis sur un plateau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
     
    Sub truc3()
    Dim madate As String
    Dim chemin As String
    Dim model As String
    madate = Format(Date, "dd-mm-yyyy")
    chemin = "C:\Users\Patrick\Desktop\fichier cré le "
    model = ThisWorkbook.Name
    If FichierExiste(chemin & madate & ".xls") = False Then
    Application.DisplayAlerts = False
    Cells(1, 1) = Date
    ActiveWorkbook.SaveAs Filename:=chemin & madate & ".xls", FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False
    For Each VbComp In ActiveWorkbook.VBProject.VBComponents
    Select Case VbComp.Type
    Case 1 To 3
    ActiveWorkbook.VBProject.VBComponents.Remove VbComp
    Case Else
    With VbComp.CodeModule
    .DeleteLines 1, .CountOfLines
    End With
    End Select
    Next VbComp
    'Sauvegarde les modifications
    ActiveWorkbook.Save
    Else
    'si il existe on ouvre le fichier du jour
    Workbooks.Open chemin & madate & ".xls"
    Window(model).Close
    End Sub
    comme sa si tu ouvre le model et que la sauvegarde a été faite ce meme jour ca ne le fait pas sa ouvre le fichier du jour

    bon je n'ai pas essayeé la macro mais sa devrais marcher

    maintenant RESOLU !!!!

    aun plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  19. #19
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 073
    Points
    12 073
    Billets dans le blog
    8
    Par défaut re
    bonjour stutack
    tu ouvre le fichier model
    il capte la date du jour
    il en fait le sufixe du nom
    si un fichier existe il l'ouvre et model se ferme
    sinon
    il se sauvegarde avec le nouveau nom
    supprime les macros
    se resauve pour ne plus avoir les macros diffinitivement
    voila
    apres verification le code c'est ca:

    Dans l'open du classeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Private Sub Workbook_Open()
    creation_ou_ouverture_fichier
     
    End Sub
    et dans un module standard ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
     
    Function FichierExiste(NomFichier As String) As Boolean
        FichierExiste = Dir(NomFichier) <> "" And NomFichier <> ""
    End Function
     
     
    Sub creation_ou_ouverture_fichier()
    Application.DisplayAlerts = False
    Dim madate As String
    Dim chemin As String
    Dim model As String
     
    madate = Format(Date, "dd-mm-yyyy")
    chemin = "C:\Users\Patrick\Desktop\fichier cré le "
    model = ThisWorkbook.Name
    If FichierExiste(chemin & madate & ".xls") = False Then
    Application.DisplayAlerts = False
    Cells(1, 1) = Date
    ThisWorkbook.SaveAs Filename:=chemin & madate & ".xls", FileFormat:=xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False, _
            CreateBackup:=False
     
    enleve_code
    Else
    'si il existe on ouvre le fichier du jour
    Workbooks.Open chemin & madate & ".xls"
     
    End If
    End Sub
     
    Sub enleve_code()
     
     
    Dim VbComp As VBComponent
     
       For Each VbComp In ActiveWorkbook.VBProject.VBComponents
    Select Case VbComp.Type
    Case 1 To 3
    ActiveWorkbook.VBProject.VBComponents.Remove VbComp
    Case Else
    With VbComp.CodeModule
    .DeleteLines 1, .CountOfLines
    End With
    End Select
    Next VbComp
    'Sauvegarde les modifications
    ActiveWorkbook.Save
    End Sub
    j'ai tester ,retester,reretester ca fonctionne


    maintenant il m'est venu un eclair de lucidité et je me suis poser une question

    celleci:
    et si il n'y avais pas que celles la de macros
    d'autre qu'il servirait a l'exploitation du fichier par exemple( puisque tu a parler de ajouter une fenetre)

    et bien la reponse et toute simple

    au lieu de tester si le fichier existe
    le test serai esceque le nom du fichier actif est "fichier cré le et la date obtenue

    exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if thisworkbook.name="fichier cré le" & madate &".xls" then exit sub
    et la partie qui supprime les macros tu l'enleve son appel aussi

    comme ca meme si la macro est toujour la le fichier du jour ne sera pas réenregistré et les données ne seront plus perdues


    allez au plaisir
    voila plus besoins de ajouter de fenetre ou quoi que se soi
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/11/2007, 22h02
  2. Impossible de copier la date de création du fichier source
    Par azerazerazer dans le forum Windows XP
    Réponses: 4
    Dernier message: 28/11/2007, 21h13
  3. Recopie de fichiers :date de création du fichier perdue
    Par mugwump dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 30/08/2007, 17h17
  4. Problème de précision sur date de création des fichiers
    Par Bruno Orsier dans le forum Delphi
    Réponses: 2
    Dernier message: 07/06/2007, 15h26
  5. Date de création de fichiers
    Par bov13 dans le forum VBScript
    Réponses: 27
    Dernier message: 19/09/2006, 11h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo