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 :

comment transformer une feuille excel en presentation Power point


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    cotroleur de gestion
    Inscrit en
    Avril 2020
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : cotroleur de gestion
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2020
    Messages : 1
    Par défaut comment transformer une feuille excel en presentation Power point
    Bonjour à tous,

    J'ai besoin de votre aide.
    Chaque mois je fais une présentation Power point à partir d'une feuille Excel.
    l'objectif est de créer une macro par VBA qui pourra me permettre de passer directement d' Excel à Power Point.
    je voudrais savoir si quelqu'un connais un code VBA qui pourrait me permettre de réaliser cela.

    j'ai commencé par chercher je suis tombé sur ce tuto très inintéressant :


    j'ai essayé le contenu mais il ne marche pas.

    Merci infiniment,

  2. #2
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 433
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 433
    Par défaut
    Bonjour,

    Le code de la présentation fonctionne ...presque. Version corrigée ci-dessous.
    Il faut être attentif que la variable "plage" est de type Variant (et pas String).
    J'ai ajouté le positionnement.
    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
    Option Explicit
     
    '--- Référence: Microsoft PowerPoint xx.x Object Library
     
    Sub ExporterVersPowerpoint()
        '--- Partie 1: Récupérer les adresses des pages d’impression
        Dim plages As String, nombreSautDePage As Long, ligneSaut As Long
        Dim derniereColonne As Long, debut As Long, ligneFin As Long, i As Integer
        plages = ""
        With ActiveSheet.HPageBreaks
            nombreSautDePage = .Count
            derniereColonne = ActiveSheet.UsedRange.Columns.Count
            If nombreSautDePage = 0 Then
                plages = ActiveSheet.UsedRange.Address
            Else
                debut = 1
                For i = 1 To .Count
                    ligneSaut = .Item(i).Location.Row
                    plages = plages & Range(ActiveSheet.Cells(debut, 1), ActiveSheet.Cells(ligneSaut - 1, derniereColonne)).Address & "-"
                    debut = ligneSaut
                Next
                ligneFin = ActiveSheet.UsedRange.Rows.Count
                plages = plages & Range(ActiveSheet.Cells(debut, 1), ActiveSheet.Cells(ligneFin, derniereColonne)).Address
            End If
        End With
        Debug.Print plages
        '--- Partie 2: Exporter chacune de ces zones vers une présentation PowerPoint
        Dim oPowerPoint As Object, oDiaporama As Object
        Dim plage As Variant, diapositive As Object, idDiapo As Integer, oShape As Object
        Set oPowerPoint = CreateObject("Powerpoint.application")
        Set oDiaporama = oPowerPoint.Presentations.Add
        idDiapo = 1
        For Each plage In Split(plages, "-")
            Set diapositive = oDiaporama.Slides.Add(Index:=idDiapo, Layout:=ppLayoutBlank)
            ActiveSheet.Range(plage).Copy
            oDiaporama.Slides(idDiapo).Shapes.PasteSpecial DataType:=ppPasteEnhancedMetafile
            Set oShape = diapositive.Shapes(diapositive.Shapes.Count)
            oShape.Left = 30
            oShape.Top = 60
            idDiapo = idDiapo + 1
        Next
        oPowerPoint.Visible = True
        oPowerPoint.Activate
        Application.CutCopyMode = False
        Set oShape = Nothing
        Set diapositive = Nothing
        Set oDiaporama = Nothing
        Set oPowerPoint = Nothing
    End Sub
    Bonne continuation.
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. Réponses: 9
    Dernier message: 20/09/2007, 12h55
  2. Comment protéger une feuille excel en vba avec des paramètres?
    Par Subkill dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/03/2007, 17h21
  3. Comment protéger une feuille excel en vba avec des paramètres?
    Par Subkill dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 27/03/2007, 17h20
  4. [Formulaire] comment afficher une feuille excel?
    Par helenafr dans le forum IHM
    Réponses: 6
    Dernier message: 16/06/2006, 13h26
  5. Comment copier une feuille EXCEL sous ACCESS?
    Par PAULOM dans le forum Access
    Réponses: 7
    Dernier message: 28/04/2006, 10h01

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