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

  1. #1
    Rédacteur/Modérateur

    copie de selection dans un nouveau fichier en conservant les sauts de page
    Voici le code :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Worksheets("Récap").Activate
        Worksheets("Récap").Range("A1").Select
        Worksheets("Récap").Range("A1:GN95").Select
        Selection.Copy
        Workbooks.Add
    '    ActiveSheet.Paste
        Selection.PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False


    Le souci est que dans le fichier de destination je ne récupère pas la mêem mise en page pour l'impression le Paste xlAll ne prends pas en compte la mise en page pour l'impression ?
    Comment y parvenir ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr|www.saftair.fr| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
    Humour

  2. #2
    Membre émérite
    Salut SpaceFrog et le forum
    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 test()
    Dim Tab_L(196)
    Dim Tab_C(95)
    Dim X As Integer
    Worksheets("Récap").Activate
    For X = 1 To 195
        If X < 96 Then Tab_C(X) = Columns(X).ColumnWidth
        Tab_L(X) = Rows(X).RowHeight
    Next X
    Range("A1:GN95").Copy
    Workbooks.Add
    ActiveSheet.[A1:GN95].PasteSpecial Paste:=xlAll, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    For X = 1 To 195
        If X < 96 Then ActiveSheet.Columns(X).ColumnWidth = Tab_C(X)
        ActiveSheet.Rows(X).RowHeight = Tab_L(X)
    Next X
    End Sub
    Une cellule ne définie ni la hauteur de la ligne, ni la largeur de la colonne. Il faut donc le définir à part
    A+

  3. #3
    Rédacteur/Modérateur

    Merci de cette réponse,
    mais ??
    logiquement dans le paste all je paste aussi le format des cellules ... donc le row height ...
    Et je ne vois pas de lien avec la mise en page d'impression ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr|www.saftair.fr| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
    Humour

  4. #4
    Rédacteur/Modérateur

    bon à priori ça se passerait du coté de
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
     Set ActiveSheet.VPageBreaks(1).Location = Range("R1")


    mais au lieu de faire un set sur la nouvelle page je ne pourrais pas les recopier de l'ancienne ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr|www.saftair.fr| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
    Humour

  5. #5
    Membre averti
    Ce serait peut-être plus simple de recopier la feuille (comme par Edition / Déplacer ou copier une feuille) que de passer par le presse-papier ?

  6. #6
    Rédacteur/Modérateur

    peut être ?
    mais comment copie-t-on une feuille pour la placer dasn un nouveau fichier selon cette méthode ???


    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    Sheets("Récap").Select
        Application.CutCopyMode = False
        Sheets("Récap").Copy


    semble prometteur ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr|www.saftair.fr| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
    Humour

  7. #7
    Membre averti
    J'ai testé :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Workbooks.Add
    nomNouveauClasseur = ActiveWorkbook.Name
    ThisWorkbook.Sheets("Récap").Copy Before:=Workbooks(nomNouveauClasseur).Sheets(1)


    Mais il y a un mais, la mise en forme est bien conservée à l'exception des sauts de page.

    Edit : Ah mais j'avais mal lu : il n'est pas vraiment question de saut de page dans le problème initial, donc ça pourrait convenir.

  8. #8
    Rédacteur/Modérateur

    Voici le code retenu qui me copie à l'identique la feuille avec les mêmes marges, sauts de page mise en page etc ...

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    Sheets("Récap").Select
        Application.CutCopyMode = False
        Sheets("Récap").Copy



    Merci à tous
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr|www.saftair.fr| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
    Humour

  9. #9
    Membre émérite
    Salut SpaceFrog et le forum
    logiquement dans le paste all je paste aussi le format des cellules ... donc le row height ...
    Le pastespecial colle tous les formats liés à la cellule le Height, lui est lié à la ligne.
    Si tu n'as pas la même mise en page, il te faut redéfinir les marges, l'imprimante, l'orientation, etc... que j'avais supposé valeurs par défaut

    Le plus simple restant de faire une copie de la page dans un nouveau classeur et de définir la zone d'impression :
    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
    Sheets("Feuil1").Activate
    ActiveSheet.Copy
    ActiveSheet.PageSetup.PrintArea = "A1:GN95"
    End Sub
    La définition de la zone d'impression n'est obligatoire que si elle n'est pas définie sur la page initiale et qu'elle comporte d'autre données. tu peux supprimer les autres lignes/colonnes
    A+
    EDIT : Moi est ma manie d'aller manger... Grillé

  10. #10
    Rédacteur/Modérateur

    j'avais activé le mode lance pierre...

    et du coup la copie de la feuille copie tout ....
    comme je n'ai que la zone à copier sur l'onglet, serait-ce moins gourmand et plus rapide de ne copier que la zone ...
    Là cela fonctionne sans à priori prendre trop de temps ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr|www.saftair.fr| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
    Humour

  11. #11
    Membre averti
    Citation Envoyé par SpaceFrog Voir le message

    comme je n'ai que la zone à copier sur l'onglet, serait-ce moins gourmand et plus rapide de ne copier que la zone ...
    Via cette méthode je ne vois pas comment. Va falloir passer le balai pour nettoyer le reste de la feuille

  12. #12
    Rédacteur/Modérateur

    Ben non si tu lis bien ... il n'y a rien d'autre sur la feuille, dons rien à nettoyer ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

    réalisations :www.oxygen-translations.fr|www.saftair.fr| www.ouestisol.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
    Humour

###raw>template_hook.ano_emploi###