Enregistrement auto feuille avec reprise donnée pour création fichier
j'aimerai savoir si il est possible d'enregistrer une feuille en automatique avec des données reprise de cette même feuille de calcul
ex: "onglet feuil1" soit enregistrée sous "JANV EMILIE" ou sous forme de fichier avec les mêmes éléments.
Bonjour,
En passant par VBA, il faut saisir un code comme celui-ci (pour une copie, sans déplacement) :
Sub ExportFeuille()
Sheets("feuil1").Copy
Activeworkbook.Close SaveChanges:=True, FileName:="JANV EMILIE.xlsx"
Thisworkbook.activate
Msgbox "Copié terminée"
End subJe ne suis pas certain d'avoir parfaitement compris votre besoin. Pour un enregistrement PDF, qui serait préférable s'il ne s'agit que de lecture de d'informations, ce serait différent bien entendu...
Cordialement,
Bonjour 3GB
merci pour avoir passe du temps sur ma demande,
mais peux tu me dire ou je dois saisie tes données.
je suis très débutant dans ce genres de feuille de calcul
cordialement
Bonjour,
Oui, désolé.
Il faut activer le volet développeur (en allant sur le volet fichier > options > perso ruban).
Puis il faut se rendre sur ce volet et ouvrir l'éditeur Visual basic et saisir le code sur un module.
Mais je t'envoie quand même le fichier (sous l'extension xlsm prenant en charge les macros) avec en plus la possibilité d'éditer un PDF. Le code se trouve sur le module 1. La seule qu'il te restera peut-être à faire, c'est d'ajuster ta zone d'impression.
Cdlt,
RE 3GB
merci pour toute l'aide que tu a fait mais je suis désolé j'ai bien trouvé la façon de faire avec tes explication mais je ne trouve pas le module et est il possible dans ton onglet pdf de choisir un imprimante.
sur onglet "copie dans nouveau classeur" peut tu me dire ou il s'enregistre
encore merci pour toute ton aide c'est extraordinaire ce que tu a fait
Re charlisab,
Pour trouver le module, il faut un pré-requis de taille, que l'onglet Développeur soit activé. Si ce n'est pas déjà le cas, il faut aller dans l'onglet FICHIER, aller sur options, personnaliser le ruban, sélectionner l'onglet développeur.
Ensuite, une fois que cet onglet est présent, il faut aller dessus, et cliquer sur Visual basic ou éditeur (je ne me souviens plus parfaitement des termes exacts car je suis sur un mac et ça change un peu de windows). Une fois que l'éditeur est ouvert, normalement le module apparaît aussi et si ce n'est pas le cas, dans la fenêtre Projet à gauche, il y a un dossier "modules" contenant un "Module1". tu cliques dessus et le code apparaîtra.
Je n'ai pas bien compris ta question au sujet de l'imprimante. Si tu souhaites, en même temps que tu exportes au format PDF, générer une impression papier, il faut remplacer le code de la procédure EditionPDF :
Sub EditionPDF()
Dim NomFichier$
With Sheets("Feuil1")
NomFichier = .Range("MOIS").Value & " " & .Range("PRENOM").Value & ".pdf"
'NomFichier = Left(.Range("MOIS").Value, 4) & " " & .Range("PRENOM").Value & ".pdf" 'pour avoir les 4 premiers caractères du mois
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NomFichier, Ignoreprintareas:=False
.PrintOut Copies:=1, IgnorePrintAreas:=False '<--------- IMPRESSION PAPIER (1 copie, zone d'impression prise en compte)
End With
MsgBox "Edition PDF terminée"
End SubSi à l'impression papier, tu cherches à définir une imprimante parmi plusieurs, la ligne est à modifier ainsi :
.PrintOut Copies:=1, ActivePrinter:=NOMDEL'IMPRIMANTEACTIVE, IgnorePrintAreas:=FalseOù il faudra toi-même saisir dans le code le nom de l'imprimante active. Si tu as d'autres questions sur l'impression, je comprendrai, t'inquiète.
Sinon, le nouveau classeur et le PDF s'enregistrent dans le dossier actif (qui est probablement le dossier où se trouve ton fichier).
Il y a possibilité de définir le dossier dans lequel tu souhaites les enregistrer. Ex pour le PDF :
Sub EditionPDF()
Dim Dossier$, NomFichier$
'-----CHOISIR UN EMPLACEMENT
Dossier = "C:\Users\charlisab\mondossier\" 'emplacement fixe (CHOIX RETENU POUR L'INSTANT)
'Dossier = Activeworkbook.path & "\" 'emplacement où se trouve le fichier de base
With Sheets("Feuil1")
NomFichier = Dossier & .Range("MOIS").Value & " " & .Range("PRENOM").Value & ".pdf"
'NomFichier = Left(.Range("MOIS").Value, 4) & " " & .Range("PRENOM").Value & ".pdf" 'pour avoir les 4 premiers caractères du mois
.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NomFichier, Ignoreprintareas:=False
.PrintOut Copies:=1, IgnorePrintAreas:=False
End With
MsgBox "Edition PDF terminée"
End SubVoilà, si tu as des questions n'hésites pas.
A plus,
Tiens avec le fichier avec ces modifications.