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 :

Cherche macro pour chercher/remplacer texte dans tableau [PPT-2003]


Sujet :

VBA PowerPoint

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 51
    Points : 55
    Points
    55
    Par défaut Cherche macro pour chercher/remplacer texte dans tableau
    Hello,

    je cherche en vain une macro qui me cherche du texte dans une cellule de tableau qui se trouve dans un slide.

    j'ai essayé d'activer une macro pour voir si il m'enregistrait le code pendant que je faisais un pauvre chercher/remplacer, mais ça ne fait rien.

    Si quelqu'un a une idée ça me sauverai la vie

    merci bcp

    @+

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Je t'ai expliqué dans cette discussion comment était décomposé un tableau.

    Est-ce le même sujet, si oui merci de poursuivre sur celui-là, si c'est non, merci de répondre à la question précédente.

    L'enregitreur de macro sous PPT est un des plus mauvais du pack Office, et de plus il ne peut pas tout faire.

    Pour faire ce que tu veux il faut parcourir toutes les cellules du tableau et faire le remplacement.

    Par rapport à ce que je t'ai donné précedemment y a t'il quelque chose que tu ne comprends pas ?

    Philippe

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 51
    Points : 55
    Points
    55
    Par défaut
    hello philippe merci pour tes réponses,

    j'ai retrouvé mon ancien post mais je ne savais pas si je devais poursuivre sur celui la car tu me demandes du codes a l'appui mais le soucis c'est que je n'ai pas de codes.

    j'ai des balises dans des cellules du genre <toto> et j'aimerai les remplacer par des images, mais je ne trouve rien.

    J'arrive à faire une macro chercher remplacer pour une zone de texte mais le tableau je ne sais pas comment faire...

    et le soucis, c'est que je dois remplacer une balise par une image qui vient d'un fichier excel, et j'ai essayé par la souris de faire un copier coller d'une image dans une zone de texte et l'image se met a coté.

    Je n'ai pas eu ce probleme avec le word car je supprimais la balise du coup j'etais au bon endroit avec le curseur clignotant et je pouvais coller mon image.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Re

    En attendant mieux, une petite macro vite fait pour t'inspirer (j'aurais plus de temps ce soir ou demain, et ce n'est pas sûr).

    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
    Public Sub RemplacemenTableau()
     
        ' déclaration des variables
        Dim sld As Slide
        Dim shpTable As Table
        Dim strSource As String ' chaine de remplacement
        Dim strRech As String   ' chaine que l'on cherche
        Dim i As Integer        ' pour boucler sur les colonnes
        Dim j As Integer        ' pour boucler sur les lignes
     
        ' affectation
        Set sld = ActivePresentation.Slides(1)
        Set shpTable = sld.Shapes("Groupe 55").Table
        strSource = "toto"
        strRech = "titi"
     
        ' boucle sur les lignes
        For i = 1 To shpTable.Columns.Count
            For j = 1 To shpTable.Rows.Count
                If shpTable.Cell(j, i).Shape.TextFrame.TextRange.Text = strRech Then
                    shpTable.Cell(j, i).Shape.TextFrame.TextRange.Text = strSource
                End If
            Next j
        Next i
     
     
    End Sub
    Ce petit code (qui fonctionne ) parcours le tableau qui se nomme Groupe 55, tu trouveras des astuces pour trouver les éléments dans la FAQ PowerPoint, il remplace les textes qui se nomment titi par toto.

    Ce n'est qu'un exemple vite fait, si j'ai bien compris tu as des champs avec le texte <toto> que tu veux remplacer par des images ?

    Merci d'essayer ce que je viens de mettre, et de détailler un peu plus.

    Philippe

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 51
    Points : 55
    Points
    55
    Par défaut
    oui voila philippe c'est par des image et comme je dis plus haut, dans powerpoint on ne peux pas copier des images dans une zone de texte.

    j'ai pas eu ce soucis plus haut dans mes slide j'avais qu'une image par slide donc depuis excel j'ai appellé une macro de powerpoint ou je passais sa position en X en Y et sa largeur et hauteur mais pour que ça soit propre je voulais passer par des tableaux car dans les futurs slides j'ai plusieurs images par slide.

    PS : merci en tout cas pour ton bout de code

  6. #6
    Invité
    Invité(e)
    Par défaut
    Re

    Une variante du code précédent
    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
    Public Sub RemplacemenTableau()
     
        ' déclaration des variables
        Dim sld As Slide
        Dim shpTable As Table
        Dim strSource As String ' chemin de l'image
        Dim strRech As String   ' chaine que l'on cherche
        Dim i As Integer        ' pour boucler sur les colonnes
        Dim j As Integer        ' pour boucler sur les lignes
     
        ' affectation
        Set sld = ActivePresentation.Slides(1)
        Set shpTable = sld.Shapes("Groupe 54").Table
        strSource = "C:\Users\Philippe\Desktop\Image2.gif"
        strRech = "<toto>"
     
        ' boucle sur les lignes
        For i = 1 To shpTable.Columns.Count
            For j = 1 To shpTable.Rows.Count
                If shpTable.Cell(j, i).Shape.TextFrame.TextRange.Text = strRech Then
                    With shpTable.Cell(j, i).Shape
                        .Fill.UserPicture strSource
                        .TextFrame.TextRange.Text = ""
                    End With
                End If
            Next j
        Next i
     
     
    End Sub
    Cette fois on remplace <toto> par une image.

    Je pens que ce qui te manque pour arriver à trouver le truc c'est les bouts de code comme le remplissage (Fill).

    Philippe

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 51
    Points : 55
    Points
    55
    Par défaut
    merci beaucoup philippe j'essaye ça quand j'arrive au travail.

    Dis moi ou est ce que tu trouves tout ça car je suis un malade du google mais la j'ai rien trouvé du tout.

    merci beaucoup en tout cas

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par cactus666 Voir le message
    Dis moi ou est ce que tu trouves tout ça car je suis un malade du google mais la j'ai rien trouvé du tout.
    en fait il n'y a pas grand chose en VBA PPT sur le net (à part ici ), il faut utiliser à fond l'explorateur d'objet (F2), et comprendre comment sont héirarchisés les objets (le modèle objet si tu préfères).

    Comme j'ai plein de projets en cours (que je n'arrive pas à finaliser par manque de temps ), j'explore tout cela au fur et à mesure.

    Philippe

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Seine et Marne (Île de France)

    Informations forums :
    Inscription : Août 2007
    Messages : 51
    Points : 55
    Points
    55
    Par défaut
    Citation Envoyé par Philippe JOCHMANS Voir le message
    Re

    Une variante du code précédent
    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
    Public Sub RemplacemenTableau()
     
        ' déclaration des variables
        Dim sld As Slide
        Dim shpTable As Table
        Dim strSource As String ' chemin de l'image
        Dim strRech As String   ' chaine que l'on cherche
        Dim i As Integer        ' pour boucler sur les colonnes
        Dim j As Integer        ' pour boucler sur les lignes
     
        ' affectation
        Set sld = ActivePresentation.Slides(1)
        Set shpTable = sld.Shapes("Groupe 54").Table
        strSource = "C:\Users\Philippe\Desktop\Image2.gif"
        strRech = "<toto>"
     
        ' boucle sur les lignes
        For i = 1 To shpTable.Columns.Count
            For j = 1 To shpTable.Rows.Count
                If shpTable.Cell(j, i).Shape.TextFrame.TextRange.Text = strRech Then
                    With shpTable.Cell(j, i).Shape
                        .Fill.UserPicture strSource
                        .TextFrame.TextRange.Text = ""
                    End With
                End If
            Next j
        Next i
     
     
    End Sub
    Cette fois on remplace <toto> par une image.

    Je pens que ce qui te manque pour arriver à trouver le truc c'est les bouts de code comme le remplissage (Fill).

    Philippe
    merci encore pour ton bout de code qui fonctionne très bien.

    Juste une petite question par rapport à cette ligne la :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set shpTable = sld.Shapes("Groupe 54").Table
    j'ai un tableau par slide mais je ne connais pas le nom des tableaux.

    y'a t'il une solution pour palier à ça

    merci
    cactus666

  10. #10
    Invité
    Invité(e)
    Par défaut
    Re

    Citation Envoyé par cactus666 Voir le message
    j'ai un tableau par slide mais je ne connais pas le nom des tableaux.

    y'a t'il une solution pour palier à ça
    Oui, la FAQ PowerPoint, entre autre :

    Comment sélectionner un objet caché ? en installant cela, tu pourras en même temps voir comment se nomme tes objets.

    Comment renommer les objets d'un diaporama ? te permettra de renommer tes objets, et il existe aussi une macro complémentaire dans la FAQ

    Sinon, un petit code vite fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Public Sub RecupNomTable()
        Dim sld As Slide
        Dim shp As Shape
     
        Set sld = ActivePresentation.Slides(1)
        For Each shp In sld.Shapes
            If shp.Type = msoTable Then
                MsgBox shp.Name
            End If
        Next shp
    End Sub
    Par exemple, celui-ci parcourt toutes les formes de la première slide et test le type, si c'est une table tu as le nom qui apparaît dans une MsgBox


    Philippe

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

Discussions similaires

  1. cherche macro pour supprimer () dans du texte
    Par potiocom dans le forum VBA Word
    Réponses: 5
    Dernier message: 14/10/2011, 14h25
  2. [XL-2007] Macro pour ajouter du texte dans le corps du mail
    Par EmmanuelleFFH dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 10/02/2011, 10h37
  3. Macro pour insérer du texte dans un nouveau message
    Par arnolem dans le forum VBA Outlook
    Réponses: 12
    Dernier message: 21/03/2008, 14h47
  4. algorithme pour chercher une phrase dans un texte
    Par kha_yassine dans le forum Débuter avec Java
    Réponses: 8
    Dernier message: 22/06/2007, 22h24
  5. [VBA]Macro pour lancer une recherche dans un tableau
    Par manhes dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/04/2007, 18h08

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