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

Excel Discussion :

Programmer un enregistrement hebdomadaire en VBA ? [XL-2013]


Sujet :

Excel

  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Par défaut Programmer un enregistrement hebdomadaire en VBA ?
    Bonjour à tous,
    j’aimerai savoir comment programmer un enregistrement hebdomadaire en VBA, par exemple pour que mon fichier Excel s’enregistre dans « C:\Users\DimitriALL\Suppervion CONCASSEUR » tous les vendredis à 18H.
    Et si possible qu’il se nomme
    « Semaine 23 – 06/06/14 – 18H00.xlsm »
    « Semaine 24 – 13/06/14 – 18H00.xlsm »

    Et qu’une fois l’enregistrement effectué que mon fichier Excel se remette à zéros.

    Pour le moment je n’arrive qu’à enregistrer mon fichier Excel en cliquant sur un bouton sans savoir intégrer le numéro de la semaine dans le titre. Ce qui au final ne correspond en rien à mes attentes, puisque rien est automatique et que rien ne se remet à zéros.

    Merci à tous !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Sub CommandButton1_Click() 'copie sauvegarde classeur
    Dim nom As String
        nom = Rows(r2) & "SEMAINE" & Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & Hour(Time) & "H" & Minute(Time) & "MIN" & ".xlsm"
        ActiveWorkbook.SaveCopyAs "C:\Users\ALLARD\Suppervion CONCASSEUR" & "\" & nom
        rep = MsgBox("Votre fichier EXCEL est sauvegardé dans vos documents sous le nom : " & nom, vbYes + vbInformation, "Copie sauvegarde classeur")
    End Sub

  2. #2
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Premier problème:

    Pour que ta macro soit utilisable vendredi à 18 h, il faut qu'Excel et le classeur soient ouverts, vendredi à 18 h. Ou même un peu avant par mesure de prudence. Personnellement, je suis allergique au $%?&*())+%$/"|*&?%$"X*()_+&?%$/"! de planificateur de tâches, mais il est sans doute possible de patenter quelque chose avec cela.

    Pour que la macro se déclenche à l'ouverture du classeur, il faut utiliser l'événement Workbook_open dans le module d'événements du classeur.

    As-tu exécuté ton code au pas à pas avec un espion sur le nom pour voir quel nom sortait au bout de la ligne ? D'autre part, rien n'empêcher d'utiliser "nom =" plusieurs fois à la suite, en raboutant une petite partie à la fois, pour trouver plus facilement la source de l'erreur.

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par DimitriALL Voir le message
    j’aimerai savoir comment programmer un enregistrement hebdomadaire en VBA
    Il faudrait que tu expliques un peu plus le contexte.
    Est-ce que ça signifie que ton Excel est ouvert en permanence jour et nuit et que ses données sont modifiées sur un seul poste soit par un processus automatique, soit par des utilisateurs n'importe quand dans la semaine mais que ces données ne sont sauvegarder qu'une seule fois ?

    Ou bien est-ce que tu veux copier un fichier excel sous un autre nom pour en faire une sauvegarde "historique" ?

    Dans le second cas, il serait bien plus simple de t'orienter vers une combinaison VBScript + planificateur de tâches.

  4. #4
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Par défaut
    Bonjour clementmarcotte,

    Normalement oui mon fichier excel sera ouvert le vendredi à 18H, sinon connaissez-vous un moyen de l'enregistrer même si il est fermer ?
    Avec "Workbook_open" il enregistrera à chaque démarrage du fichier ? Or j'aimerai l'enregistrer qu'a chaque fin de semaine.
    Je débute tout juste en VBA donc pour "As-tu exécuté ton code au pas à pas avec un espion sur le nom pour voir quel nom sortait au bout de la ligne " je ne sais pas du tout comment faire.
    Pour le nom, je ne vois pas ce que vous voulez dire. Sinon est-il possible d'utiliser une cellule pour nommé mon fichier ? Exemple si en cellule A1 j'ai "=NO.SEMAINE(DATE(2014;6;2);(15))" est t-il possible de mettre quelque chose comme "nom = Rows(a1)" ?

    Bonjour Menhir,

    Normalement le Excel est ouvert à chaque démarrage de l'ordinateur le matin (vers 6h) et s’arrête au soir un peu avant 20H. Ces données sont en effet modifiés par un seul poste (l'automate) qui écrit des données dans un ficher .CSV sur une carte SD, que l'on récupère en wifi, puis dans le fichier Excel par processus automatique. Personne n'ajoute de données, il pourrai presque être protéger en écriture puisque qu'il ne sert uniquement à lire un historique et un graphique. SUPERVISSEUR CONCASSEUR.xlsx

    L'onglet "Accueil" est un site internet qui nous indique l’état de l'automate.
    L'onglet "DonneesAPI" sera caché, c'est dans cette onglet que sont envoyé les données de l'automate.
    L'onglet "Historique" ajoute un ligne à chaque fois qu'un défaut apparaît (un arrêt d'urgence par exemple cellule G1 de la feuille "DonneesAPI"
    L'onglet "Bilan par zone" range tous les arrêt du système par zone afin d'établir une futur MTBF (Moyenne des Temps de Bon Fonctionnement) de chaque zone. Afin de savoir laquelle est la plus pénalisante, et d'établir un plan de maintenance sur celle ci.

    Et c'est parfaitement ça je veux copier un fichier excel sous un autre nom pour en faire une sauvegarde "historique" chaque semaine et "remettre le fichier excel d'origine à zéros". Et au bout des 52 semaines de l'année avoir avoir 52 fichiers dans « C:\Users\DimitriALL\Suppervion CONCASSEUR » nommé
    « Semaine 23 – 06/06/14 – 18H00.xlsm »
    « Semaine 24 – 13/06/14 – 18H00.xlsm »

  5. #5
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par DimitriALL Voir le message
    connaissez-vous un moyen de l'enregistrer même si il est fermer ?
    Bin oui : le copier, tout simplement.
    Et pour ça, comme je le disais, VBScript est plus adapté qu'une macro VBA sous Excel.
    Pour info, pour faire ça, tu peux télécharger Visual Basic Express gratuitement sur le site Microsoft.
    http://msdn.microsoft.com/fr-fr/express/aa718406
    Ce n'est pas un outil que je connais suffisamment pour pouvoir t'aider (il y a une section spécifique sur ce forum) mais connaissant le VBA Excel je pense que ça doit pouvoir se faire en trois ou quatre ligne.

    Normalement le Excel est ouvert à chaque démarrage de l'ordinateur le matin (vers 6h) et s’arrête au soir un peu avant 20H.
    Ce qui signifie donc que ton fichier est enregistré au moins une fois pas jour.
    Je suppose que le plus simple, est donc de le sauvegarder avec un nom incluant le numéro de semaine.

    A moins que tu veuilles le sauvegarder toujours sous le même nom et en créer une copie dont le nom inclut le numéro de semaine.
    Mais, dans ce cas, il faut que tu penses "copie" et non "enregistrement" (voir ci-dessus).

  6. #6
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Par défaut
    Très bien je vais donc essayer avec Visual Basic Express merci !

    Ce qui signifie donc que ton fichier est enregistré au moins une fois pas jour.
    Non car même si le excel est fermé les données sont dans l'automate, le excel ne s'actualise que toute les 1min donc sans enregistrer tout ce qui s'est passé la nuit apparaîtra au matin des la première actualisation

    A moins que tu veuilles le sauvegarder toujours sous le même nom et en créer une copie dont le nom inclut le numéro de semaine.
    Oui c'est ce que j'aimerai faire. Dans ce cas une copie par semaine.

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par DimitriALL Voir le message
    Non car même si le excel est fermé les données sont dans l'automate, le excel ne s'actualise que toute les 1min donc sans enregistrer tout ce qui s'est passé la nuit apparaîtra au matin des la première actualisation
    Parce que tu dis que le soir le poste est éteint. Donc soit tu quitte Excel sans sauvegarder, soit tu sauvegarde.
    Si, comme je le crois, on est dans le second cas, ça signifie que le fichier est sauvegardé au moins une fois pas jour.

  8. #8
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Par défaut
    Non non je vous assure que je ne sauvegarde pas, c'est l'automate qui envoi les valeurs. Le fichier excel ne sert que de liaison.

  9. #9
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Autrement dit, quand tu éteints le poste sur lequel se trouve Excel, le soir, et qu'il te demande "Voulez-vous enregistrer ?", tu réponds "non" ?

  10. #10
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Par défaut
    Oui tout à fait ! De toute façon il y à rien à enregistrer il ne sert que de lecture.

  11. #11
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Par défaut
    Bonjour,

    Solution 1 :

    Comme Menhir m'a dit "VBScript est plus adapté qu'une macro VBA sous Excel" pour réalisé ce dont j'avais besoin, j'ai donc essai de cette manière:
    J'ai créer un fichier texte nommé copie.bat avec ce code à l'intérieur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Robocopy.exe "C:\Users\ALLARD\Documents\MEGA\Stage\PROJET SOUS EXCEL" "C:\Users\ALLARD\Suppervision CONCASSEUR" /E /Z /DCOPY:T /CopyALL /TIMFIX /R:0 /W:0 /XD "System Volume Information"  /XF "pagefile.sys" /LOG+:"C:\RobocopyLogFile.txt" /TEE /NP
    Ensuite avec le planification de taches j'exécute ce programme tout les vendredi. Avec cette solution j'arrive maintenant à copier mon fichier et surtout à rendre cette copie automatique, tout les vendredi. Sauf que je ne sais pas renommer le fichier copié alors chaque semaine il écrase le fichier copié la semaine précédente puisqu'il porte le même nom.

    Solution 2

    Avec excel en VBA je parvenais à copie mon fichier dans le répertoire voulus et surtout à le renommé en fonction de la date et de l'heure. Ainsi chaque semaine j'avais un fichier supplémentaire. Seul soucis et que je ne parvenais pas à automatiser ce programme, je devais appuyer sur un boutons dans mon fichier pour exécuter cette macro.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Public Sub CommandButton1_Click() 'copie sauvegarde classeur
    Dim nom As String
        nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & Hour(Time) & "H" & Minute(Time) & "MIN" & ".xlsm"
        ActiveWorkbook.SaveCopyAs "C:\Users\ALLARD\Suppervion CONCASSEUR" & "\" & nom
        rep = MsgBox("Votre fichier EXCEL est sauvegardée dans vos documents sous le nom : " & nom, vbYes + vbInformation, "Copie sauvegarde classeur")
    End Sub
    MERCI

  12. #12
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par DimitriALL Voir le message
    Comme Menhir m'a dit "VBScript est plus adapté qu'une macro VBA sous Excel"
    A cette époque, je pensais que ton fichier était régulièrement enregistré et qu'il suffirait de faire une copie de fichier. S'il n'est pas enregistré mais que Excel reste ouvert toute la journée, je te conseille plutôt de créer deux macros en VBA Excel.

    La première, à placer dans le "ThisWorkbook" de ton fichier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
       Application.OnTime TimeValue("18:00:00"),"Sauve"
    End Sub
    La seconde dans un module de ton classeur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Sauve()
       If WeekDay(Now)=vbFriday then
          ThisWorkbook.SaveCopyAs "C:\Users\ALLARD\Suppervion CONCASSEUR\Sauve_" & Year(Now) & "_" & WeekNum(Now) & ".XLS"
       End If
       Application.Wait "18:00:01"
       Application.OnTime TimeValue("18:00:00"),"Sauve"
    End Sub
    Le seul truc qui me gène, c'est que SaveCopyAs n'est pas capable de changer le type de fichier. Il aurait été mieux de sauvegarder au format XLSX pour que la macro elle-même ne soit pas dans la copie, vu qu'elle s'active à l'ouverture.

    Modifier l'extension "XLS" à la fin de la commande SaveAs en fonction du type du fichier.

  13. #13
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Par défaut
    Bonjour Menhir, merci de ta réponse !!

    Le premier code ne pose aucun problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
       Application.OnTime TimeValue("18:00:00"),"Sauve"
    End Sub
    Le deuxième code en revanche me dit "Erreur de compilation: Sub ou Function non définie." Et il me surligne "WeekNum(Now)" en jauge. Désolé c'est sans doute une petite bêtise mais je débute vraiment en VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub Sauve()
       If Weekday(Now) = vbFriday Then
          ThisWorkbook.SaveCopyAs "C:\Users\ALLARD\Suppervision CONCASSEUR\Sauve_" & Year(Now) & "_" & WeekNum(Now) & ".XLS"
       End If
       Application.Wait "18:00:01"
       Application.OnTime TimeValue("18:00:00"), "Sauve"
    End Sub
    MERCI

  14. #14
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Ca donne le numéro de semaine.
    Ca fait partie des fonctions Excel que VBA sait utiliser. Donc, je pense qu'il fallait la précéder de "Application.WorksheetFunction."

    C'est plus simple de la remplacer par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Month(Now) & "_" & Day(Now)
    Ca donnera un nom de fichier sous la forme Sauve_XX_YY_ZZ , XX étant l'année, YY le mois et ZZ le jour de la sauvegarde.

    Citation Envoyé par DimitriALL Voir le message
    Désolé c'est sans doute une petite bêtise mais je débute vraiment en VBA
    Je vais te donner une petite astuce qui va permettre de progresser.
    Dans l'éditeur Visual Basic, tu vois le joli point interrogation dans un rond bleu qui trone complètement à droite de ta barre d'icones ?
    Si tu cliques dessus, tu accèdes à l'aides VBA et à tout un monde de connaissances.

    Parce si chaque fois que tu as une fonction de travers tu demandes qu'on de l'aide pour débuguer, on n'est pas rendu.

  15. #15
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 678
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 678
    Par défaut
    Hello,

    2 tutos qui pourraient te servir :
    http://jpcheck.developpez.com/tutori...ous-windows-7/
    http://jpcheck.developpez.com/tutori...ge-parametres/

    ca t'évitera d'avoir un fichier ouvert non stop sur ta machine
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  16. #16
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Par défaut
    Merci jpcheck je regarde tout ça de suite.

    Menhir,
    Ca donnera un nom de fichier sous la forme Sauve_XX_YY_ZZ , XX étant l'année, YY le mois et ZZ le jour de la sauvegarde
    Oui c'est parfaitement ce que je voulais, j'avais eu ce résultat un moment. et puis j'ai du ajouter à la place de "Sauve" "semaine"_ZZ avec le numéros de semaine corespondant. Et ça je ne sais pas le faire. je sais afficher le numéro de la semaine dans une cellule excel, mais je ne sais pas comment aller chercher cette cellule pour la mettre dans le code.
    Je sais pas si c'est clair je sais pas trop comment vous expliquez.

  17. #17
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par DimitriALL Voir le message
    le numéros de semaine corespondant. Et ça je ne sais pas le faire
    Comme je l'ai dit avant, pour utiliser une fonction Excel dans VBA, il faut la faire précéder de
    "Application.WorksheetFunction."
    Problème supplémentaire : VBA ne comprend que la version anglaise des fonction, ce qui n'est pas toujours facile à retrouver.
    Par exemple, il ne faut pas utiliser NOSEMAINE mais WeekNum.

    je sais afficher le numéro de la semaine dans une cellule excel, mais je ne sais pas comment aller chercher cette cellule pour la mettre dans le code.
    Regarde la propriété "Value" de l'objet "Range" dans l'aide VBA.
    Par exemple Range("B5").Value renvoie la valeur contenue dans la cellule B5.
    Personnellement, pour une seule cellule, je préfère utiliser l'objet Cells plutôt que Range.

  18. #18
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Par défaut
    Menhir,
    Dans l'éditeur Visual Basic, tu vois le joli point interrogation dans un rond bleu qui trone complètement à droite de ta barre d’icônes ?
    Si tu cliques dessus, tu accèdes à l'aides VBA et à tout un monde de connaissances.
    MERCI !!!! Je ne l'avais jamais vue je met toujours la fenêtre d'un coté de l'écran alors il n’apparaissait pas c'est vrai que c'est cette aide est vraiment bien faite. Je sais maintenant insérer le contenue d'une cellule dans un code.

    Comme je l'ai dit avant, pour utiliser une fonction Excel dans VBA, il faut la faire précéder de
    "Application.WorksheetFunction."
    Maintenant que j'ai rajouté "Application.WorksheetFunction." il ne me souligne plus "WeekNum" en jaune, mais l'enregistrement ne fonctionne toujours pas, mais je vais bientôt trouver je message d'erreur n'ai plus le même.

    Pour le moment j'ai ça dans le "ThisWorkbook"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Private Sub Workbook_Open()
    Application.OnTime TimeValue("17:43:00"), "Sauve"
    End Sub
    Et dans Feuil3 j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub Sauve()
       Application.WorksheetFunction.WeekNum (Date)
          If Weekday(Now) = vbTuesday Then
          ThisWorkbook.SaveCopyAs "C:\Users\Vince\Documents\Sauve_" & Year(Now) & "_" & WeekNum(Now) & ".XLSM"
       End If
       Application.Wait "17:43:01"
       Application.OnTime TimeValue("17:43:00"), "Sauve"
    End Sub
    (J'ai mis mardi, et 17h43 correspond à mon dernier test)

    J'enverrai le nouveau code dés que ça fonctionne si ça peut aider. sinon vendredi je passe cette conversation en résolu (mon stage ce termine vendredi)
    Images attachées Images attachées  

  19. #19
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonjour,

    a mon avis, tu devrais mettre ta procédure "Sauve" dans un module standard
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  20. #20
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2014
    Messages : 16
    Par défaut
    Merci Dom,

    J'essai tout de suite et vous dit quoi.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Programme pour enregistrer, fermer et ouvrir Delphi
    Par pepito62 dans le forum Langage
    Réponses: 4
    Dernier message: 23/10/2007, 21h27
  2. [VBA-E] probleme enregistrement fichier pour VBA excel
    Par hamster. dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 10/04/2007, 19h52
  3. Probleme d'enregistrement sur Macro/VBA de Excel
    Par life is magic dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 28/11/2005, 17h23
  4. Valider l'enregistrement en cours VBA
    Par avril.stephane dans le forum Access
    Réponses: 3
    Dernier message: 24/08/2005, 15h13

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