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
    Nouveau membre du Club
    Macro VB - Copy / Paste en conservant la mise en forme source (C) ?
    Bonjour,

    Je constitue des Organigrammes Graphiques dans un classeur excel et je les recopie via une Macro sur des diapos ppt.

    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
    49
    50
    51
    52
     
    Sub nouveaucode()
    'Définition des variables pour PPT
        Dim xlApp As Excel.Application
        Dim xlBook As Excel.Workbook
    'Définition des variables pour choisir et ouvrir le bon excel
        Dim objOuvrir As FileDialog
        Dim objFichiers As FileDialogSelectedItems
        Dim x As Long
        Dim Wb As Workbook
        Dim Source As Worksheet
        Dim Cible As Worksheet
        Dim DEST As Range
     
    'choix du bon fichier ressources à traiter
        With Application.FileDialog(msoFileDialogOpen)
            .InitialFileName = ""
            .Filters.Clear 'Efface les filtres existants.
            .Filters.Add "Classeurs Excel", "*.xls; *.xlsx; *.xlsm" 'Définit une liste de filtres pour le champ "Type de fichiers".
            .InitialView = msoFileDialogViewDetails 'Indique le type d'affichage dans la boîte de dialogue
            .Show
        End With
     
        Set objFichiers = Application.FileDialog(msoFileDialogOpen).SelectedItems 'Définit le ou les fichiers à ouvrir
        If objFichiers.Count = 0 Then Exit Sub 'On sort si aucun fichier n'a été sélectionné
     
        For x = 1 To objFichiers.Count    'Boucle sur le ou les fichiers Excel sélectionnés pour les ouvrir
     
    'Insérer le source
            'J'initialise mes variables
            Set xlApp = CreateObject("Excel.Application")
            Set xlBook = xlApp.Workbooks.Open(objFichiers(x))
     
            xlApp.Visible = True
            For numfeuille = 2 To 8 ' France(2), BANCA(3), EPA(4), PLAC(5), CLI(6), COM(7), TRANS(8)
                nomfeuille = xlBook.Sheets(numfeuille).Name
                xlBook.Sheets(nomfeuille).Select
     
                xlBook.ActiveSheet.Shapes.Range(Array("Groupe" & nomfeuille)).Select
                xlApp.Selection.Copy
                ActivePresentation.Slides(numfeuille + 2).Shapes.Paste
                ActivePresentation.Slides(numfeuille + 2).Shapes.Range(1).Align msoAlignMiddles, msoCTrue
                ActivePresentation.Slides(numfeuille + 2).Shapes.Range(1).Align msoAlignCenters, msoCTrue
            Next
     
            xlApp.Visible = False
            xlBook.Close False
     
        Next
     
     
    End Sub


    Ce faisant la copie se fait, mais "en utilisant le thème de destination (H).
    Que faut-il utiliser pour avoir une copie "en conservant la mise en forme source (C)" ?

    Merci d'avance de votre aide

  2. #2
    Expert éminent sénior
    Citation Envoyé par cdurep Voir le message

    Bonjour,

    Au lieu de la méthode Paste, regardez si la méthode PasteSpecial règle votre problème.
    Pour cela, accédez à l'aide en ligne dans l'éditeur VBA PowerPoint pour voir les paramètres possibles : powerpoint.shapes.pastespecial
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  3. #3
    Nouveau membre du Club
    Bonjour,

    Bien vu et Merci, mais ne répond pas à mon besoin qui est de coller le détail en respectant le format source, pour laisser la possibilité de le corriger/modifier.
    PasteSpecial copie une image, ou le détail avec ppPasteDefault mais sans respecter le format source

  4. #4
    Expert éminent sénior
    Citation Envoyé par cdurep Voir le message

    Bonjour,

    Vous avez testé toutes les options ?
    Sans faire appel à VBA, copiez dans Excel, et regardez les formats de collage sur votre document pour voir s'il y a en a un qui correspond.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  5. #5
    Nouveau membre du Club
    Oui, j'ai testé toutes les options.
    Qu'appelez vous format de collage ?
    Tout ce que je connais est ceci :
    et pour conserver le format source en copiant sous Excel et collant sous PPT j'utilise l'option 2 "Conserver la mise en forme source (C)" que je n'arrive pas à reproduire en VBA.
    Je me demande si la seule solution ne sera pas d'appliquer le thème couleur et Police du PPT sur le fichier Excel; là aussi pour le moment je sèche. Mais je cherche
    Si vous savez, je suis preneur.
    Merci d'avance

  6. #6
    Expert éminent sénior
    Citation Envoyé par cdurep Voir le message

    Je n'ai pu faire l'essai depuis Excel, car trop long à modéliser.
    Le vidage d'écran suivant montre les différentes possibilités du collage spécial. Pour faire apparaître les possibilités, tapez : et = derrière DataType. Il faut ensuite essayer les différentes possibilités sachant que beaucoup feront planter la procédure.

    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  7. #7
    Nouveau membre du Club
    C'est bien comme cela que j'ai fait et aucune option ne répond au besoin

  8. #8
    Expert éminent sénior
    Citation Envoyé par cdurep Voir le message

    Il doit y avoir une subtilité que je n'ai pas encore saisie. Je ne peux pas vous aider plus.

    Bon courage.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  9. #9
    Membre averti
    Bonjour,

    Pour coller un objet dans PowerPoint avec le format source, essaie ceci :

    Code :Sélectionner tout -Visualiser dans une fenêtre à part
    Application.CommandBars.ExecuteMso ("PasteSourceFormatting")


    Je ne sais plus d'où je tiens ça, mais normalement, ça marche pour une liaison avec format source.

    m@rina