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 avec code sauvegarde fichier [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut Problème avec code sauvegarde fichier
    Bonjour à tous,

    Avec le code suivant j'enregistre ma feuille de calcul avec ses formats.
    Cependant, je rencontre un problème.
    La feuille clignote plusieurs fois avant de se réduire, c'est à dire qu'elle est derrière ma feuille principale. Je suis donc obligé de réduire la feuille principale pour laisser apparaître la feuille de bon de commande afin de la fermer.

    Je n'arrive pas à faire en sorte que lorsque je clique sur le bouton "Sauvegarde", ma feuille se ferme en conservant tous ses formats.
    Pouvez-vous m'apporter vos lumières s'il vous plait ?

    Merci par avance

    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
     
    Private Sub Sauv1_Click()
    Cells.Select
        Selection.Copy
            Workbooks.Add
            ActiveSheet.Paste
        Application.Dialogs(xlDialogSaveAs).Show ("S:\AGENTS\BON DE COMMANDE\BC 2010\" & "BC" & " " & Cells(17, 4).Value & " " & Cells(15, 14).Value)
            ActiveSheet.PageSetup.PrintArea = "$A$1:$N$72"
            Application.ExecuteExcel4Macro "page.setup(,,0.00,0.00,0.00,false,false,1,1,1,,100,,1,,0.00,0.00,,)"
    ActiveSheet.PageSetup.PrintArea = "$A$1:$N$72"
        With ActiveSheet.PageSetup
            .LeftHeader = ""
            .CenterHeader = ""
            .RightHeader = ""
            .LeftFooter = ""
            .CenterFooter = ""
            .RightFooter = ""
            .LeftMargin = Application.InchesToPoints(0)
            .RightMargin = Application.InchesToPoints(0)
            .TopMargin = Application.InchesToPoints(0)
            .BottomMargin = Application.InchesToPoints(0)
            .HeaderMargin = Application.InchesToPoints(0)
            .FooterMargin = Application.InchesToPoints(0)
            .PrintHeadings = False
            .PrintGridlines = False
            .PrintComments = xlPrintNoComments
            .PrintQuality = 600
            .CenterHorizontally = True
            .CenterVertically = True
            .Orientation = xlPortrait
            .Draft = False
            .PaperSize = xlPaperA4
            .FirstPageNumber = xlAutomatic
            .Order = xlDownThenOver
            .BlackAndWhite = False
            .Zoom = False
            .FitToPagesWide = 1
            .FitToPagesTall = 1
            .PrintErrors = xlPrintErrorsDisplayed
        End With
        Windows("Factures.xls").Activate
            Sheets("BC1").Select
            Range("B25,G6,H14,N11,N17,N15,N19,B24,A28:A55,N24,I28:I55,J28:J55,K28:K55").Select
            Selection.ClearContents
        Range("A1").Select
            Sheets("BC1").Visible = False
            Sheets("Engagements").Activate
    End Sub

  2. #2
    Expert confirmé
    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 : 68
    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
    Billets dans le blog
    7
    Par défaut SAUVEGARDE
    Bonjour Nec14,

    Plutôt que de copier des cellules dans un nouveau classeur, tu pourrais directement copier ta feuille en un nouveau classeur, et rompre les liaisons éventuelles.

    A adapter à ton cas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub essai()
    Sheets("Feuil2").Copy
    With ActiveWorkbook
            tablo = .LinkSources(xlExcelLinks)
            For i = 1 To UBound(tablo)
                    .BreakLink Name:=tablo(i), Type:=xlExcelLinks
            Next i
            .SaveAs Filename:="TOTO.xls"
    End With
    End Sub

  3. #3
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour Marcel,

    Mais est-ce que cette méthode permet de sauvegarder également les formats ? car pour une bonne utilisation de la feuille par la suite cela est très important.
    L'utilisateur ne doit pas reparamètrer les formats.
    Merci pour ton aide

  4. #4
    Expert confirmé
    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 : 68
    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
    Billets dans le blog
    7
    Par défaut
    Bonsoir Nec,

    Justement. Cette méthode te fait copier la feuille et avec ses formats, et avec ses valeurs.

    Tu peux essayer sur une feuille simplifié avec une seule formule relative à une autre feuille de ton classeur.

  5. #5
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Par défaut
    Bonjour Marcel,

    Voici le code que j'ai fait selon tes recommandations. Cependant je rencontre quelques petits problèmes :
    Dans ma feuille de calcul, la cellule B24 correspond au nom du répertoire où doit être sauvegardée la feuille et il est impératif qu'elle y soit. Par exemple si dans la cellule B24 il est indiqué "Patinoire" alors la feuille de calcul doit être sauvegardée dans "S:\........\Patinoire\.......
    De plus, la feuille de calcul ainsi sauvegardée doit se fermer automatiquement et ce n'est pas le cas.
    Merci par avance

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub CommandButton1_Click()
    Sheets("F1").Copy
    With ActiveWorkbook
            tablo = .LinkSources(xlExcelLinks)
            For i = 1 To UBound(tablo)
                    .BreakLink Name:=tablo(i), Type:=xlExcelLinks
            Next i
            .SaveAs Filename:=("S:\AGENTS\BON DE COMMANDE\BC 2011\" & "BC" & " " & Cells(17, 4).Value & " " & Cells(15, 14).Value)
    End With
     
    End Sub

  6. #6
    Expert confirmé
    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 : 68
    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
    Billets dans le blog
    7
    Par défaut Enregistrement
    Bonjour NEC14,

    Quelles valeurs informent les cellules

    Cells(17, 4) et Cells(15, 14)

    Quel résultat souhaites-tu obtenir (chemin complet et nom du fichier) ?

    Y a-t-il un message d'erreur et à quelle ligne ?

    Sinon, pour fermer le classeur après sauvegarde, il suffira d'écrire

    à l'intérieur de ton instruction With

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/07/2007, 10h16
  2. Problème avec tous les fichiers utilisateur
    Par Olivier Regnier dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 03/07/2007, 14h52
  3. [TSaveDialog] Problèmes avec type de fichier
    Par Pedro dans le forum Delphi
    Réponses: 14
    Dernier message: 14/12/2006, 21h53
  4. Problème avec code CSS
    Par jpduches dans le forum Mise en page CSS
    Réponses: 1
    Dernier message: 06/06/2006, 10h02
  5. Réponses: 18
    Dernier message: 30/06/2005, 13h30

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