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 :

Sélectionner toute la ligne du curseur [PPT-2016]


Sujet :

VBA PowerPoint

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Février 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Février 2022
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Sélectionner toute la ligne du curseur
    Bonjour à tous,

    Malgré mes recherches, je n'arrive pas à trouver le code qui me permet de sélectionner toute la ligne sur laquelle se trouve le curseur sur une slide Powerpoint.

    Je suis bloqué au code qui permet de savoir où se trouve le curseur .

    Merci d'avance si vous avez des idées, je suis prêt à tout tester.

    PS : Si ça peut aider, la ligne que je cherche à sélectionner est systématiquement avec une puce.

  2. #2
    Membre confirmé
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    Décembre 2021
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Auto entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2021
    Messages : 365
    Points : 573
    Points
    573
    Par défaut
    Bonjour,

    Le code ci-dessous ne répond pas directement à votre demande, car sauf erreur de ma part, on ne retrouve pas dans PowerPoint les mêmes méthodes que dans Word pour sélectionner une partie d'un texte à partir de l'objet Selection.
    Ici l'objet Selection est une forme, et on choisit le texte d'une des lignes. La macro peut être déclenchée depuis la barre d'accès rapide le cas échéant.

    L'ajout d'un module de classe pour bénéficier des événements sur la partie Windows notamment WindowSelectionChange n'est pas probant.

    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
     
    Sub TexteDansUneShape()
     
    Dim I As Integer
    Dim MesLignes As Variant, MonTexte As Variant
     
        With ActivePresentation.Windows(1).Selection
             MesLignes = Split(.TextRange, Chr(13))
             If UBound(MesLignes) > 0 Then
                For I = LBound(MesLignes) To UBound(MesLignes)
                     If MsgBox(MesLignes(I), vbYesNo) = vbYes Then
                        MonTexte = MesLignes(I)
                        Exit For
                     End If
                Next I
             Else
                MonTexte = .TextRange
             End If
        End With
        MsgBox MonTexte, vbInformation, "Résultat"
     
    End Sub

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Février 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Février 2022
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par E KERGRESSE Voir le message
    Bonjour,

    Le code ci-dessous ne répond pas directement à votre demande, car sauf erreur de ma part, on ne retrouve pas dans PowerPoint les mêmes méthodes que dans Word pour sélectionner une partie d'un texte à partir de l'objet Selection.
    Ici l'objet Selection est une forme, et on choisit le texte d'une des lignes. La macro peut être déclenchée depuis la barre d'accès rapide le cas échéant.

    L'ajout d'un module de classe pour bénéficier des événements sur la partie Windows notamment WindowSelectionChange n'est pas probant.

    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
     
    Sub TexteDansUneShape()
     
    Dim I As Integer
    Dim MesLignes As Variant, MonTexte As Variant
     
        With ActivePresentation.Windows(1).Selection
             MesLignes = Split(.TextRange, Chr(13))
             If UBound(MesLignes) > 0 Then
                For I = LBound(MesLignes) To UBound(MesLignes)
                     If MsgBox(MesLignes(I), vbYesNo) = vbYes Then
                        MonTexte = MesLignes(I)
                        Exit For
                     End If
                Next I
             Else
                MonTexte = .TextRange
             End If
        End With
        MsgBox MonTexte, vbInformation, "Résultat"
     
    End Sub
    Bonjour et merci pour cette réponse.
    Mais effectivement cela ne répond pas à mon besoin, ce code permet de séparer les lignes entre elles si plusieurs lignes sont sélectionnées.

    Ce que je cherche à faire est de sélectionner la ligne sur laquelle est positionné le curseur.
    Pour être plus clair, voici en image ce que je cherche à faire :
    Nom : Powerpoint.png
Affichages : 69
Taille : 14,8 Ko

  4. #4
    Membre confirmé
    Homme Profil pro
    Auto entrepreneur
    Inscrit en
    Décembre 2021
    Messages
    365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Auto entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2021
    Messages : 365
    Points : 573
    Points
    573
    Par défaut
    Je vous ai expliqué pourquoi on ne pouvait pas réaliser directement ce que vous demandiez.

    La question maintenant est de savoir dans quel but vous cherchez à récupérer ce texte.

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Février 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Février 2022
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par E KERGRESSE Voir le message
    Je vous ai expliqué pourquoi on ne pouvait pas réaliser directement ce que vous demandiez.

    La question maintenant est de savoir dans quel but vous cherchez à récupérer ce texte.
    Je ne cherche pas à récupérer le texte, mais simplement à sélectionner la ligne, car ensuite, je compte appliquer une mise en forme sur la ligne (Taille de police, couleur, niveau de décalage de puce).
    Mais si toute la ligne n'est pas sélectionnée, seul le niveau de décalage de puce s'applique, la couleur et taille de police ne s'appliquent que sur le mot sur lequel le curseur se trouve.

  6. #6
    Membre averti
    Inscrit en
    Avril 2008
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2008
    Messages : 224
    Points : 443
    Points
    443
    Par défaut
    Bonjour Yipikai, E KERGRESSE, le forum,

    Je ne cherche pas à récupérer le texte, mais simplement à sélectionner la ligne, car ensuite, je compte appliquer une mise en forme sur la ligne (Taille de police, couleur, niveau de décalage de puce).
    Tu n’es pas obligé de sélectionner la ligne pour autant.
    De manière générale, dans les macros d’Office, il faut éviter de passer par la Selection.

    Voici un exemple :
    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
    Sub EtendreSelection()
    Dim paragraph As TextRange2
    Dim nbCar As Long
     
        With ActiveWindow.Selection
            'si la sélection est bien de type 'Text'
            If .Type = ppSelectionText Then
                'rechercher le paragraphe (la ligne) où se situe la sélection
                For Each paragraph In .ShapeRange(1).TextFrame2.TextRange.Paragraphs
                    nbCar = nbCar + Len(paragraph.Text)
                    If nbCar >= .TextRange2.Start Then
                        Exit For
                    End If
                Next paragraph
            End If
        End With
     
        'mettre en forme le paragraphe trouvé
        If Not paragraph Is Nothing Then
            With paragraph
                .Font.Size = 38
                .Font.Fill.ForeColor.RGB = RGB(255, 0, 0)
                '...
            End With
        End If
    End Sub
    A+

  7. #7
    Candidat au Club
    Homme Profil pro
    Ingénieur
    Inscrit en
    Février 2022
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur

    Informations forums :
    Inscription : Février 2022
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Citation Envoyé par mromain Voir le message
    Bonjour Yipikai, E KERGRESSE, le forum,


    Tu n’es pas obligé de sélectionner la ligne pour autant.
    De manière générale, dans les macros d’Office, il faut éviter de passer par la Selection.

    Voici un exemple :
    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
    Sub EtendreSelection()
    Dim paragraph As TextRange2
    Dim nbCar As Long
     
        With ActiveWindow.Selection
            'si la sélection est bien de type 'Text'
            If .Type = ppSelectionText Then
                'rechercher le paragraphe (la ligne) où se situe la sélection
                For Each paragraph In .ShapeRange(1).TextFrame2.TextRange.Paragraphs
                    nbCar = nbCar + Len(paragraph.Text)
                    If nbCar >= .TextRange2.Start Then
                        Exit For
                    End If
                Next paragraph
            End If
        End With
     
        'mettre en forme le paragraphe trouvé
        If Not paragraph Is Nothing Then
            With paragraph
                .Font.Size = 38
                .Font.Fill.ForeColor.RGB = RGB(255, 0, 0)
                '...
            End With
        End If
    End Sub
    A+
    Parfait, merci.
    J'ai juste remplacé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        'mettre en forme le paragraphe trouvé
        If Not paragraph Is Nothing Then
            With paragraph
                .Font.Size = 38
                .Font.Fill.ForeColor.RGB = RGB(255, 0, 0)
                '...
            End With
        End If
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        'sélectionné le paragraphe trouvé
        If Not paragraph Is Nothing Then
            paragraph.Select
        End If
    et cela correspondant parfaitement à mon besoin !

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

Discussions similaires

  1. Supprimer toutes les lignes et colonnes d'un tableau
    Par pekka77 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 01/12/2005, 11h26
  2. Réponses: 1
    Dernier message: 29/11/2005, 00h37
  3. Réponses: 4
    Dernier message: 11/10/2005, 15h03
  4. CSS : un lien qui prend toute une ligne d'un tableau.
    Par pmithrandir dans le forum Mise en page CSS
    Réponses: 7
    Dernier message: 20/04/2005, 16h52

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