Probleme enregistrement pdf nom variable sous excel 2007 VBA
Résolu
yanndebretagn
Messages postés
100
Date d'inscription
Statut
Membre
Dernière intervention
-
yanndebretagn Messages postés 100 Date d'inscription Statut Membre Dernière intervention -
yanndebretagn Messages postés 100 Date d'inscription Statut Membre Dernière intervention -
Bonjour la communauté,
je me tourne vers vous car je n'arrive pas a enregistrer en pdf 4 feuilles de mon classeur
le problème c'est que les noms varient
hier jordane45 (que je remercie au passage) m'a donné un code pour enregistrer mon classeur en fonction de son nom dans un répertoire et sous répertoire
le problème c'est que je doit extraire 4 feuilles de mon classeur pour les enregistrer dans le sous répertoire
déjà créé en pdf
depuis ce matin que je suis dessus mais rien à faire
le code que je bidouille en vain
si quelqu'un a queque chose a me proposer
merci à vous
je me tourne vers vous car je n'arrive pas a enregistrer en pdf 4 feuilles de mon classeur
le problème c'est que les noms varient
hier jordane45 (que je remercie au passage) m'a donné un code pour enregistrer mon classeur en fonction de son nom dans un répertoire et sous répertoire
le problème c'est que je doit extraire 4 feuilles de mon classeur pour les enregistrer dans le sous répertoire
déjà créé en pdf
depuis ce matin que je suis dessus mais rien à faire
le code que je bidouille en vain
Sub devis_quincaillerie_pdf()
Application.DisplayAlerts = False
Dim Chemin As String
Dim Fichier As String
Dim rep As String
Dim Dossier As String
Dim sousdossier As String
Chemin = "C:\Users\Yann\Documents\xxxxxxxxx\devis\"
On Error Resume Next
Chemin = Chemin & Dossier & "\" & sousdossier & "\"
Sheets("quincailleries pour pdf").Copy
Fichier = Sheets("quincailleries pour pdf").Range("A15") & ".Pdf"
With ActiveWorkbook
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & Fichier, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
.Close savechanges:=False
Application.DisplayAlerts = True
End With
End Sub
si quelqu'un a queque chose a me proposer
merci à vous
A voir également:
- Probleme enregistrement pdf nom variable sous excel 2007 VBA
- Save as pdf office 2007 - Télécharger - Bureautique
- Lire le coran en français pdf - Télécharger - Histoire & Religion
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
2 réponses
je me répond
résolu partiellement
ok pour une feuille
mais pour les 4
SOLUTION 1: recopier le code 4 fois
ou y a t'il moyen d'intégrer tous ça dans un seul et même code?
mon précieux
merci
résolu partiellement
ok pour une feuille
mais pour les 4
SOLUTION 1: recopier le code 4 fois
ou y a t'il moyen d'intégrer tous ça dans un seul et même code?
mon précieux
Sub devis_quincaillerie_pdf()
Application.DisplayAlerts = False
Dim Chemin As String
Dim Fichier As String
Dim rep As String
Dim Dossier As String
Dim sousdossier As String
Chemin = "C:\Users\Yann\Documents\xxxxxxxxx\devis\"
Dossier = Sheets("renseignement client").Range("B27").Value & " " & Sheets("renseignement client").Range("B26").Value
sousdossier = Sheets("renseignement client").Range("B22").Value & " " & Sheets("renseignement client").Range("B25").Value & " " & Sheets("renseignement client").Range("B27").Value & " " & Sheets("renseignement client").Range("B29").Value
On Error Resume Next
Chemin = Chemin & Dossier & "\" & sousdossier & "\"
Sheets("quincailleries pour pdf").Copy
Fichier = Sheets("quincailleries pour pdf").Range("A15") & ".Pdf"
With ActiveWorkbook
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & Fichier, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
.Close savechanges:=False
Application.DisplayAlerts = True
End With
End Sub
merci
Bonjour,
il faut mettre en paramètre ton range dans la procédure:
https://docs.microsoft.com/fr-fr/dotnet/visual-basic/programming-guide/language-features/procedures/sub-procedures
'ton code en changeant "A15" par macellule
End sub
ensuite pour chaque enregistrement tu n'a plus qu"a appeler ta procédure en changeant ton range comme ceci:
Voilà c'est simple!
il faut mettre en paramètre ton range dans la procédure:
https://docs.microsoft.com/fr-fr/dotnet/visual-basic/programming-guide/language-features/procedures/sub-procedures
Sub devis_quincaillerie_pdf(macellule As Range))
'ton code en changeant "A15" par macellule
End sub
ensuite pour chaque enregistrement tu n'a plus qu"a appeler ta procédure en changeant ton range comme ceci:
devis_quincaillerie_pdf("A15")
Voilà c'est simple!
Pour faire la même chose avec les feuilles il faut prendre leurs numéros, ensuite pour la cellule, la ligne et la colonne.
Dans mon exemple j'ai ajouté une valeur à mettre dans les cellules concernées:
Voir ceci pour te repérer dans l'index(numéro) de la feuille
https://silkyroad.developpez.com/VBA/FeuilleDeCalcul/
Voilà si cela peut te servir à l'avenir
@+ Le Pivert
Dans mon exemple j'ai ajouté une valeur à mettre dans les cellules concernées:
Option Explicit Private Sub CommandButton1_Click() Call devis_quincaillerie_pdf(1, 10, 10, 18254) 'numero feuille 1, ligne 11, colonne 11,valeur en K11 Call devis_quincaillerie_pdf(2, 5, 5, 18255) 'numero feuille 2, ligne 6, colonne 6,valeur en F6 Call devis_quincaillerie_pdf(3, 2, 2, 18256) 'numero feuille 3, ligne 3, colonne 3,valeur en C3 End Sub Sub devis_quincaillerie_pdf(mafeuille As Integer, l As Integer, c As Integer, Nb1 As Long) Worksheets(mafeuille).Select Range("A1").Select ActiveCell.Offset(l, c).Value = Nb1 End Sub
Voir ceci pour te repérer dans l'index(numéro) de la feuille
https://silkyroad.developpez.com/VBA/FeuilleDeCalcul/
Voilà si cela peut te servir à l'avenir
@+ Le Pivert
il est de loin préférable de ne pas recopier le code.
Quels sont les éléments qui changent entre les 4 exécutions?
Une technique habituelle est de créer une routine contenant les actions à faire, que tu appelleras 4 fois en lui passant les éléments variables.
à toi donc de décrire précisément les actions à répéter, et ce qui change.