Macro pour enregistrer selon plusieurs critères
Fermé
tacounet
Messages postés
28
Date d'inscription
vendredi 23 mars 2018
Statut
Membre
Dernière intervention
22 octobre 2022
-
Modifié le 27 juil. 2021 à 14:20
tacounet Messages postés 28 Date d'inscription vendredi 23 mars 2018 Statut Membre Dernière intervention 22 octobre 2022 - 29 juil. 2021 à 18:25
tacounet Messages postés 28 Date d'inscription vendredi 23 mars 2018 Statut Membre Dernière intervention 22 octobre 2022 - 29 juil. 2021 à 18:25
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
- Enregistrer en pdf - Guide
- Comment enregistrer une video youtube - Guide
- Macro word - Guide
3 réponses
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
Modifié le 27 juil. 2021 à 14:54
Modifié le 27 juil. 2021 à 14:54
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
tacounet
Messages postés
28
Date d'inscription
vendredi 23 mars 2018
Statut
Membre
Dernière intervention
22 octobre 2022
Modifié le 27 juil. 2021 à 16:28
Modifié le 27 juil. 2021 à 16:28
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...
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
Modifié le 27 juil. 2021 à 16:41
Modifié le 27 juil. 2021 à 16:41
Comme ceci
Pour la copie en collage spécial sers toi de l enregistreur de macro
LePath = "C:\Users\steph\Documents\Travaux divers pour HBG MBH\Fiches de poser\XLS en cours\" 'adapter chemin
Pour la copie en collage spécial sers toi de l enregistreur de macro
tacounet
Messages postés
28
Date d'inscription
vendredi 23 mars 2018
Statut
Membre
Dernière intervention
22 octobre 2022
>
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
27 juil. 2021 à 16:58
27 juil. 2021 à 16:58
Effectivement, ça fonctionne nickel...
Plus qu'à, de mon coté, créer avec l'enregistreur de macro, une macro qui "copie/collage spécial(mise en forme & valeurs)", à concaténer avec la tienne, et ça devrait dérouler...
Merci beaucoup
Plus qu'à, de mon coté, créer avec l'enregistreur de macro, une macro qui "copie/collage spécial(mise en forme & valeurs)", à concaténer avec la tienne, et ça devrait dérouler...
Merci beaucoup
tacounet
Messages postés
28
Date d'inscription
vendredi 23 mars 2018
Statut
Membre
Dernière intervention
22 octobre 2022
>
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
28 juil. 2021 à 18:25
28 juil. 2021 à 18:25
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
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
>
tacounet
Messages postés
28
Date d'inscription
vendredi 23 mars 2018
Statut
Membre
Dernière intervention
22 octobre 2022
28 juil. 2021 à 18:38
28 juil. 2021 à 18:38
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
@+
tacounet
Messages postés
28
Date d'inscription
vendredi 23 mars 2018
Statut
Membre
Dernière intervention
22 octobre 2022
>
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
28 juil. 2021 à 19:12
28 juil. 2021 à 19:12
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
tacounet
Messages postés
28
Date d'inscription
vendredi 23 mars 2018
Statut
Membre
Dernière intervention
22 octobre 2022
27 juil. 2021 à 18:37
27 juil. 2021 à 18:37
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...