Sauvegarde plage de données dans un nouveau classeur avec nom d'une cellule + mise en forme

Bonjour le Forum,
J’aurais besoin de votre aide et mes notions de VBA ne sont pas suffisantes pour réaliser ce que je souhaite. Voici mon problème :
En farfouillant, j’ai trouvé quelque chose

Sub Copier() ActiveSheet.Range(ActiveCell, ActiveCell.Offset(0, 8)).Copy With Sheets("Archives") .Range("A119 :L537").End(xlUp)(2).PasteSpecial Paste:=xlPasteValues End With Application.CutCopyMode = False End Sub

je souhaiterais ajouter la macro au code suivant :

Sub enreg() Dim LePath As String, LeNom As String LePath = "C:\Documents and Settings\Administrateur\Mes documents\" LeNom = "classeur_" & Format(Date, "yyyy_mm_dd") & ".xls" With Sheets("Feuil1") Sheets.Add .Range("A119 :L537").Copy Range("A1") ActiveSheet.Move With ActiveWorkbook .SaveAs LePath & LeNom .Close False End With End With End Sub

Le nom de l’onglet à copier se trouve en cellule « D232 »
Le nom du nouvel onglet se situe en cellule « O18 » de la nouvelle feuille active.

Est-il possible d’avoir ce genre de code mais au lieu de « classeur » avoir le nom identique de l’onglet actif de l’ancien classeur vers le nouveau et en faisant un collage spécial pour garder la même mise en page largeur colonnes, hauteurs de lignes et format cellule - nombre - personnalisée.

Est-ce réalisable?

Je suis bien consciente que ma demande est un peu longue mais pourriez vous m’aider ?
En vous remerciant,

sans.xlsm (416,0 Ko)

Bonjour

Cliques sur le bouton « Recopie Classeur » situé en cellule « D3 » onglet « vc »
Vérifies dans le classeur (« classeur_ » & Format(Date, « yyyy_mm_dd ») créé ici ( « C:\Documents and Settings\Administrateur\Mes documents »)le résultat
Fais moi un retour

sans.xlsm (417,7 Ko)

Merci pour votre retour.

je n’ai pas accès à la macro

alors que dans les options excel


merci de votre aide !

Désolé je viens d’ouvrir le fichier que je t’ai transmis en faisant un clique droit sur le bouton « Recopie Classeur » j’ai bien l’affectation de la macro « recopie_classeur » :

Fais un clique droit sur le bouton dans la liste cliques sur « Affecter une macro » puis dans la nouvelle liste sélectionnes la macro « recopie_classeur » :

Puis « OK »

Cliques ensuite sur le bouton

Celà devrait fonctionner

Sinon autre piste ici en réalisant sur le fichier dans son répèroire avant son ouverture un cliques droit tu obtiens ceci :

Il faut côcher la case « Débloquer »

Dis moi

Vraiment désolée. Je suis confuse.
Il s’agit de l’onglet je n’avais pas remarqué cette erreur importante de formulation.
Non je ne me permettrais pas de demander plus, je reformule.

je n’ai pas l’écran tel que présenté : voici le mien

En fait je souhaite cette macro
Sub enreg() Dim LePath As String, LeNom As String LePath = "C:\Users\danhc\Documents\LANAIS\PLANS_ALIMENTAIRES\" LeNom = "**classeur_**" & Format(Date, "yyyy_mm_dd") & ".xls" With Sheets("Feuil1") Sheets.Add .Range("A119 :L537").Copy Range("A1") ActiveSheet.Move With ActiveWorkbook .SaveAs LePath & LeNom .Close False End With End With End Sub
macro qui copie les cellules A119 :L537
le nom de l’onglet de la plage de cellules a copier est contenu dans la cellule « D232 »

collage spécial pour garder les formats, formules etc…
je pensais que c’était la macro
*Sub Copier() ActiveSheet.Range(ActiveCell, ActiveCell.Offset(0, 8)).Copy With Sheets("Archives") .Range("A119 :L537").End(xlUp)(2).PasteSpecial Paste:=xlPasteValues End With Application.CutCopyMode = False End Sub*

Nouveau fichier après le collage spécial
le nom de l’onglet sera contenu alors dans la cellule « O18 » et sera le nom du fichier à sauvegarder dans C:\Users\danhc\Documents\LANAIS\PLANS_ALIMENTAIRES\valeur contenue dans la cellule « O18 »

Je vous ai mis les bons répertoire car je n’ai pas accès au texte de la macro.

Merci infiniment de votre aide

La macro aprés avoir créé un nouveau classeur copie les cellules « A119:L537 » dans un de ses onglets qu’elle renomme « vc » puis l’enregistre dans le répertoire « C:\Documents and Settings\Administrateur\Mes documents » à ce nom : « classeur_ » & Format(Date, « yyyy_mm_dd »

Pour moi cela correspond trait pour trait à tes explications et les lignes de code fournies
Ce ne sont pas les mêmes que j’ai mis en place mais le résultat est strictement identique

  • Nouveaux classeur
  • intégration d’un onglet « vc »
  • recopie dans cet onglet des cellules « A119:L537 »
  • Enregistrement de ce classeur répertoire « C:\Documents and Settings\Administrateur\Mes documents » avec comme nom « classeur_ » & Format(Date, « yyyy_mm_dd »

Je ne vois pas ce que tu veux de différent ou de plus

« le mot classeur doit être le contenu de la cellule « D232 » »

Ce n’est n’est pas ce que tu as demandé concernant cette cellule « D232 » au regard de tes propos :

« Le nom de l’onglet à copier se trouve en cellule « D232 » »

L’onglet n’est pas le classeur !!!

Il faudrait être claire sur l’objet de cette cellule : Onglet ou classeur ?

Ce n’est pas la même chose

Merci de préciser

Testes ce nouveau fichier et dis moi

sans.xlsm (417,7 Ko)

Fantastique ! Fantastique !

cela fonctionne merci beaucoup !

désolée encore pour la confusion.

Merci pour ce retour
Attention les cellules « D232 » et " O18" doivent impérativement être alimentées sinon bug en perspective
Pour l’éviter un contrôle peut être intégré vérifiant cette nécessité avec un message si celle-ci n’était pas effective et arrêt du traitement
A toi de voir et me dire
N oublies pas de valider ma réponse un plus appréciable
Merci

Effectivement la proposition est intéressante. 
si cela est possible ?
je n'y avais pas pensé
merci bcp en tout cas

Ci-joint une nouvelle version avec cette évolution

Dans le même esprit je peux adapter ce traitement pour utiliser une cellule dans laquelle serait intégrée le chemin d’enregistrement (C:\Users\danhc\Documents\LANAIS\PLANS_ALIMENTAIRES) ainsi de l’avoir disponible pour toute évolution éventuelle le concernant

A toi de voir et me dire

le fichier

sans.xlsm (418,6 Ko)

j’ai essayé mais le fichier ne fonctionne plus
image

ooups

Aucun souci pour moi à l’ouverture du dernier fichier trans mis :

As tu opéré ceci :

Sinon autre piste ici en réalisant sur le fichier dans son répèroire avant son ouverture un cliques droit tu obtiens ceci :

Il faut côcher la case « Débloquer »

Essaies et dis moi

Une demande supplémentaire à laquelle je n’avais pas pensé
nom macro suggéré : imp_sauve_carte
est-il possible d’avoir le même principe avec les cellules de A13 à H41
le copier dans un nouveau classeur au niveau de A13
imprimer
sauvegarde idem mais en ajoutant au nom du fichier ('nom onglet suivi de) _carte

merci encore

Quelles sont les cellules qui correspondent aux cellules

« D232 » et " O18 » ?

Et quel est le répertoire d enregistrement ?

Je n’ai pas la case « Débloquer ».

Toujours le même message
image

ça ne fonctionne plus.

Merci

Attention on est pas sur le même fichier le chemin d accès n est pas le même
Compare dans l un l Emplacement dans l autre le Chemin d’accès au fichier
Ce n est pas le même donc on à faire à 2 fichiers differents
Une fois ton fichier téléchargé récupère le dans le dossier Téléchargement et copie le dans le repertoire de destination
Fais la manipulation du clique droit pour tenter de le débloquer et essaies de l ouvrir

je commence à fatiguer

Pour la version avec la case vide
dès que je clique sur le bouton vba s’ouvre avec

Pourriez-vous adapter le nom de la macro en plan_recopie ?

Pour la version supplémentaire
D232 = B4

Si le tableau est collé au niveau de A13 dans le nouveau classeur la cellule o18 devient A14

Au niveau du répertoire il est identique la différence de fichier se remarquera : nom onglet suivi de _carte.

j’espère que cela ira

Transmets moi le fichier en l’état avec les valeurs de ces cellules « O8 » et « D232 » telles qu’elles sont que je teste

« Pourriez-vous adapter le nom de la macro en plan_recopie ? »

C’est à dire ?

je reprends toujours votre fichier posté il y a1h. je vous mets le dernier téléchargement

au lieu de nommer la macro recopie_classeur peut-on la nommer plan_recopie ?

merci
sans (14).xlsm (416,7 Ko)