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 :

générer saut auto de page en vba [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut générer saut auto de page en vba
    bonjour à tous,

    j'ai une macro qui génère depuis excel un diaporama contenant les données d'un tableau
    je voudrais qu'il y ait un saut de page après la 13ème ligne de données
    actuellement, cela génère une liste sans saut de page, quelque soit le nombre de lignes générées
    bien sûr ce nombre de ligne diffère en fonction du choix effectué dans un formulaire
    voici le code :
    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
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    Sub PPTlisteAgr() 'liste de tous les agréments dans la même cellule
     
    Dim objPPT As Object 'PowerPoint.Application  'Object
    Dim objPres As Object 'PowerPoint.Presentation ' Object
    Dim objSld As Object 'PowerPoint.SlideRange ' Object
    Dim objShp As Object 'PowerPoint.Shape ' Object
    Dim shp As Object 'PowerPoint.Shape
    Dim Tablo As Variant
    Dim x As Integer, i As Integer, y As Integer
     
     
    With Sheets("AgrementsListeTriee") 'Il faut presiser le "." dans la suite du code pour y faire reference
        Tablo = .Range("A2:Z" & .Cells(Rows.Count, "A").End(xlUp).Row).Value
    End With
     
    Set objPPT = CreateObject("Powerpoint.Application")
    objPPT.Visible = True
     
    Set objPres = objPPT.Presentations.Open(ThisWorkbook.Path & "\ListeAgr.pptm")
    objPres.SaveAs ThisWorkbook.Path & "\Agrements.pptm"
     
     
     
     
        'duplique le slide 1
        Set objSld = objPres.Slides(1).Duplicate
        'On le place au dessous de tout
        objSld.moveto objPres.Slides.Count
        'remplit le tableau du slide avec les données
     
        For Each objShp In objSld.Shapes
         For i = 1 To UBound(Tablo)
            If objShp.HasTable Then
     
                With objShp.Table
                    .Cell(2, 1).Shape.TextFrame.TextRange.Text = Tablo(i, 1) 'Famille Col A
                    .Cell(2, 2).Shape.TextFrame.TextRange.Text = Tablo(i, 2) 'Calibre Col B
                    .Cell(2, 3).Shape.TextFrame.TextRange.Text = (Tablo(i, 6) & "/" & Tablo(i, 9) & "/" & Tablo(i, 11) & "/" & Tablo(i, 13) & "/" & Tablo(i, 15)) 'Agrément1 Col F
                    .Cell(2, 4).Shape.TextFrame.TextRange.Text = Tablo(i, 8) 'Designation produit1 Col H
                    .Cell(2, 5).Shape.TextFrame.TextRange.Text = Tablo(i, 3) 'Classe Col C
                    .Cell(2, 6).Shape.TextFrame.TextRange.Text = Tablo(i, 7) 'Distance sécurité1 Col G
                    .Cell(2, 7).Shape.TextFrame.TextRange.Text = Tablo(i, 4) 'PT MA Col D
                    '=============================================================================
                     x = 0
                    Do
                    If Tablo(i, 1) <> "" Then
                           .Rows.Add
     
                    .Cell(2 + (1 * x), 1).Shape.TextFrame.TextRange.Text = Tablo(i, 1) 'Famille Col A
                    .Cell(2 + (1 * x), 2).Shape.TextFrame.TextRange.Text = Tablo(i, 2) 'Calibre Col B
                    .Cell(2 + (1 * x), 3).Shape.TextFrame.TextRange.Text = (Tablo(i, 6) & "   " & Tablo(i, 9) & "   " & Tablo(i, 11) & "   " & Tablo(i, 13) & "   " & Tablo(i, 15)) 'Agrément1 Col F
                    .Cell(2 + (1 * x), 4).Shape.TextFrame.TextRange.Text = Tablo(i, 8) 'Designation produit1 Col H
                    .Cell(2 + (1 * x), 5).Shape.TextFrame.TextRange.Text = Tablo(i, 3) 'Classe Col C
                    .Cell(2 + (1 * x), 6).Shape.TextFrame.TextRange.Text = Tablo(i, 7) 'Distance sécurité1 Col G
                    .Cell(2 + (1 * x), 7).Shape.TextFrame.TextRange.Text = Tablo(i, 4) 'PT MA Col D
     
     
                    End If
                        'End If
                        'et autant de fois qu'il y a de lignes où cell B = G
                        i = i + 1
                        x = x + 1
                        If i > UBound(Tablo) Then Exit Do
                    Loop While Tablo(i, 1) <> ""
     
                    End With
            End If
     
        Next
    Next
     
    objPres.Slides(1).Delete
    objPres.save
    objPres.Close
     
    End Sub
    Une idée ?

  2. #2
    Membre confirmé
    Femme Profil pro
    retraitée
    Inscrit en
    Juin 2006
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : retraitée

    Informations forums :
    Inscription : Juin 2006
    Messages : 147
    Par défaut
    voir la discussion :
    Piloter POWERPOINT depuis Excel - Ajouter un nouveau slide après la 12ème ligne

    dans ce même forum, il y a toutes les explications et le code qui fonctionne
    grâce à l'aide précieuse de Qwazerty

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

Discussions similaires

  1. [XL-2010] Identification saut de page sous VBA
    Par mathieubonnefontiae dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 14/06/2011, 18h09
  2. Réponses: 4
    Dernier message: 26/03/2008, 20h46
  3. Générer saut de ligne excel
    Par s.n.a.f.u dans le forum Modules
    Réponses: 3
    Dernier message: 08/02/2007, 14h29
  4. [VBA-W]simuler un saut de page en vba
    Par Mut dans le forum VBA Word
    Réponses: 2
    Dernier message: 22/01/2007, 15h05
  5. [VS.NET]Comment générer une dll de page ?
    Par fnganiet dans le forum Visual Studio
    Réponses: 4
    Dernier message: 19/05/2006, 14h28

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