bonjour le forum !
j'avance dans mon application, mais bon je coince souvent sur la formulation
voici mon problème :
dans la macro suivante je veux :
j'avoue que je n'arrive pas à trouver la meilleure syntaxe pour traduire cela dans la macro
Merci de m'éclairer sur ce que je peux faire pour que cela tourne correctement !
j'avance dans mon application, mais bon je coince souvent sur la formulation
voici mon problème :
dans la macro suivante je veux :
si la condition "cellule G = 0" ne pas créer de slide dans PPT
sinon dupliquer le slide(1) et remplir le tableau avec les données de la "feuil1"
jusque là pas de problème tout s'exécute bien
mais je veux également :sinon dupliquer le slide(1) et remplir le tableau avec les données de la "feuil1"
jusque là pas de problème tout s'exécute bien
si la condition "cellule B = cellule G", copier les lignes 4 et 5 du slide, les ajouter après la dernière ligne (soit la 5 au départ)
et les remplir avec les données de la "feuil1"
et ce jusqu'à ce que "cellule B <> cellule G
et les remplir avec les données de la "feuil1"
et ce jusqu'à ce que "cellule B <> cellule G
j'avoue que je n'arrive pas à trouver la meilleure syntaxe pour traduire cela dans la macro
Code:
Sub BoucleTest2Conditions()
Dim objPPT As Object
Dim objPres As Object
Dim objSld As Object
Dim objShp As Object
Dim shp As Shape
With Sheets("Feuil1")
Tablo = Range("A2:Z" & Range("A65000").End(xlUp).Row).Value
End With
Set objPPT = CreateObject("Powerpoint.Application")
objPPT.Visible = True
Set objPres = objPPT.Presentations.Open(ThisWorkbook.Path & "\note2.pptm")
objPres.SaveAs ThisWorkbook.Path & "\test.ppt"
For i = 1 To UBound(Tablo)
'si la cellule G est égale 0, alors ne fait rien,
If Tablo(i, 7) = 0 Then
x = x + 1
'sinon
Else
'duplique le slide 1
Set objSld = objPres.Slides(1).Duplicate
'remplit le tableau du slide avec les données
For Each objShp In objSld.Shapes
If objShp.HasTable Then
With objShp.Table
x = x + 1
.Cell(1, 1).Shape.TextFrame.TextRange.Text = Tablo(x, 2) 'Tableau
.Cell(4, 1).Shape.TextFrame.TextRange.Text = Tablo(x, 3) 'Qte
.Cell(4, 2).Shape.TextFrame.TextRange.Text = Tablo(x, 4) 'Description1
.Cell(5, 2).Shape.TextFrame.TextRange.Text = Tablo(x, 5) 'Description2
'=============================================================================
'nouvelle condition :
'si la cellule B = G, alors
If Tablo(i, 2) = Tablo(i, 7) Then
'copie la ligne 2 et 3 du tableau du slide et ajoute les à la suite
'.Row (4) & Row(5).Copy
'et remplit les avec les données
.Cell(4, 1).Shape.TextFrame.TextRange.Text = Tablo(x, 3) 'Qte
.Cell(4, 2).Shape.TextFrame.TextRange.Text = Tablo(x, 4) 'Description1
.Cell(5, 2).Shape.TextFrame.TextRange.Text = Tablo(x, 5) 'Description2
'et autant de fois qu'il y a de lignes où cell B = G
End If
End With
End If
Next
End If
Next
objPres.Slides(1).Delete
objPres.Save
objPres.Close
End Sub