VBA
Hors ligneJah_haile_selassie Le 30/03/2009 à 17:08 Profil de Jah_haile_selassie Configuration de Jah_haile_selassie

Refléchi
Bonsoir,
J'ai besoin d'un script en vba qui m'enregistre un fichier sur excel au démarrage de excel. En faite la sauvegarde doit se faire automatique en intégrant le nom du fichier et la dateCourante et l'heureCourante. Je ne sais pas comment le faire mais on me dit qu'avec les macros c'est possible mais le ic c'est que je n'ai aucune notions sur les macros.

Merci d'avance a toute les bonnes volontés
--
« La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information. »
Hors ligneMarculinos Le 30/03/2009 à 19:34 Profil de Marculinos Configuration de Marculinos

Viconaute Modérateur
Hello,

J'ai pas tout saisi. Tu veux enregistrer un fichier alors que tu viens juste de démarrer excel et donc que tu n'as pas encore eu le temps de faire ou modifier quoi que ce soit?

Tu peux nous détailler le besoin de façon un peu plus claire, s'il te plaît?

Merci

@+
Hors ligneJah_haile_selassie Le 30/03/2009 à 23:19 Profil de Jah_haile_selassie Configuration de Jah_haile_selassie

Refléchi
Bonsoir,
Oui c'est vrai que je suis allé un peu trop vite dans mon précédent post. Le fichier ne s'enregistrer pas au démarrage. Le script n'enregistrer pas au démarrage mais en plutôt enregistre automatiquement le fichier. Pour éviter d'enregistrer manuellement . Le script doit me permettre d'enregistrer mon fichier excel sur un espace de mon choix en concatenant le nom du fichier , la dateCourante et l'heureCourante. Je sais que c'est pas très facile a comprendre comme ça mais c'est un travail que je dois faire tout au long de mon stage.

L'idée général c'est que je dois trouver un script avec les macro de excel pour enregistrer un fichier excel avec le nom du fichier, la date courante et l'heure courante.

Merci a toi  Marculinos de t'être penché sur mon cas  
--
« La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information. »
Hors ligneMarculinos Le 31/03/2009 à 00:00 Profil de Marculinos Configuration de Marculinos

Viconaute Modérateur
Bon, j'ai trouvé une macro pour le faire en manuel, pour commencer :

Tu crées un bouton et tu y associe le code suivant :



fname = "TEST - " & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & " - " & Hour(Time) & "H" & Minute(Time)

ActiveWorkbook.SaveAs Filename:=fname


Ce qui donne le nom de fichier suivant (par exemple) :

TEST - 30-3-2009 - 23H58.xls

@+
Hors ligneAtex Le 31/03/2009 à 01:10 Profil de Atex Configuration de Atex

APVS
Salut,

Je pense avoir compris que le fichier Excel doit se sauvegarder automatiquement toutes les 5 minutes sans avoir recours à une action manuelle de la part de l'utilisateur.

Ca existe les boucles en VBA ? Une macro peut-elle tourner en boucle tant que le fichier est ouvert ?...
Hors ligneJah_haile_selassie Le 31/03/2009 à 09:29 Profil de Jah_haile_selassie Configuration de Jah_haile_selassie

Refléchi
Bonjour,

Merci Marculinos,je vais tester ton bout de code. Oui Atex excel doit se sauvegarder toutes les heures.

Allé je vous tiens au courant. Merci encore


Je rajoute ceci pour Marculinos: (copie par tigène du nouveau topic, inutile; Jah_haile_selassie utilise le bouton d'édition = icône bloc-notes, stp)
N'y-t-il pas un chemin a fournir avant la délcaration de fname? Exemple: "U:\Sauvegarde temps réel\Macro"?

Sinon le code j'arrive pas à le faire fonctionner       Sûrement que je fait mal quelque chose .


Private Sub boutonTest_Click()

    ChDir "U:\Sauvegarde temps réel\Macro"

    ActiveWorkbook.SaveAs Filename = "TEST - " & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & " - " & Hour(Time) & "H" & Minute(Time)
    
    



  

    ActiveWorkbook.SaveAs Filename:=Filename

End Sub


Voici mon code et il y'a une erreur du type " erreur d'execution" et " erreur definie par l'application our par l'objet"

Désolé encore d'avoir créer un nouveau topic sur le même sujet j'ai pas eu le choix car j'ai rencontré une erreur flood (mon day d'erreur ) quand je voulue repondre alors j'étais le dernier a avoir poster sur le topic.(Les membres ne peuvent pas placer 2 posts à la suite en une journée pour limiter le flood)

Merci encore pour ça
--
« La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information. »
Hors ligneMarculinos Le 31/03/2009 à 16:50 Profil de Marculinos Configuration de Marculinos

Viconaute Modérateur
Dans la macro que j'ai créé, le fichier d'enregistre dans le même dossier que le fichier source qui a été ouvert.

La macro telle que je l'ai écrite fonctionne parfaitement.

Dans le cas d'un fichier à placer dans un dossier précis (Dossier essai du disque D pour l'exemple), la macro devient :


Private Sub CommandButton1_Click()

ChDir "D:\essai\"

fname = "TEST - " & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & " - " & Hour(Time) & "H" & Minute(Time)

ActiveWorkbook.SaveAs Filename:=fname

End Sub


@+

P.S : Les membres ne peuvent effectivement pas mettre 2 posts à suivre en moins de 24H. Pour ajouter des informations malgré tout, il suffit d'éditer le dernier post et de rajouter à la fin "EDIT :" puis d'ajouter les informations.
Hors ligneJah_haile_selassie Le 31/03/2009 à 17:04 Profil de Jah_haile_selassie Configuration de Jah_haile_selassie

Refléchi
Merci Marculinos, j'arrive a comprendre des trucs mais pas vite ou aussi vite     

Est-ce que tu peut m'indiquer comment le faire sans créer de bouton? Parceque si je crèe un bouton pour ça autant utiliser les boutons de excel(enregistrer||enregistrer sous)... Merci pour ton aide encore


[EDIT]

ça marché, j'ai pu créer mon 1er fichier!!!!    Mais j'ai toujours des erreurs à la fin de l'exécution ; ce pendant j'ai mon fichier écrit nom+date+heure!!!!   Merci Mille THANK and Jah bless U
--
« La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information. »
Hors ligneMarculinos Le 31/03/2009 à 17:24 Profil de Marculinos Configuration de Marculinos

Viconaute Modérateur
J'ai trouvé!

Dans Visual basic, il faut se placer sur Workbook (cadre vert de l'image ci-dessous), sélectionner Workbook dans le cadre rouge et choisir Open dans la liste des évenements (cadre bleu).



Il faut alors y coller la macro suivante :




debut:

Start = Timer
intervalle = 5

Do While Timer < Start + intervalle
        DoEvents    ' Donne le contrôle à d'autres processus.
Loop

ChDir "D:\essai\"

fname = "TEST - " & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & " - " & Hour(Time) & "H" & Minute(Time) & "m" & Second(Time) & "s"

ActiveWorkbook.SaveAs Filename:=fname

GoTo debut


La boucle de contrôle permanent laisse la possibilité de faire d'autres choses durant ce contrôle.

@+

J'ai oublié de préciser que l'intervalle de temps est ici de 5 secondes. pour allonger cette durée, il suffit d'indiquer une autre durés en secondes dans la ligne intervalle = 5
Hors ligneJah_haile_selassie Le 31/03/2009 à 17:28 Profil de Jah_haile_selassie Configuration de Jah_haile_selassie

Refléchi
L'erreur c'est : "ERREUR D'EXECUTION '9': l'indice n'appartient pas à la selection"  et cette ligne "Windows("Classeur1").Activate" est sous lignée en jaune. Mais mon fichier se crèe quand même.








[EDIT] Bonsoir c'est encore moi, premièrement je vous suis reconnaissant pour l'aidé apporté.  J'ai encore un souci, bon pas trop grand étant donnée que j'arrive deja a créer mon fichier comme je le souhaitais. Le seul souci de dernière minute c'est que mon maître de stage me demande de faire en sorte que la macro s'exécute au démarrage ou a l'ouverture du fichier excel contenant la macro!  J'ai fait ce :


Sub auto_open()
'
' auto_open Macro
' Macro enregistrée le 01/04/2009 par Gervais_Info2
'
' Touche de raccourci du clavier: Ctrl+Maj+B
'
    Sheets("Loterie").Select
debut:

Start = Timer
intervalle = 30

Do While Timer < Start + intervalle
        DoEvents
Loop
ChDir "U:\Sauvegarde temps réel\Macro"

fname = "Loterie -" & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & " - " & Hour(Time) & "H" & Minute(Time) & "m"
ActiveWorkbook.SaveAs Filename:=fname
GoTo debut
    Application.Goto Reference:="Loterie"
  
    

    
    
    Application.Goto Reference:="auto_open"
End Sub


et j'ai une erreur sur la ligne suivante:  Sheets("Loterie").Select! cette instruction me sert a selectionner la feuille en question alors (i can't understand euh i don't understand) Je comprends pas. Please, J'ai besoin d'un coup de pouce.   Merci d'avance


[EDIT]
--
« La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information. »
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels