Carnage029
XLDnaute Occasionnel
Bonjour a tous
J'ai dans un gros fichier Excel cree une fonction permettant de copier une range dans une presentation PowerPoint.
Le code me permet de prendre donc la range avec la premiere ligne de titre et de copier le resultat.
Cependant j'aimerai modifier mon code pour non pas prendre 8 lignes par slide mais ajouter la ligne si le total des cellules a copier a une hauteur inferieure stricte a 550 pixels (mes rows ont toutes des hauteurs variables).
Je vais bien evidemment rajouter un test pour au moins copier une ligne (en plus du titre) si le test est faux pour eviter de tourner en rond...
Pour expliquer mon code, la premiere partie, sert a trier ma sheet "Open Recommendations" avec les criteres que je souhaite
Pui cette partie copie colle chaque groupe de 8 lignes (c'est cela que j'aimerai bien modifier).
Merci a tous
J'ai dans un gros fichier Excel cree une fonction permettant de copier une range dans une presentation PowerPoint.
Le code me permet de prendre donc la range avec la premiere ligne de titre et de copier le resultat.
Cependant j'aimerai modifier mon code pour non pas prendre 8 lignes par slide mais ajouter la ligne si le total des cellules a copier a une hauteur inferieure stricte a 550 pixels (mes rows ont toutes des hauteurs variables).
Je vais bien evidemment rajouter un test pour au moins copier une ligne (en plus du titre) si le test est faux pour eviter de tourner en rond...
Pour expliquer mon code, la premiere partie, sert a trier ma sheet "Open Recommendations" avec les criteres que je souhaite
Code:
Sub copyRecos(PR As Object, NewPowerPoint As Object, Title As String, SliN As Variant)
'Filter
ThisWorkbook.Sheets("Open Recommendations").Activate
Range("P1").Select
ThisWorkbook.Worksheets("Open Recommendations").Sort.SortFields.Clear
ThisWorkbook.Sheets("Open Recommendations").Sort.SortFields.Add Key:= _
Range("P1"), SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:= _
xlSortNormal
With ThisWorkbook.Worksheets("Open Recommendations").Sort
.SetRange Range("A2:Q709")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Pui cette partie copie colle chaque groupe de 8 lignes (c'est cela que j'aimerai bien modifier).
Code:
lastr = ThisWorkbook.Sheets("Open Recommendations").Range("Q" & Rows.Count).End(xlUp).Row
If lastr = 2 Then Exit Sub
cpt = 1
Do While lastr > 0
ThisWorkbook.Sheets("Open Recommendations").Range("A1:Q" & Application.Min(8 * cpt, ThisWorkbook.Sheets("Open Recommendations").Range("Q" & Rows.Count).End(xlUp).Row)).Select
Selection.Copy
Set SL = PR.Slides(SliN + cpt - 1)
SL.Shapes(2).TextFrame.TextRange.Text = Title
NewPowerPoint.ActiveWindow.Panes(2).Activate
With NewPowerPoint.ActiveWindow.View
.GotoSlide SliN + cpt - 1
.PasteSpecial DataType:="02"
End With
ThisWorkbook.Sheets("Open Recommendations").Range("A2:Q" & 8 * cpt).Select
Selection.EntireRow.Hidden = True
cpt = cpt + 1
lastr = lastr - 8
Loop
ThisWorkbook.Sheets("Open Recommendations").Cells.Select
Selection.EntireRow.Hidden = False
End Sub
Merci a tous