1. #1
    Membre à l'essai
    Inscrit en
    novembre 2010
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : novembre 2010
    Messages : 50
    Points : 16
    Points
    16

    Par défaut Alimentation d'une TextBox

    Bonjour le forum,

    Je travaille actuellement dans une société où je suis entrain de mettre en place un Flash_Report hebdo afin d'avoir une vue d'ensemble de l'avancement des différents projets de la boîte.

    J'ai créé un programme VBA sur Excel afin de récupérer les données des projets via une Base de données dynamique (contenu dans mon Excel) mais également des informations rempli par les utilisateurs dans une UserForm (leur ressenti sur le projet, les risques, commentaires de la semaine etc).

    Ceci étant effectué, je souhaite remplir un Powerpoint avec les données de ledit programme Excel
    Je ne peux pas utiliser de liaison dynamique car des slides doivent se créer automatiquement dans le PowerPoint lors de l'apparition d'un nouveau projet dans l'Excel.

    J'ai ajouté une boucle sur les différentes shapes de mon powerpoint et si l'élément textbox est égal au nom de la variable que je recherche, j'alimente la donnée.
    Mon problème actuel est que je n'arrive pas a trouver la fonction a utiliser pour alimenter ma textbox (.value / .text etc n'existe pas)


    Voici une partie du 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
        Dim objSld As Slide
        Dim objShp As Shape
     
            For Each objSld In ActivePresentation.Slides
                 objSld.Select
                 ' on boucle sur l'ensemble des shapes
                 For Each objShp In objSld.Shapes
                     objShp.Select
                        If objShp.Name = "TextNomProjet" Then
                            .Text = "TOTO"
                            'TOTO sera remplacé par une variable par la suite
                         End If
                 Next objShp
             Next objSld
    J'ai parcouru pas mal de sujet sur différents forum mais je ne trouve pas de réponse.

    Merci d'avance pour votre aide.

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    2 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 2 079
    Points : 5 577
    Points
    5 577
    Billets dans le blog
    19

    Par défaut

    Citation Envoyé par cha_choux Voir le message
    Bonjour,

    Pour récupérer le contenu de vos Shapes, essayez
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    objShp.TextFrame.TextRange.Text
    Vos Select sont inutiles.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  3. #3
    Membre à l'essai
    Inscrit en
    novembre 2010
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : novembre 2010
    Messages : 50
    Points : 16
    Points
    16

    Par défaut

    Bonjour Eric,

    Merci pour votre retour.

    Lorsque j'essaye d'utiliser ce type de ligne de code j'ai un message d'erreur "La valeur tapée est en dehors des limites"
    Merci pour les .select je vais les supprimer

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    2 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 2 079
    Points : 5 577
    Points
    5 577
    Billets dans le blog
    19

    Par défaut

    Citation Envoyé par cha_choux Voir le message
    Lorsque j'essaye d'utiliser ce type de ligne de code j'ai un message d'erreur "La valeur tapée est en dehors des limites"
    Sans avoir un exemple, je ne peux pas vous renseigner.
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  5. #5
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA migrant tranquillement vers C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    12 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Developpeur VBA migrant tranquillement vers C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 12 024
    Points : 26 693
    Points
    26 693

    Par défaut

    Salut,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub piou()
        ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = "PLOP"
    End Sub
    fonctionne tres bien chez moi.

    Quelle valeur essaies-tu d'indiquer dans ta textbox ?
    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  6. #6
    Membre à l'essai
    Inscrit en
    novembre 2010
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : novembre 2010
    Messages : 50
    Points : 16
    Points
    16

    Par défaut

    Je vais tester ta ligne mais il me semble avoir déjà tenté (j'ai pas mal tourné en vain)
    Avec cette ligne je ne vois pas comment modifier toutes mes textbox

    Voici des screen pour vous expliquer un peu mieux le projet
    J'ai créé un UF sur Excel qui récupère pour chaque Chef de projet et Projet les informations via une BDD (direct dans l'Excel)
    Nom : IMG_UF.JPG
Affichages : 126
Taille : 91,7 Ko

    Le CDP voit les données et ajoute s'il le veut des commentaires puis enregistre ce qui écrase une feuille Excel au nom du projet ou si celui ci n'existe pas crée une nouvelle feuille Excel
    Nom : IMG_Excel.JPG
Affichages : 122
Taille : 49,6 Ko

    Pour que la DSI voit les données de façon plus sexy j'ai créé un PWP avec une slide dupliquée par le nombre de projets.
    Dans chaque slide j'ai une bonne cinquantaine de textbox que je voudrais remplir avec les données de chaque feuille Excel
    Nom : IMG_PWP.JPG
Affichages : 127
Taille : 62,3 Ko

    Par Exemple pour le Fameux TextNomProjet sa valeur devrait être B2 dans l'Excel
    C'est peut être plus compréhensible du coup

  7. #7
    Membre à l'essai
    Inscrit en
    novembre 2010
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : novembre 2010
    Messages : 50
    Points : 16
    Points
    16

    Par défaut

    Pouvez vous me confirmer que votre méthode fonctionne uniquement pour les Zone de Texte et non les TextBox ?
    S'il s'agit pour moi uniquement de modifier des textbox en zone de texte ca peut m'arranger

  8. #8
    Expert confirmé

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    2 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 2 079
    Points : 5 577
    Points
    5 577
    Billets dans le blog
    19

    Par défaut

    Citation Envoyé par cha_choux Voir le message
    La question initiale concerne la méthode pour injecter une valeur dans un objet Shape. Indépendamment de vos Textbox, avez-vous réussi à injecter une valeur (texte, numérique) dans un shape d'un de vos slides ?
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  9. #9
    Membre à l'essai
    Inscrit en
    novembre 2010
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : novembre 2010
    Messages : 50
    Points : 16
    Points
    16

    Par défaut

    Eric,

    Je n'arrive effectivement pas a insérer de valeur dans l'une de mes textbox. (sauf si je l'ajoute directement en VBA)
    J'arrive à récupérer le nom que je leur donne avec objShp.Name dans ma boucle

    A contrario j'arrive a utiliser la ligne de code ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = "toto" dans ma slide1 (celle du titre) mais pas dans mes slides bourrées de textbox

  10. #10
    Membre à l'essai
    Inscrit en
    novembre 2010
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : novembre 2010
    Messages : 50
    Points : 16
    Points
    16

    Par défaut

    Voici le code complet (il est très brouillon car j'ai mis pas mal de met ligne en suspens pour l'instant...)

    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
    Sub Flash_Report()
     
    'Variables de la fonction
    Dim Fichier, Chemin, NomFeuille As String
    Dim j, k As Integer
    Dim xl As Excel.Application
    Dim wb As Excel.Workbook
    Dim ws As Excel.Worksheet
    Dim objSld As Slide ' slide
    Dim objShp As Shape ' shape
     
    Chemin = "C:\Users\csagatova\Pictures\"
    Fichier = "Flash_Report.xlsm"
     
    'Ouverture d'Excel
        Set xl = New Excel.Application
        xl.Visible = True
        Excel.Application.EnableEvents = False
        Set wb = xl.Workbooks.Open(Chemin & Fichier)
        Excel.Application.EnableEvents = True
        Workbooks(Fichier).Activate
     
     
        'Boucle pour passer dans toutes les feuilles de l'Excel
        k = Worksheets.Count
        j = 0
        i = ActivePresentation.Slides.Count
     
        Do Until k < j  'Boucle Excel
            NomFeuille = Workbooks(Fichier).Sheets(k).Name
            Sheets(NomFeuille).Activate
            l = 0
            'For i = 1 To ActivePresentation.Slides.Count 'Boucle PowerPoint
                'ActivePresentation.Slides(i).Select
     
            For Each objSld In ActivePresentation.Slides
                 ' =======> on boucle sur l'ensemble des shapes <========
                 For Each objShp In objSld.Shapes
                   If objShp.Name = "TextNomProjet2" Then
                       MsgBox objSld.Name
                       Sheets(NomFeuille).Activate
                       ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = Range("B2")
                    End If
                 Next objShp
             Next objSld
     
     
              '  If shp.TextFrame.TextRange = "TOTO" Then
               '     Sheets(NomFeuille).Activate
                '   TextNomProjet.Value = Range("B1")
                   ' l = 1 'Variable pour savoir si la feuille Excel à une diapo Powerpoint
               ' End If
          '  If l = 0 Then
                'Création d'une diapo avec les éléments dedans
              '  MsgBox "n'existe pas"
           ' End If
     
           If k = 3 Then Exit Do
            k = k - 1
        Loop
     
     
    'Fermeture de l'Excel
    'Workbooks(Fichier).Close
     
    End Sub

  11. #11
    Expert confirmé

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    2 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 2 079
    Points : 5 577
    Points
    5 577
    Billets dans le blog
    19

    Par défaut

    Citation Envoyé par cha_choux Voir le message
    Pas testé :

    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
     
    Sub Flash_ReportModifie()
     
    'Variables de la fonction
    Dim Fichier, Chemin, NomFeuille As String
     
    Dim xl As Excel.Application
    Dim wb As Excel.Workbook
    Dim ws As Excel.Worksheet
     
    Dim MaPresentation As Presentation
    Dim objSld As Slide ' slide
    Dim objShp As Shape ' shape
     
     
        Set MaPresentation = ActivePresentation
        Chemin = "C:\Users\csagatova\Pictures\"
        Fichier = "Flash_Report.xlsm"
     
        'Ouverture d'Excel
        Set xl = New Excel.Application
     
        With xl
            .Visible = True
            .EnableEvents = False
            Set wb = .Workbooks.Open(Chemin & Fichier)
            .EnableEvents = True
        End With
     
     
        'Boucle pour passer dans toutes les feuilles de l'Excel
        For Each ws In wb.sheets
            Select Case ws.Name
                   Case "Nom1", "Nom2" ' Visiblement 2 onglets sur l'ensemble ne sont pas testés
     
                   Case Else
                        For Each objSld In MaPresentation.Slides
                            ' =======> on boucle sur l'ensemble des shapes <========
                            For Each objShp In objSld.Shapes
                                If objShp.Name = "TextNomProjet2" Then
                                   objSld.objShp.TextFrame.TextRange.Text = ws.Range("B2")
                                End If
                            Next objShp
                        Next objSld
            End Select
         Next ws
     
         'Fermeture de l'Excel
         wb.Close savechanges:=False
         Set wb = Nothing
         xl.Quit
         Set xl = Nothing
         Set MaPresentation = Nothing
     
     
    End Sub
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  12. #12
    Expert éminent

    Homme Profil pro
    Développeur .NET
    Inscrit en
    janvier 2012
    Messages
    3 764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : janvier 2012
    Messages : 3 764
    Points : 7 657
    Points
    7 657
    Billets dans le blog
    17

    Par défaut

    Bonjour,

    Citation Envoyé par cha_choux Voir le message
    Eric,

    A contrario j'arrive a utiliser la ligne de code ActivePresentation.Slides(1).Shapes(1).TextFrame.TextRange.Text = "toto" dans ma slide1 (celle du titre) mais pas dans mes slides bourrées de textbox
    Slides, c'est la collection des diapositives d'une présentation.

    Slides(1) c'est la diapositive numéro 1
    Slides(2) c'est la diapositive numéro 2

    Pour modifier la diapositive numéro x, tu dois mettre le numéro qui correspond à x

    Shapes c'est la collection des shape de la diapositive. Chaque shape a son propre numéro et chaque shape a son propre textframe.

    Mais, là ou je dis que tu as un gros problème c'est que pour chaque shape tu dois tester tous les noms possibles. Et l'autre problème, c'est qu'une shape peut contenir d'autres shapes. Là, cela veut dire que pour chaque shape "de base" tu dois retrouver toutes les shapes incluses dans cette shape "de base". Chacune de ces shapes incluses a peut-être son propre textframe et son propre nom. Par exemple, ton cadre "Résumé" est déjà une shape qui contient apparemment 18 autres shapes. Et, je dirais que ton cadre "Progression" est une shape qui contient 2 autres shapes.


    Et puis, quand tu parles de TextBoxes, est-ce que ce sont des cadres de texte PowerPoint, ou des contrôles activex. Parce que dans PowerPoint une shape cela peut être bien des choses : un cadre de texte, une image, un clip-art, un tableau, un activex, une feuille Excel et probablement des choses que j'oublie. Et selon le type de shape, tu peux faire certaines choses, ou non.

    J'ai comme l'impression que tu devrais établir la "cartographie" de tes diapositives et de l'utiliser pour atteindre tes objets directement, sur la base de la ligne de Jean-Philippe André. avec les bons numéros et toute la "ligne de shapes.

    PS Un activex, c'est une shape de type OLEObject et n'a probablement pas de textframe.

    shape.type
    shape.autoshapetype
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    À force de vouloir considérer les utilisateurs comme des imbéciles patentés, on risque de se mettre dans le trouble.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  13. #13
    Expert confirmé

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    2 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 2 079
    Points : 5 577
    Points
    5 577
    Billets dans le blog
    19

    Par défaut

    Citation Envoyé par cha_choux Voir le message
    Il manque une condition dans votre code et dans celui que j'ai renvoyé pour récupérer la valeur de la cellule B2. Dans ce code, n'importe quel onglet testé remplit la condition. Dans ce cas, ce n'est donc pas utile de balayer les onglets, il suffit d'en prendre 1 parmi ceux différents de deux premiers (dans votre code, K va jusqu'à 3).
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  14. #14
    Membre à l'essai
    Inscrit en
    novembre 2010
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : novembre 2010
    Messages : 50
    Points : 16
    Points
    16

    Par défaut

    Bonjour à vous deux,

    Vous m'avez bien éclairé sur l'utilisation des shapes je vous en remercies !
    Je vais essayer de dupliquer ma slide comprenant mon titre puisqu'elle fonctionne et ajouter des zones de texte en copier coller (les numéro devront logiquement se suivre) et de dupliquer la slide pour voir s'il réagit bien

    Eric la condition est que la textbox "TextNomProjet" soit égale au nom de la feuille dans Excel
    Je vais du la fin jusqu'a 3, car dans ma feuille 1 se trouve ma BDD, et dans mes feuilles 2 des conditions de listbox (pour le ressenti projet/équipe afin d'afficher plusieurs images)

    Je vous tiens au courant dans la journée
    PS : vous m'avez remonté le morale !

  15. #15
    Expert confirmé

    Homme Profil pro
    Développeur Vba Excel
    Inscrit en
    avril 2013
    Messages
    2 079
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur Vba Excel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : avril 2013
    Messages : 2 079
    Points : 5 577
    Points
    5 577
    Billets dans le blog
    19

    Par défaut

    Citation Envoyé par cha_choux Voir le message
    Eric la condition est que la textbox "TextNomProjet" soit égale au nom de la feuille dans Excel
    Je vais du la fin jusqu'a 3, car dans ma feuille 1 se trouve ma BDD, et dans mes feuilles 2 des conditions de listbox (pour le ressenti projet/équipe afin d'afficher plusieurs images)
    Dans ce cas, il faut changer la condition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     If objShp.Name = ws.Name  Then
    Eric KERGRESSE
    https://sites.google.com/site/erickergresseeirl/
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter

  16. #16
    Membre à l'essai
    Inscrit en
    novembre 2010
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : novembre 2010
    Messages : 50
    Points : 16
    Points
    16

    Par défaut

    Bonjour Eric

    J'essaye comme cela dans un nouveau PWP (le code est très moche, je verrais si je peux utiliser des variables mais je suis assez frileuse je n'ai pas envie que tout casse)
    Mais je crois que le fait d'arrêter de lui demander de passer par chaque Shape ne lui plait pas, puisqu'aucune modification n'est prise en compte

    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
         'Boucle pour passer dans toutes les feuilles de l'Excel
        k = Worksheets.Count
        j = 0
        'i = ActivePresentation.Slides.Count
        i = 2
     
        Do Until k < j  'Boucle Excel
            NomFeuille = Workbooks(Fichier).Sheets(k).Name
            Sheets(NomFeuille).Activate
            l = 0
     
                 ' =======> on boucle sur l'ensemble des sides <========
                 For i = 2 To ActivePresentation.Slides.Count 'Boucle PowerPoint
                    If ActivePresentation.Slides(i).Shapes(1).TextFrame.TextRange.Text = Range("B1") Then
                        Sheets(NomFeuille).Activate
                        ActivePresentation.Slides(i).Shapes(1).TextFrame.TextRange.Text = Range("B1")
                        ActivePresentation.Slides(i).Shapes(2).TextFrame.TextRange.Text = Range("B2")
                        ActivePresentation.Slides(i).Shapes(3).TextFrame.TextRange.Text = Range("B3")
                        ActivePresentation.Slides(i).Shapes(4).TextFrame.TextRange.Text = Range("B4")
                        ActivePresentation.Slides(i).Shapes(5).TextFrame.TextRange.Text = Range("B5")
                        ActivePresentation.Slides(i).Shapes(6).TextFrame.TextRange.Text = Range("B6")
                        ActivePresentation.Slides(i).Shapes(7).TextFrame.TextRange.Text = Range("C2")
                        ActivePresentation.Slides(i).Shapes(8).TextFrame.TextRange.Text = Range("C3")
                        ActivePresentation.Slides(i).Shapes(9).TextFrame.TextRange.Text = Range("C4")
                     End If
                 Next i
     
              '  If shp.TextFrame.TextRange = "TOTO" Then
               '     Sheets(NomFeuille).Activate
                '   TextNomProjet.Value = Range("B1")
                   ' l = 1 'Variable pour savoir si la feuille Excel à une diapo Powerpoint
               ' End If
          '  If l = 0 Then
                'Création d'une diapo avec les éléments dedans
              '  MsgBox "n'existe pas"
           ' End If
     
           If k = 3 Then Exit Do
            k = k - 1
        Loop

  17. #17
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Developpeur VBA migrant tranquillement vers C# et VB.Net =]
    Inscrit en
    juillet 2007
    Messages
    12 024
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Developpeur VBA migrant tranquillement vers C# et VB.Net =]
    Secteur : Finance

    Informations forums :
    Inscription : juillet 2007
    Messages : 12 024
    Points : 26 693
    Points
    26 693

    Par défaut

    Le i=i+1 a une utilite ulterieure ?

    Tu peux "simplifier" ton code avec une idee comme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Dim Cellules as variant
    Cellules =   Array("B1","B2","B3","B4","B5","B6","C2","C3","C4")
     
    For i = 2 To ActivePresentation.Slides.Count 'Boucle PowerPoint
                   If ActivePresentation.Slides(i).Shapes(1).TextFrame.TextRange.Text = Range("B1") Then
                       Sheets(NomFeuille).Activate
                       For j = 1 To 9                     
                           ActivePresentation.Slides(i).Shapes(j).TextFrame.TextRange.Text = Range(Cellules(j))
                       Next j
                    End If
                 Next i
    Pas de question technique par MP, je ne réponds pas

    Apprendre à programmer avec Access 2016

    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  18. #18
    Membre à l'essai
    Inscrit en
    novembre 2010
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : novembre 2010
    Messages : 50
    Points : 16
    Points
    16

    Par défaut

    Ton code est impressionnant...

    Non pour le i=i+1 j'avais oublié que next i faisait déjà le boulot (pas tapé)

    J'ai encore un problème qui fait que aucun changement n'est apporté dans mes shapes je vais essayer de comprendre pourquoi

    Je reviens
    Merci encore les garçons c'est très gentil

  19. #19
    Membre à l'essai
    Inscrit en
    novembre 2010
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : novembre 2010
    Messages : 50
    Points : 16
    Points
    16

    Par défaut

    Citation Envoyé par Eric KERGRESSE Voir le message
    Dans ce cas, il faut changer la condition :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     If objShp.Name = ws.Name  Then
    Eric,

    Merci pour le ws.Name je n'y avais pas pensé !
    Comme je passe par ActivePresentation.Slides(i).Shapes(1) je dois modifier ta ligne de code, qui sera normalement celle qui permettra de me sortir de cette impasse

  20. #20
    Membre à l'essai
    Inscrit en
    novembre 2010
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : novembre 2010
    Messages : 50
    Points : 16
    Points
    16

    Par défaut

    Je crois avoir trouvé pourquoi aucune modification est effectuée.
    J'ai ajouté des rectangles pour refaire mes semblants de tableaux... Il prend les rectangles pour des Shapes (mes excuses clément j'avais oublié ce détail)

    Je modifie et vous tiens au courant (j'essaye de vous faire des messages d'évolutions assez souvent pour ne pas vous induire en erreur sur des problèmes que je crée toute seule à côté)

Discussions similaires

  1. [XL-2003] Changer le mode d'alimenter une TextBox
    Par criscris11 dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 24/07/2012, 11h54
  2. Réponses: 11
    Dernier message: 31/08/2010, 09h49
  3. Alimenter une TextBox Avec le contenu d'une cellule
    Par nico18987 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 29/10/2008, 21h41
  4. alimenter automatiquement une table access
    Par Mickey34 dans le forum Access
    Réponses: 8
    Dernier message: 24/11/2004, 17h55
  5. Réponses: 3
    Dernier message: 25/03/2004, 11h35

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