Macro pour enregistrer selon plusieurs critères
tacounet
Messages postés
28
Date d'inscription
Statut
Membre
Dernière intervention
-
tacounet Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
tacounet Messages postés 28 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Je cherche à créer une macro (je suis proche du niveau 0 de ce côté là) pour:
-Enregistrer mon fichier excel selon la valeur de la cellule H4 (cellule liée à une liste de choix de laquelle découlent, via formules, tout un tas de valeurs dans ma feuille excel),
-TOUT EN n'enregistrant en format .xlsx QUE les valeurs qui apparaissent dans mes différentes cellules, en laissant mon fichier .xlsm intact, et prêt à resservir avec une autre valeur dans H4.
En parcourant différent forum (dont celui-ci), j'ai déjà réussi à créer des macros pour insérer des images selon la valeur d'une cellule, effacer d'un coup toutes mes images, et d'autres choses qui me sont bien utile au boulot.
J'ai surtout appris qu'avec Excel, rien ne semblait impossible.
Si en plus, il n'était possible d'enregistrer sous un nouveau fichier "que" la partie de la feuille délimitée par une zone d'impression (la finalité est d'imprimer une fiche de renseignements pour un classeur papier ou un Pdf), ça serait réellement le top...
Je compte sincèrement sur votre aide.
Merci d'avance
Je cherche à créer une macro (je suis proche du niveau 0 de ce côté là) pour:
-Enregistrer mon fichier excel selon la valeur de la cellule H4 (cellule liée à une liste de choix de laquelle découlent, via formules, tout un tas de valeurs dans ma feuille excel),
-TOUT EN n'enregistrant en format .xlsx QUE les valeurs qui apparaissent dans mes différentes cellules, en laissant mon fichier .xlsm intact, et prêt à resservir avec une autre valeur dans H4.
En parcourant différent forum (dont celui-ci), j'ai déjà réussi à créer des macros pour insérer des images selon la valeur d'une cellule, effacer d'un coup toutes mes images, et d'autres choses qui me sont bien utile au boulot.
J'ai surtout appris qu'avec Excel, rien ne semblait impossible.
Si en plus, il n'était possible d'enregistrer sous un nouveau fichier "que" la partie de la feuille délimitée par une zone d'impression (la finalité est d'imprimer une fiche de renseignements pour un classeur papier ou un Pdf), ça serait réellement le top...
Je compte sincèrement sur votre aide.
Merci d'avance
Configuration: Windows / Chrome 92.0.4515.107
A voir également:
- Macro pour enregistrer selon plusieurs critères
- Audacity enregistrer son pc - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Comment enregistrer une conversation - Guide
- Enregistrer une musique pour sonnerie - Guide
- Jitbit macro recorder - Télécharger - Confidentialité
3 réponses
Bonjour,
Faire Alt F11 pour accéder à l'éditeur.
Insérer un module et mettre ce code pour la feuille entière:
et pour une plage de cellule:
Faire Alt F11 pour accéder à l'éditeur.
Insérer un module et mettre ce code pour la feuille entière:
Option Explicit Sub save() Dim chemin_dossier As String chemin_dossier = ThisWorkbook.Path ' adapter chemin If Range("H4") = "" Then Exit Sub ThisWorkbook.Sheets("Feuil1").Copy 'adapter nom feuille ActiveWorkbook.SaveAs Filename:=chemin_dossier & "\" & Range("H4").Value & ".xlsx" ActiveWorkbook.Close MsgBox "Votre fichier " & Range("H4").Value & " est créé", vbInformation, "Création fichier" End Sub
et pour une plage de cellule:
Sub enreg() Dim LePath As String, LeNom As String LePath = ThisWorkbook.Path & "\" 'adapter chemin LeNom = Range("H4").Value & ".xlsx" With Sheets("Feuil1") 'adapter nom feuille Sheets.Add .Range("A1:E12").Copy Range("A1") 'adapter plage cellule ActiveSheet.Move With ActiveWorkbook .SaveAs LePath & LeNom .Close False End With End With MsgBox "Votre fichier " & Range("H4").Value & " est créé", vbInformation, "Création fichier" End Sub
Bonjour Pivert,
Merci bcp pour la rapidité de la réponse
j'ai directement essayé la méthode avec les plages de cellule, et, quelques petits soucis.
Tout d'abord, j'ai une erreur d'exécution 1004, fichier inaccessible.
Je pense avoir fait le tour des vérifications
Mon dossier de destination existe, il n'est pas en lecture seule, et mon nom de fichier ne semble pas comprendre les caractères proscrits (dans ma liste de choix, j'ai bien des noms avec "-" et/ou "_") mais même un essai avec un nom ne comportant que des lettres remonte la même erreur...
Ensuite, mais c'est de ma faute car je ne l'avais pas spécifié initialement, je souhaite aussi conserver la mise en forme, en plus des valeurs que remontent les formules dans mon fichier excel "de travail"...
Le "enregistrer sous, copier/collage spécial" fonctionne, mais j'aurais aimé "automatiser" la chose...
Je continue à tatonner...
Merci bcp pour la rapidité de la réponse
j'ai directement essayé la méthode avec les plages de cellule, et, quelques petits soucis.
Tout d'abord, j'ai une erreur d'exécution 1004, fichier inaccessible.
Je pense avoir fait le tour des vérifications
Mon dossier de destination existe, il n'est pas en lecture seule, et mon nom de fichier ne semble pas comprendre les caractères proscrits (dans ma liste de choix, j'ai bien des noms avec "-" et/ou "_") mais même un essai avec un nom ne comportant que des lettres remonte la même erreur...
Sub enreg()
Dim LePath As String, LeNom As String
LePath = ThisWorkbook.Path & "C:\Users\steph\Documents\Travaux divers pour HBG MBH\Fiches de poser\XLS en cours\" 'adapter chemin
LeNom = Range("H4").Value & ".xlsx"
With Sheets("GENERATION FICHE") 'adapter nom feuille
Sheets.Add
.Range("A1:Z103").Copy Range("A1") 'adapter plage cellule
ActiveSheet.Move
With ActiveWorkbook
.SaveAs LePath & LeNom
.Close False
End With
End With
MsgBox "Votre fichier " & Range("H4").Value & " est créé", vbInformation, "Création fichier"
End Sub
Ensuite, mais c'est de ma faute car je ne l'avais pas spécifié initialement, je souhaite aussi conserver la mise en forme, en plus des valeurs que remontent les formules dans mon fichier excel "de travail"...
Le "enregistrer sous, copier/collage spécial" fonctionne, mais j'aurais aimé "automatiser" la chose...
Je continue à tatonner...
Bonjour Le Pivert,
J'ai beau tourner le problème dans tous les sens, je ne trouve pas se solution.
J'ai bien, via l'enregistreur de macro, réussi à créer une macro qui m'enregistre mon fichier en xlsx, sans toucher à la mise en forme, mais dès que j'essaie de concaténer avec la tienne, qui contient les éléments que je souhaite (sélection du nom, de la feuille active et du chemin de fichier) ça plante...
Le fait que je n'ai pas les base de la programmation vba, et que je sois totalement autodidacte avec Excel ne doit pas aider...
Oserais-je te demander encore ton assistance?
au besoin en te faisant parvenir un copie de mon fichier, pour qu'un expert s'y penche?
Merci en tout cas pour l'aide déjà apportée.
Stéphane
J'ai beau tourner le problème dans tous les sens, je ne trouve pas se solution.
J'ai bien, via l'enregistreur de macro, réussi à créer une macro qui m'enregistre mon fichier en xlsx, sans toucher à la mise en forme, mais dès que j'essaie de concaténer avec la tienne, qui contient les éléments que je souhaite (sélection du nom, de la feuille active et du chemin de fichier) ça plante...
Le fait que je n'ai pas les base de la programmation vba, et que je sois totalement autodidacte avec Excel ne doit pas aider...
Oserais-je te demander encore ton assistance?
au besoin en te faisant parvenir un copie de mon fichier, pour qu'un expert s'y penche?
Merci en tout cas pour l'aide déjà apportée.
Stéphane
Tu peux mettre le code que tu as eu avec l'enregistreur. Pour voir si je peux le mettre avec la macro existante.
Sinon poste ton classeur sans données sensibles ici:
https://www.cjoint.com/
Ensuite tu colles le lien sur ce post
@+
Sinon poste ton classeur sans données sensibles ici:
https://www.cjoint.com/
Ensuite tu colles le lien sur ce post
@+
Voici mon fichier...
https://www.cjoint.com/c/KGCriUIw7HS
En te remerciant par avance, et en espérant réussir à comprendre tout ça un jour...
Stéphane
https://www.cjoint.com/c/KGCriUIw7HS
En te remerciant par avance, et en espérant réussir à comprendre tout ça un jour...
Stéphane
Rebonjour,
Préférant travailler étape par étape, afin de bien visualiser les différentes étapes et ainsi identifier facilement les problèmes, j'ai:
Créé une deuxième feuille, qui, via macro, va chercher les valeurs et format des cellules de ma feuille d'origine, (1ère macro), affiche les images qui correspondent à mes différentes données (2ème macro).
J'ai modifié la macro d'enregistrement en .xlsx pour que ce soient bien les éléments de cette 2ème feuille (valeurs + images) qui soient sauvegardées en.xlsx.
Mais là où le bas blesse, c'est que la mise en page (taille des cellules, polices, couleurs de remplissage) de cette feuille ne sont pas pris en compte dans cet .xlsx pourtant correctement créé, au bon endroit...
qu'ai-je loupé???
Je vais faire comme à mon habitude, laisser pour ce soir le PC de côté (au risque de m'énerver dessus), et espérer que la nuit me permettra d'y revenir demain, avec un regard neuf...
Préférant travailler étape par étape, afin de bien visualiser les différentes étapes et ainsi identifier facilement les problèmes, j'ai:
Créé une deuxième feuille, qui, via macro, va chercher les valeurs et format des cellules de ma feuille d'origine, (1ère macro), affiche les images qui correspondent à mes différentes données (2ème macro).
J'ai modifié la macro d'enregistrement en .xlsx pour que ce soient bien les éléments de cette 2ème feuille (valeurs + images) qui soient sauvegardées en.xlsx.
Mais là où le bas blesse, c'est que la mise en page (taille des cellules, polices, couleurs de remplissage) de cette feuille ne sont pas pris en compte dans cet .xlsx pourtant correctement créé, au bon endroit...
qu'ai-je loupé???
Je vais faire comme à mon habitude, laisser pour ce soir le PC de côté (au risque de m'énerver dessus), et espérer que la nuit me permettra d'y revenir demain, avec un regard neuf...