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

VBA PowerPoint Discussion :

Macro pour selection de la première ligne d'une zone de texte


Sujet :

VBA PowerPoint

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    -
    Inscrit en
    Juillet 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Juillet 2014
    Messages : 41
    Points : 31
    Points
    31
    Par défaut Macro pour selection de la première ligne d'une zone de texte
    Bonjour,

    J'aurais besoin de modifier une macro qui permet de créer un sommaire à partir du texte présent dans une zone de texte identifiée comme titre.

    Mon soucis est qu'actuellement, la macro copie/colle l'ensemble du texte présent dans la zone de texte, et j'aimerais qu'elle se limite à la première ligne du texte présent dans la zone.

    La ligne de code en question est la suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ActivePresentation.Slides(2).Shapes(2).TextFrame.TextRange = ActivePresentation.Slides(2).Shapes(2).TextFrame.TextRange & Diapo.SlideIndex & Chr(9) & Diapo.Shapes.Title.TextFrame.TextRange.Text & vbNewLine
    Qu'est ce qu'il faudrait modifier pour pouvoir transformer "Diapo.Shapes.Title.TextFrame.TextRange.Text" (qui me semble être la source) pour pouvoir ne prendre que la première ligne ?


    Merci !


    Jodko.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Jodko Voir le message
    Bonjour,

    Que donne ce code sur votre présentation ?
    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
     
    Sub TestContenuPremiereLigne()
     
    Dim I As Integer
     
         With ActivePresentation
              For I = 1 To .Slides.count
                  Debug.Print "Slide : " & I & ", " & PremiereLigneTitle(I)
              Next I
         End With
     
    End Sub
     
     
     
    Function PremiereLigneTitle(ByVal SlideTeste As Integer) As String
     
    Dim TexteShape As Variant
     
        PremiereLigneTitle = ""
        With ActivePresentation.Slides(SlideTeste)
             If .Shapes.HasTitle Then
                With .Shapes.Title
                     If .HasTextFrame Then
                        TexteShape = Split(.TextFrame.TextRange, Chr(11))
                        If UBound(TexteShape) > 0 Then PremiereLigneTitle = TexteShape(0)
                     End If
                End With
             End If
        End With
     
     
    End Function

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    -
    Inscrit en
    Juillet 2014
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : -

    Informations forums :
    Inscription : Juillet 2014
    Messages : 41
    Points : 31
    Points
    31
    Par défaut
    Bonjour,

    La boucle avec le débug print n'affiche rien, par contre, j'ai mis un espion sur le retour de la fonction a l'air de marcher.

    Du coup, j'ai essayé d'appeler la fonction dans le corps de ma propre macro, mais je n'arrive pas à trouver le bon argument.


    Jodko.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Jodko Voir le message
    Le fonction ne récupère la première ligne qu'en présence d'un retour chariot. La fonction modifiée ci-dessous, récupère également tout le texte s'il n'y a pas de retour chariot :
    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
     
     
    Function PremiereLigneTitle(ByVal SlideTeste As Integer) As String
     
    Dim TexteShape As Variant
     
        PremiereLigneTitle = ""
        With ActivePresentation.Slides(SlideTeste)
             If .Shapes.HasTitle Then
                With .Shapes.Title
                     If .HasTextFrame Then
                        TexteShape = Split(.TextFrame.TextRange, Chr(11))
                        If UBound(TexteShape) > 0 Then
                           PremiereLigneTitle = TexteShape(0)
                        Else
                         PremiereLigneTitle = .TextFrame.TextRange
                        End If
                     End If
                End With
             End If
        End With
     
     
    End Function

Discussions similaires

  1. [MySQL] Créer un enregistrement pour chaque ligne d'une zone de texte
    Par JackBeauregard dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 13/09/2009, 21h14
  2. Saut de ligne dans une zone de texte
    Par lito74 dans le forum Access
    Réponses: 2
    Dernier message: 22/09/2006, 17h35
  3. Selectionner première ligne d'une zone de liste
    Par bb62 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 24/07/2006, 11h49
  4. Retour à la ligne dans une zone de text
    Par hnb2003 dans le forum Access
    Réponses: 2
    Dernier message: 13/04/2006, 12h56
  5. [HTML] Supprimer le multi ligne d'une zone de text
    Par Furius dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 29/11/2005, 15h49

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