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
| Sub ExportToPDF()
Dim tbl As ListObject
Dim arr() As Variant
Dim i As Long, j As Long
Dim newWs As Worksheet
Dim rng As Range
Set tbl = ThisWorkbook.Sheets("Feuil1").ListObjects("Tableau1") ' Remplacez "Feuil1" et "Tableau1" par le nom de votre feuille de calcul et de votre tableau
' Copie des données du tableau dans un tableau en mémoire
arr = tbl.Range.Value
' Nouvelle feuille de calcul
Set newWs = ThisWorkbook.Sheets.Add
' Copie des données du tableau en mémoire dans la nouvelle feuille de calcul
j = 1
For i = 1 To UBound(arr, 1)
If i = 1 Or arr(i, 10) <> "Non examiné(e)" Then
newWs.Cells(j, 1).Value = arr(i, 3)
newWs.Cells(j, 2).Value = arr(i, 5)
newWs.Cells(j, 3).Value = arr(i, 6)
newWs.Cells(j, 4).Value = arr(i, 10)
j = j + 1
End If
Next i
With newWs
' Définissez la largeur des colonnes
.Columns(1).ColumnWidth = 15
.Columns(2).ColumnWidth = 12
.Columns(3).ColumnWidth = 4
.Columns(4).ColumnWidth = 10
' Alignez le texte des colonnes à gauche
.Columns("A:D").HorizontalAlignment = xlLeft
' Ajoutez un quadrillage
.Range(newWs.Cells(1, 1), newWs.Cells(j - 1, 4)).Borders.LineStyle = xlContinuous
' Coloriez la ligne d'en-têtes
.Range(newWs.Cells(1, 1), newWs.Cells(1, 4)).Interior.Color = RGB(173, 216, 230) ' Remplacez les valeurs RGB par celles de votre choix
End With
' Exportez la nouvelle feuille de calcul en PDF
Set rng = newWs.Range(newWs.Cells(1, 1), newWs.Cells(j - 1, 4))
rng.ExportAsFixedFormat Type:=xlTypePDF, Filename:="C:\temp\export.pdf" ' Remplacez "C:\temp\export.pdf" par le chemin de votre choix
' Supprimez la nouvelle feuille de calcul
Application.DisplayAlerts = False
newWs.Delete
Application.DisplayAlerts = True
MsgBox "Traitement terminé!", vbInformation
End Sub |
Partager