Enregistrer en pdf au nom d'une cellule
Bonjour a tous
Je recherche svp un code pour placer un bouton sur une feuille1 qui enregistre une feuille 2 au format pdf et au nom d'une cellule de la feuille1du même classeur
Merci pour votre aide
Salut cemoibob,
regarde en bas du sujet il y a assez de slutions!
exemple: https://forum.excel-pratique.com/viewtopic.php?f=2&t=74564
Bonne chance
Salut cemoibob,
regarde en bas du sujet il y a assez de slutions!
exemple: https://forum.excel-pratique.com/viewtopic.php?f=2&t=74564
Bonne chance
Merci
Oui j'ai vu ça j'ai essayé ça ne fonctionne pas.
Pour moi, le bouton avec la macro est sur la feuille 1 et il doit enregistrer feuille 2 en pdf mais au nom d'une cellule de la feuille 1
Essaie comme ca
Sub enregistrerpdf()
Dim nompdf As String
Dim dossier As String
Dim sh As Worksheet
sh = Worksheets("feuil2") ' adapte le nom de la feuille
dossier = ThisWorkbook.Path
nompdf = dossier & "\" & ActiveSheet.Range("B31") ' adapte le nom de la céllule
sh.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub
Essaie comme ca
Sub enregistrerpdf() Dim nompdf As String Dim dossier As String Dim sh As Worksheet sh = Worksheets("feuil2") ' adapte le nom de la feuille dossier = ThisWorkbook.Path nompdf = dossier & "\" & ActiveSheet.Range("B31") ' adapte le nom de la céllule sh.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End Sub
Merci beaucoup
J'essaie ça demain au bureau et je te redis
Encore merci pour le temps que tu consacré
Essaie comme ca
Sub enregistrerpdf() Dim nompdf As String Dim dossier As String Dim sh As Worksheet sh = Worksheets("feuil2") ' adapte le nom de la feuille dossier = ThisWorkbook.Path nompdf = dossier & "\" & ActiveSheet.Range("B31") ' adapte le nom de la céllule sh.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End Sub
Bonjour
J'ai essayé ça mais ça bloque la ligne sh = (feuille2)...est surligné en jaune.
J'ai bien sûr adapté (feuille2)
??
Oh sorry il y a un Set qui monque
Sub enregistrerpdf()
Dim nompdf As String
Dim dossier As String
Dim sh As Worksheet
Set sh = Worksheets("feuil2") ' adapte le nom de la feuille
dossier = ThisWorkbook.Path
nompdf = dossier & "\" & ActiveSheet.Range("B31") ' adapte le nom de la céllule
sh.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
End Sub
Oh sorry il y a un Set qui monque
Sub enregistrerpdf() Dim nompdf As String Dim dossier As String Dim sh As Worksheet Set sh = Worksheets("feuil2") ' adapte le nom de la feuille dossier = ThisWorkbook.Path nompdf = dossier & "\" & ActiveSheet.Range("B31") ' adapte le nom de la céllule sh.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End Sub
ca m'enregistre la feuille1 au nom de la cellule dans la feuille1
mais ce que je voudrais c'est enregistrer feuille 2 au nom de cellule dans feuille 1
"excuse moi si je me suis mal exprimé"
Bonjour,
N'y aurait-il pas doublon sur ce sujet ?
Cdlt.
https://forum.excel-pratique.com/viewtopic.php?p=792013#p792013
Oh sorry il y a un Set qui monque
Sub enregistrerpdf() Dim nompdf As String Dim dossier As String Dim sh As Worksheet Set sh = Worksheets("feuil2") ' adapte le nom de la feuille dossier = ThisWorkbook.Path nompdf = dossier & "\" & ActiveSheet.Range("B31") ' adapte le nom de la céllule sh.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End Sub
ca m'enregistre la feuille1 au nom de la cellule dans la feuille1
mais ce que je voudrais c'est enregistrer feuille 2 au nom de cellule dans feuille 1
"excuse moi si je me suis mal exprimé"
met ton fichier pour voir
Oh sorry il y a un Set qui monque
Sub enregistrerpdf() Dim nompdf As String Dim dossier As String Dim sh As Worksheet Set sh = Worksheets("feuil2") ' adapte le nom de la feuille dossier = ThisWorkbook.Path nompdf = dossier & "\" & ActiveSheet.Range("B31") ' adapte le nom de la céllule sh.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End Sub
ca m'enregistre la feuille1 au nom de la cellule dans la feuille1
mais ce que je voudrais c'est enregistrer feuille 2 au nom de cellule dans feuille 1
"excuse moi si je me suis mal exprimé"
met ton fichier pour voir
merci pour ton aide m3ellem1,
entre temps j'ai pensé a faire ça mais avec une liste deroulante et il y a "jean-eric" qui m'a trouvé cette solution que tu aurrai certainement trouvé aussi!
sauf que dans cette solution tou fonctionne mais je voudrais que ce fichier generer en pdf soit sauvegarder en pdf et au nom d'une celle (nom client):
voila le code:
Public Sub CreatePDF()
Dim ws As Worksheet
Dim strPath As String, strSheetName As String, strFilename As String
With ActiveWorkbook
strPath = .Path & Application.PathSeparator
strSheetName = .Worksheets("Feuil1").Cells(2, 2).Value
On Error Resume Next
Set ws = .Worksheets(strSheetName)
On Error GoTo 0
End With
If Not ws Is Nothing Then
strFilename = strPath & strSheetName & ".pdf"
ws.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=strFilename, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End If
End Sub
Oh sorry il y a un Set qui monque
Sub enregistrerpdf() Dim nompdf As String Dim dossier As String Dim sh As Worksheet Set sh = Worksheets("feuil2") ' adapte le nom de la feuille dossier = ThisWorkbook.Path nompdf = dossier & "\" & ActiveSheet.Range("B31") ' adapte le nom de la céllule sh.ExportAsFixedFormat Type:=xlTypePDF, Filename:=nompdf & ".pdf", Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False End Sub
ca m'enregistre la feuille1 au nom de la cellule dans la feuille1
mais ce que je voudrais c'est enregistrer feuille 2 au nom de cellule dans feuille 1
"excuse moi si je me suis mal exprimé"
met ton fichier pour voir
merci pour ton aide m3ellem1
entre temp j'ai pensé a faire ça avec une liste deroulante et "jean eric" m'a trouvé une solution, que tu aurrais certainement trouvé aussi, elle fonctionne bien sauf que j'aurrai aimé que la fichier generer en pdf soit enregistrer dans un dossier ("C:\Users\Utilisateur\Desktop\clients\Factures\) au nom d'une cellule de la fauille 1(nom client).
voila le code:
Public Sub CreatePDF()
Dim ws As Worksheet
Dim strPath As String, strSheetName As String, strFilename As String
With ActiveWorkbook
strPath = .Path & Application.PathSeparator
strSheetName = .Worksheets("Feuil1").Cells(2, 2).Value
On Error Resume Next
Set ws = .Worksheets(strSheetName)
On Error GoTo 0
End With
If Not ws Is Nothing Then
strFilename = strPath & strSheetName & ".pdf"
ws.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=strFilename, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End If
End Sub
Ok, essaie comme ca
Public Sub CreatePDF()
Dim ws As Worksheet
Dim strPath As String, strSheetName As String, strFilename As String
With ActiveWorkbook
strPath = "C:\Users\Utilisateur\Desktop\clients\Factures\"
strSheetName = .Worksheets("Feuil1").Cells(2, 2).Value
On Error Resume Next
Set ws = .Worksheets(strSheetName)
On Error GoTo 0
End With
If Not ws Is Nothing Then
strFilename = strPath & strSheetName & ".pdf"
ws.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=strFilename, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End If
End Sub
Ok, essaie comme ca
Public Sub CreatePDF() Dim ws As Worksheet Dim strPath As String, strSheetName As String, strFilename As String With ActiveWorkbook strPath = "C:\Users\Utilisateur\Desktop\clients\Factures\" strSheetName = .Worksheets("Feuil1").Cells(2, 2).Value On Error Resume Next Set ws = .Worksheets(strSheetName) On Error GoTo 0 End With If Not ws Is Nothing Then strFilename = strPath & strSheetName & ".pdf" ws.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=strFilename, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=True End If End Sub
impec ca sauvegarde bien dans le dossier specifié sauf que ça ne sauvegarde pas au nom du client cellule G5 dans feuille 1
Public Sub CreatePDF()
Dim ws As Worksheet
Dim strPath As String, strSheetName As String, strFilename As String
With ActiveWorkbook
strPath = "C:\Users\Utilisateur\Desktop\clients\Factures\"
strSheetName = .Worksheets("Feuil1").Cells(5, 7).Value
On Error Resume Next
Set ws = .Worksheets(strSheetName)
On Error GoTo 0
End With
If Not ws Is Nothing Then
strFilename = strPath & strSheetName & ".pdf"
ws.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=strFilename, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=True
End If
End Sub
Public Sub CreatePDF() Dim ws As Worksheet Dim strPath As String, strSheetName As String, strFilename As String With ActiveWorkbook strPath = "C:\Users\Utilisateur\Desktop\clients\Factures\" strSheetName = .Worksheets("Feuil1").Cells(5, 7).Value On Error Resume Next Set ws = .Worksheets(strSheetName) On Error GoTo 0 End With If Not ws Is Nothing Then strFilename = strPath & strSheetName & ".pdf" ws.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=strFilename, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=True End If End Sub
il se passe rien.
par contre quand je met cells(20, 8). value ca fonctionne mais le fichier est au nom de feuille2
en cells(20,8) j'ai ma liste deroulante
le nom client est en cells(7,5) cellule G5 de la feuille1
Re,
Clos un des sujets qui sont en doublons.
Cdlt.