Bonjour,
Je suis consciente que ce que je demande est peut-être inexistant, mais j'ai une lueur d'espoir.
J'ai deux fichiers Excel et PowerPoint qui collaborent, Excel étant ma base.
Du fichier Excel, j'ai extrait des données texte pour les copier dans PowerPoint dans une zone de texte "espaceCom".
Cependant, le texte extrait est trop grand pour l'espace dédié. Je ne souhaite pas réduire la taille du texte, car il deviendrait illisible, et je ne peux pas non plus augmenter la taille de la zone 'espaceCom'.
Je me suis dit qu'en rendant le texte dynamique avec une barre de défilement ou un petit ascenseur sur le côté, cela pourrait fonctionner.
Mais, après avoir fouillé partout, je ne trouve aucune piste de solution.
S'il vous plaît, quelqu'un peut-il m'orienter ou m'aider dans ce sens ?
Merci
Sub Campus()
Dim c As Range
Dim texte As String
Dim PPApp As Object
Dim PPTPrésentation As Object
Dim slideIndex As Integer
' Ouverture du PowerPoint s'il n'est pas déjà ouvert
On Error Resume Next
Set PPApp = GetObject(, "PowerPoint.Application")
On Error GoTo 0
If PPApp Is Nothing Then
Set PPApp = CreateObject("PowerPoint.Application")
End If
PPApp.Visible = True
' Ouverure de la présentation PowerPoint existante ou creation d' une nouvelle présentation
On Error Resume Next
Set PPTPrésentation = PPApp.Presentations("ppt5E35.pptx")
On Error GoTo 0
If PPTPrésentation Is Nothing Then
Set PPTPrésentation = PPApp.Presentations.Open(ThisWorkbook.Path & "\ppt5E35.pptx")
End If
' Concaténation les données de la colonne 2 (C) de Tableau1 dans Excel
For Each c In ThisWorkbook.Sheets("Feuille1").Range("G2:G" & ThisWorkbook.Sheets("Feuille1").Cells(Rows.Count, 2).End(xlUp).Row)
If c.Offset(0, -1).Value >= 1 Then ' Vérifier si la note en colonne B est supérieure ou égale à 4
If c.Value <> "" Then
texte = texte & vbLf & "- " & c.Value ' Pour Ajouter un tiret devant chaque nouveau commentaire
End If
End If
Next
texte = Mid(texte, 2) ' Supprimer le premier retour à la ligne
' Insérer le texte dans le premier slide de la présentation
slideIndex = 2
With PPTPrésentation.Slides(slideIndex).Shapes("espaceCom").TextFrame.TextRange
.Text = texte
.ParagraphFormat.Alignment = 1 ' 1=alignement à gauche
End With
' Activer PowerPoint
AppActivate PPApp.Caption
End Sub
Je suis consciente que ce que je demande est peut-être inexistant, mais j'ai une lueur d'espoir.
J'ai deux fichiers Excel et PowerPoint qui collaborent, Excel étant ma base.
Du fichier Excel, j'ai extrait des données texte pour les copier dans PowerPoint dans une zone de texte "espaceCom".
Cependant, le texte extrait est trop grand pour l'espace dédié. Je ne souhaite pas réduire la taille du texte, car il deviendrait illisible, et je ne peux pas non plus augmenter la taille de la zone 'espaceCom'.
Je me suis dit qu'en rendant le texte dynamique avec une barre de défilement ou un petit ascenseur sur le côté, cela pourrait fonctionner.
Mais, après avoir fouillé partout, je ne trouve aucune piste de solution.
S'il vous plaît, quelqu'un peut-il m'orienter ou m'aider dans ce sens ?
Merci
Sub Campus()
Dim c As Range
Dim texte As String
Dim PPApp As Object
Dim PPTPrésentation As Object
Dim slideIndex As Integer
' Ouverture du PowerPoint s'il n'est pas déjà ouvert
On Error Resume Next
Set PPApp = GetObject(, "PowerPoint.Application")
On Error GoTo 0
If PPApp Is Nothing Then
Set PPApp = CreateObject("PowerPoint.Application")
End If
PPApp.Visible = True
' Ouverure de la présentation PowerPoint existante ou creation d' une nouvelle présentation
On Error Resume Next
Set PPTPrésentation = PPApp.Presentations("ppt5E35.pptx")
On Error GoTo 0
If PPTPrésentation Is Nothing Then
Set PPTPrésentation = PPApp.Presentations.Open(ThisWorkbook.Path & "\ppt5E35.pptx")
End If
' Concaténation les données de la colonne 2 (C) de Tableau1 dans Excel
For Each c In ThisWorkbook.Sheets("Feuille1").Range("G2:G" & ThisWorkbook.Sheets("Feuille1").Cells(Rows.Count, 2).End(xlUp).Row)
If c.Offset(0, -1).Value >= 1 Then ' Vérifier si la note en colonne B est supérieure ou égale à 4
If c.Value <> "" Then
texte = texte & vbLf & "- " & c.Value ' Pour Ajouter un tiret devant chaque nouveau commentaire
End If
End If
Next
texte = Mid(texte, 2) ' Supprimer le premier retour à la ligne
' Insérer le texte dans le premier slide de la présentation
slideIndex = 2
With PPTPrésentation.Slides(slideIndex).Shapes("espaceCom").TextFrame.TextRange
.Text = texte
.ParagraphFormat.Alignment = 1 ' 1=alignement à gauche
End With
' Activer PowerPoint
AppActivate PPApp.Caption
End Sub