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 :

Sauvegarder une seule feuille d'un classeur


Sujet :

Macros et VBA Excel

  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 Sauvegarder une seule feuille d'un classeur
    Bonjour,

    Comment faire pour sauvegarder une feuille en particulier d'un classeur ?

    Dans mon cas, la feuille se nomme "Fiche". Je souhaite pouvoir la sauvegarder dans le répertoire K:\ERP\Fiches_Synthèse sous le nom se trouvant dans les cellules S2 et A1 de la feuille "Fiche"

    Un exemple de sauvegarde : K:\ERP\E148 B1 B2 - AUTHIE NORD

    Merci par avance pour l'aide que vous pourrez m'apporter.

    René

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    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 Test()
    Dim newWbk As Workbook, feuilCal As Worksheet, pathMesDocuments As String, nomNewClasseur As String
     
        'définir le chemin
       pathMesDocuments = "K:\ERP\Fiches_Synthèse"
     
        'définir la feuille à copier
       Set feuilCal = ThisWorkbook.Sheets("Fiche")
     
        'créer un nouveau classeur avec une seulle feuille
       Set newWbk = Application.Workbooks.Add(xlWBATWorksheet)
     
        'copier les cellules de la feuille "Calendrier"
       feuilCal.Cells.Copy
     
        'coller les valeurs dans le nouveau classeur, puis les formats, puis les largeurs de colonnes
       newWbk.Sheets(1).Range("A1").PasteSpecial xlPasteValues
        newWbk.Sheets(1).Range("A1").PasteSpecial xlPasteFormats
        newWbk.Sheets(1).Range("A1").PasteSpecial xlPasteColumnWidths
        Application.CutCopyMode = False
     
        'récupérer le nom à donner au nouveau classeur
       nomNewClasseur = feuilCal.range("S2") & " " & feuilCal.range("A1") 
     
        'sauvegarder le classeur et le fermer
       newWbk.SaveAs pathMesDocuments & "\" & nomNewClasseur & ".xls"
        newWbk.Close
     
    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
    J'ai tenté ce code, mais cela ne fonctionne pas. J'ai une erreur sur la ligne ".SaveAs....". Ligne 14

    Erreur 1004 - "Fichier inaccessible"

    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 Archiver()
     
    Dim extension As String
    Dim chemin As String, nomfichier As String
    Dim style As Integer
    Application.ScreenUpdating = False
    ThisWorkbook.ActiveSheet.Copy
    extension = ".xls"
    chemin = "K:\ERP\Fiches synthèse"
    nomfichier = ActiveSheet.Range("S2") & "-" & Range("A1") & extension
    With ActiveWorkbook
        .ActiveSheet.DrawingObjects(1).Delete
        .SaveAs Filename:=chemin & nomfichier
        .Close
    End With
    End Sub
    Je suis allé trop vite et je n'ai pas essayé le code proposé.
    Merci par avance

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Ce n'est pas le code que je t'ai donné... Il te manque un / dans ton path

    Change cette ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chemin = "K:\ERP\Fiches synthèse"
    Par celle là

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    chemin = "K:\ERP\Fiches synthèse\"

  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
    J'ai essayé le code et même message d'erreur sur la ligne 26

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    1 - ton fichier est endommagé
    2 - tu crées tes fichiers en lecture seule par défault ?
    3 - ton chemin d'accès n'est pas accessible...

    Essaie de l'enregistrer à la main..

  7. #7
    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
    J'ai trouvé d'où vient l'erreur. Dans une cellule, j'ai fait un retour ligne au clavier et ça il n'aime pas du tout.

    Je l'ai supprimé et cela fonctionne très bien.

    Merci beaucoup pour ton aide.

    Cordialement

    René

  8. #8
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    En effet un chemin d'accès avec un retour chariot... c'est moyen

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

Discussions similaires

  1. [Toutes versions] Macro regroupant plusieurs classeurs dans une seule feuille
    Par lisandjo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 23/04/2012, 07h52
  2. remplire un classeur à partir d'une seule feuille
    Par ririrourou dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 06/05/2008, 09h51
  3. Enregistrer une seul feuille dans un classeur
    Par Didpa dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/08/2006, 22h58
  4. Sauvegarder qu'une seul feuille d'un classeur
    Par Didpa dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 24/08/2006, 07h53
  5. Excel : consolidation de données sur une seule feuille
    Par aquamusic dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/01/2006, 18h32

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