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 :

Problème enregistrement de feuilles [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Femme Profil pro
    Apprentie ingénieure
    Inscrit en
    Avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprentie ingénieure
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2011
    Messages : 51
    Points : 49
    Points
    49
    Par défaut Problème enregistrement de feuilles
    Bonjour,

    Je suis actuellement en apprentissage et je ne connais strictement rien au VBA, j'essaie de m'y mettre difficilement par moi-même.

    J'ai un fichier sur lequel on désire enregistrer des feuilles dans un dossier, le problème est que la macro rentrée ne fait qu'un copier/coller de cette feuille, ce qui fait qu'à chaque clic, le fichier écrase l'ancien. Plutôt que de devoir déplacer tous les jours les feuilles et les renommer, j'aimerai savoir si je peux faire autrement? Comme utiliser SaveAs ou une macro archivage ?

    Étant donné que je ne connais rien, je ne comprend même pas la macro qui a été entrée dans le fichier

    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
    48
    Sub enregistrementFDS()
    '
     
    ' Macro24 Macro
    '
    Dim v_chemin As String
    Dim v_fichier As String
     
    Application.ScreenUpdating = False
     
    v_chemin = Sheets("TBO").Range("E16").Value
    v_fichier = Sheets(TBO").Range("E17").Value
     
    'Windows("FDS.xls").Activate
       Sheets("S").Select
        ChDir _
           v_chemin
        Workbooks.Open Filename:= _
             v_chemin & "\" & v_fichier
        Sheets.Add
        Windows("Fichier_A.xls").Activate
        Range("A5:AF5").Select
        Selection.Copy
        Windows(v_fichier).Activate
        ActiveSheet.Paste
        Rows("2:2").RowHeight = 58.5
        Rows("2:2").RowHeight = 75
        Columns("A:U").Select
        Selection.ColumnWidth = 6.29
        ActiveWindow.LargeScroll ToRight:=-1
        ActiveWindow.ScrollColumn = 2
        ActiveWindow.ScrollColumn = 3
        Selection.ColumnWidth = 4.43
        Selection.ColumnWidth = 6.14
        ActiveWindow.ScrollColumn = 2
        ActiveWindow.ScrollColumn = 1
        Windows("Fichier_A.xls").Activate
        Range("A6:AG1000").Select
        Application.CutCopyMode = False
        Selection.Cut
        Windows(v_fichier).Activate
        Range("A3").Select
        ActiveSheet.Paste
        ActiveWorkbook.Save
        ActiveWindow.Close
     
        Application.ScreenUpdating = True
    End Sub

    Merci d'avance !

  2. #2
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut copie de feuilles
    Bonjour Edaine; Bonjour le Forum,

    Bienvenue, Edaine.

    Je pense que la macro citée provient de l'enregistreur.

    Mais avant d'aller plus loin,

    Que veux-tu faire exactement.

    Quelle(s) feuille(s) veux-tu sauvegarder?
    Dans unfichier unique ou des fichiers séparés ?
    Comment se nomment ces feuilles? Quel nom veux-tu donner ?

    En un mot, apporte toutes les précisions afin d'envisager une proposition de code; J'ai quoi? Je veux aller où? Sous quelle forme?

    Ensuite, nous étudierons pas à pas le code qui convient.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  3. #3
    Membre du Club
    Femme Profil pro
    Apprentie ingénieure
    Inscrit en
    Avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprentie ingénieure
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2011
    Messages : 51
    Points : 49
    Points
    49
    Par défaut
    Merci de me répondre si vite !

    Le fichier sert en faite à enregistrer à chaque fin de poste une feuille "FDS" dans un dossier "Sauvegarde".

    Tous les jours le FDS enregistré la veille est écrasé par le nouveau,



    Je voudrai donc enregistrer ma feuille FDS tous les jours mais en la renommant par exemple FDS_Date dans un fichier à part. Et donc qu'au bout d'une semaine j'ai mes 6 feuilles FDS dans mon dossier.
    Mais comme je ne suis pas à l'origine de la macro citée, je ne sais pas toutes les options qu'elle prend en compte :s


    Je ne sais pas si je suis très claire.

    Merci d'avance !

  4. #4
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut enregistrement
    Edaine,

    Une première idée

    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
    Sub Macro1()
     
        'Copie de la feuille FDS dans un nouveau classeur
        Sheets("FDS").Copy
     
        'Choix du répertoire
        ChDir _
            "Sauvegarde"
     
        'Enregistrement incrémentée de la date du jour
        With ActiveWorkbook
                .SaveAs Filename:="FDS_" & Format(Date, "ddmmyy") & ".xls"
                .Close
        End With
     
    End Sub
    Reprends-bien ce début de code mot par mot, et reviens si nécessaire pour de plus amples précisions.

    A ta disposition.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  5. #5
    Membre du Club
    Femme Profil pro
    Apprentie ingénieure
    Inscrit en
    Avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprentie ingénieure
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2011
    Messages : 51
    Points : 49
    Points
    49
    Par défaut
    J'ai bien repris ton code,

    il marche très bien sauf que je n'arrive pas à faire qu'il enregistre mon fichier dans le dossier que je veux, quoique je mette il enregistre dans "Mes documents".

    Est-ce qu'il est possible d'intégrer le répertoire de destination dans la fonction SaveAs ?

  6. #6
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut enregistrement
    Edaine,

    Essaie

    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 Macro1()
     
        Application.ScreenUpdating = False
     
        'Copie de la feuille FDS dans un nouveau classeur
        Sheets("FDS").Copy
     
        'Choix du répertoire
        monrépertoire = "Sauvegarde"
     
        'Enregistrement incrémentée de la date du jour
        With ActiveWorkbook
                .SaveAs Filename:=monrépertoire & Application.PathSeparator & "FDS_" & Format(Date, "ddmmyy") & ".xls"
                .Close
        End With
     
    End Sub
    A adapter au niveau du répertoire.

    Pour être sûr de son adresse, tu peux
    - activer l'enregistreur de macro
    - ouvri un classeur quelconque dans un répertoire autre que "Sauvegarde"
    - enregistrer ce classeur dans le répertoire "Sauvegarde"
    - arrêter l'enregistrement de ta macro

    L'adresse bien identifiée de "Sauvegarde" figure dans le code de cette dernière macro.

    As-tu bien compris tous les éléments du code proposé? Sinon, n'hésite pas à revenir.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  7. #7
    Membre du Club
    Femme Profil pro
    Apprentie ingénieure
    Inscrit en
    Avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprentie ingénieure
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2011
    Messages : 51
    Points : 49
    Points
    49
    Par défaut
    J'ai ouvert un nouveau classeur et effectué la macro ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Sauvegarde()
    '
    ' Sauvegarde Macro
    ' Macro enregistrée le 26/04/2011 par 
    '
     
    '
        ChDir "S:\Publicag\projet d'agréage\Sauvegardes\Sauvegardes"
        ActiveWorkbook.SaveAs Filename:= _
            "S:\Publicag\projet d'agréage\Sauvegardes\Sauvegardes\Classeur1.xls", _
            FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
            ReadOnlyRecommended:=False, CreateBackup:=False
    End Sub
    Donc je reprend mon truc initial et ça donne :

    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
     
     
    Sub enregistrementFDS()
     
    Application.ScreenUpdating = False
     
     
        'Copie de la feuille FDS dans un nouveau classeur
        Sheets("FDS").Copy
     
      'Choix du répertoire
        monrépertoire = "S:\Publicag\projet d'agréage\Sauvegardes\Sauvegardes"
     
           'Enregistrement incrémentée de la date du jour
        With ActiveWorkbook
        .SaveAs Filename:=monrépertoire & Application.PathSeparator & "FDS_" & Format(Date, "ddmmyy") & ".xls"
        .Close
        End With
     
     
    End Sub

    Je dois bien juste remplacer par le bon répertoire ?

    Géniaaaaaaaaaaaaaaaaaal

    Ca marche *_*


    Merci merci merci


    Fiou !

  8. #8
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut enregistremnt
    Edaine,

    Je te donne la réponse OUI, c'est bien cela.

    Au demeurant, il aurait été plus formateur que tu essaies, quitte à faire une erreur.

    D'autre part, tu auras remarqué que l'enregistreur te renvoie nombre d'instructions inutiles. A chaque emploi, il te faudra faire un tri, et ce notamment afin de purger ton code des "Select" qui n'apportent rien.

    Enfi, j'insiste, est-ce que toutes les lignes de code te sont désormais familières? Sinon, n'hésite pas à demander des précisions.

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  9. #9
    Membre du Club
    Femme Profil pro
    Apprentie ingénieure
    Inscrit en
    Avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprentie ingénieure
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2011
    Messages : 51
    Points : 49
    Points
    49
    Par défaut
    Oui ça commence à me parler ^^, c'est logique en faite. Mais faut le temps comme je n'ai jamais touché à de telles choses bien que j'ai envie de m'y mettre !


    J'ai plus qu'à changer les autres macro du fichier


    Un grand merci encore une fois !

  10. #10
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut autres feuilles
    Edaine,

    J'ai plus qu'à changer les autres macro du fichier
    Sans doute, s'agit-il du même type de traitement.

    Si tel est le cas, un code global peut être envisagé.
    Il suffira de balayer les feuilles de ton classeur.

    Peux-tu en dire plus.

    Sinon, n'oublie pas de marquer ton post en "Résolu".

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  11. #11
    Membre du Club
    Femme Profil pro
    Apprentie ingénieure
    Inscrit en
    Avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprentie ingénieure
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2011
    Messages : 51
    Points : 49
    Points
    49
    Par défaut
    En faite j'ai 2 feuilles sur 8 au total à archiver

    Donc je répète juste la macro en modifiant les variables

  12. #12
    Expert éminent
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Points : 7 149
    Points
    7 149
    Billets dans le blog
    7
    Par défaut
    Edaine,

    (J'aime bien ce nom car il me fait penser à un CD de Sarah Brightman)

    Evite de répéter les codes.

    Tu peux boucler sur tes noms de feuilles

    Exemple : si ta 2ème feuille se nomme RUM, alors tu peux utiliser une boucle

    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
    Sub Macro1()
     
        Dim feuil As Variant
     
        Application.ScreenUpdating = False
     
        'Choix du répertoire
        monrépertoire = "\\prnas02\33\NETSHARE_STAT PART PRO\commun\OUTILS EPARGNE RS\Attestations"
     
        For Each feuil In Array("FDS", "RUM")
     
              'Copie de la feuille dans un nouveau classeur
              Sheets(feuil).Copy
     
              'Enregistrement incrémentée de la date du jour
              With ActiveWorkbook
                      .SaveAs Filename:=monrépertoire & Application.PathSeparator & feuil & "_" & Format(Date, "ddmmyy") & ".xls"
                      .Close
              End With
     
        Next feuil
     
    End Sub

    Bien Cordialement.

    Marcel

    Dernier billet:
    Suppression des doublons d'un tableau structuré, gestion d'un array

    Pas de messagerie personnelle pour vos questions, s'il vous plaît. La réponse peut servir aux autres membres. Merci.


  13. #13
    Membre du Club
    Femme Profil pro
    Apprentie ingénieure
    Inscrit en
    Avril 2011
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Apprentie ingénieure
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2011
    Messages : 51
    Points : 49
    Points
    49
    Par défaut
    Eh bien j'irai voir ce soir sur internet ce CD de Sarah Brightman, ça m'intrigue ! x)


    Hum ça a l'air interessant, cette boucle.
    Il faut juste que je vois d'abord avec celui qui utilise le fichier si il fait quelque chose de spécial pour enregistrer sa 2° feuille. Comme il ne maitrise ni VBA ni excel, il enregistre à la main ses feuilles tous les jours et la macro faite par l'enregistreur est un peu spéciale, elle fait appelle à une date.

    Il faut donc que je le vois pour savoir si il veut faire des trucs " précis " quand il enregistre ou si la même démarche que pour la première feuille lui va aussi !

    Encore merci !

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 01/07/2008, 17h07
  2. [VB6] Problème enregistrement playlist wmp
    Par splouf dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 11/04/2006, 14h26
  3. [VB.NET]Problème pour les feuilles MDI
    Par Skieur38 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 03/02/2006, 14h10
  4. [W3C] Type MIME, problème "enregistrer sous"
    Par spikelille dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 30/01/2006, 17h13
  5. Problème IE et feuille de style
    Par Manu0086 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 11
    Dernier message: 06/10/2005, 12h15

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