[RESOLU]Enregistrer derniere feuille d\'1 classeur

RoadRunner

XLDnaute Nouveau
[RESOLU]Enregistrer derniere feuille d'1 classeur

Bonjour au forum,

Explication :
Après exécution d'une macro,
je voudrai enregistrer la derniere feuille d'un classeur dans un autre dossier...
Mon classeur est ouvert, lancer la macro doit :

1- effacer toutes les feuilles sauf la dernière
1- renommer la feuille restante en me demandant quel nom je veux lui donner.
2- Enregistrer le classeur dans le dossier parent sous le même nom que la feuille

Exemple :
Mon classeur 01.xls est ouvert, lancer la macro doit :

1- effacer toutes les feuilles sauf la dernière
1- me demander quel nom je veux donner à la feuille restante et la renommer ( ex : bidul )
2- Enregistrer le classeur dans le dossier parent sous le même nom que la feuille (qu'y vient d'être renommée ex: bidul.xls )

voila

j'espère être clair dans mes explications

la difficulté doit être l'enregistrement du claseur (ex: bidul.xls) du dossier actuel (qui a un nom différent suivant le lieu du classeur ex : 20050326) dans le dossier parent (ex : 200503)
pour info au cas ou ça serait utile : le dossier ou se trouve le classeur sera toutjours nommé sous forme de date comme ceci :
20040122 par exemple
et son dossier parent n'aura que les 6 premiers caractères et sera donc 200401
autre exemple dossier 20030215 dossier parent est donc 200302

si vous avez des idées je suis preneur

merci encore au forum!

Message édité par: RoadRunner, à: 23/08/2005 01:04
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:Enregistrer derniere feuille d'1 classeur...

Bonjour RoadRunner, le Forum

Et qu'as-tu déjà développé ? Car là c'est presque du programme complet que tu demandes...

Où en es-tu dans le développemement de ce que tu as déjà demandé ?

Sur quelle instruction bloques-tu ?

Pour Enregistrer un Classeur, ce n'est pas difficile : 'ThisWorkBook.SaveAs' et la String du Chemin et la Nom du Classeur...

Pour effacer toutes les Feuilles Sauf la dernière :
For i = Worksheets.Count - 1 To 1 Step -1
Worksheets(i).Delete
Next

Mais en fait je ne te trouve pas vraiment 'XLD Compliant'... Tes réponses antérieures :
'Re
Laissez tomber...
je me débrouille tout seul'


Ou encore
re
Voila j'ai testé et ça fonctionne très bien tout seul,


Tout ça me laisse un peu perplexe... J'ai comme qui dirait une sensation d'être au bureau quand je te lis...

Bonne Continuation
[ol]@+Thierry[/ol]
 

Shining Hawk

XLDnaute Junior
Re:Enregistrer derniere feuille d'1 classeur...

Salut tout le monde,

bah alors thierry, tu ne m'as pas l'air de bon poil ce matin... :whistle:
Même si je suis d'accord avec ce que tu dis, j'ai trop la tête dans le cul (et le cul dans les nuages ...) pour en rajouter une couche. En plus le W-E se rapproche à grand pas... B) ca vaut vraiment pas le coup de se fâcher pour si peu (c'est mauvais pour les coronères ;) )

Passons, si ca peut quelques novices:

Dim nom_feuille As String

'Etape 1
Application.DisplayAlerts = False
For i = 1 To ThisWorkbook.Sheets.Count - 1
Sheets(1).Delete
Next
Application.DisplayAlerts = True

'Etape 2
nom_feuille = InputBox('Entrez le nouveau nom de la feuille', 'Nouveau nom', 'bidul')
If nom_feuille <> '' Then
ActiveSheet.Name = nom_feuille
End If

'Etape 3
ChDir CurDir & '/..'
ThisWorkbook.SaveAs nom_feuille & '.xls'
 

2passage

XLDnaute Impliqué
Re:Enregistrer derniere feuille d'1 classeur...

Bonjour,

C'est quoi ton problème en fait ? Tu as commencé et tu butes sur un problème ou il faut la faire complètement, la macro ?

sinon, ce que je ferais serait du genre

1- je renomme la derniere feuille :
newNom = inputbox('nom de la feuille')
sheets(thisworkbook.sheets.count).name = newNom
(Attention ! si feuilles masquées, ca ne marche plus)

2- je vire toutes les autres feuilles :
for each feufeuille in workbook.sheets
if feufeuille.name <> newNom then feufeuille.delete
next

3- je sauvegarde :
chdir '..'
thisworkbook.saveas newNom& '.xls'

En gros...
A+

PS: j ai bien vu que thierry avait répondu pendant que je bossais ma réponse mais bon... je poste quand meme :p (surtout qu'on est assez d'accord :) )
 

2passage

XLDnaute Impliqué
Re:Enregistrer derniere feuille d'1 classeur...

Tiens.. je regardais ta solution pour le chdir, Shinning hawk... qui vaut la mienne : en toute rigueur, on devrait faire plutot :

Code:
chdir thisworkbook.path & '\\..'

car s'il se passe des truc entre l'ouverture du fichier et l'execution de la macro, il risque de partir n'importe ou le fichier
;)

A+

Message édité par: 2passage, à: 19/08/2005 11:45
 

RoadRunner

XLDnaute Nouveau
Re:Enregistrer derniere feuille d'1 classeur...

bonjour à Thierry, Shining Hawk, 2passage

pour thierry :

je ne comprends pas trop la fin de ton message (je te sens en colère mais je ne comprends pas trop pourquoi...)
explique moi clairement ce que je fais de mal...

pour revenir à mon problème d'enregistrement, je vais essayer les trois solutions et tenter de les comprendre
Cà ne fait qu'une semaine à peine que je touche à excel et aux macros donc ça prend du temps

en tout cas, merci pour vos réponses

les résultats des tests dans la journée normalement

J'ai fais un assemblage de ce que vous m'avez fourni car ça ne fonctionnait pas (j'avais oublié de vous précisez que le nom de la feuille que je donne peut déja exister)

voici ce que j'ai fait :

Sub Enregistrement()


Dim nom_feuille As String

'Etape 1

Application.DisplayAlerts = False
For i = Worksheets.Count - 1 To 1 Step -1
Worksheets(i).Delete
Next
Application.DisplayAlerts = True

'Etape 2

nom_feuille = InputBox('Entrez le nouveau nom de la feuille', 'Nouveau nom', 'bidul')
If nom_feuille <> '' Then
ActiveSheet.Name = nom_feuille
End If

'Etape 3
ChDir CurDir & '\\..'
ThisWorkbook.SaveAs nom_feuille & '.xls'

End Sub

tout fonctionne jusqu'à l'étape 3 sans conflit de nom etc...
mais la ligne bleue me donne une erreur '1004'

impossible d'enregistrer ce classeur sous le meme nom qu'un autre classeur ouvert
(je comprends puisque le classeur ouvert s'appelle 01.xls et que je veux enregistrer ce classeur sous le meme nom mais dans un dossier parent ; ce qui ne sera pas toujours le cas...

la je ne vois pas ce que je peux faire...

à suivre...

Message édité par: RoadRunner, à: 19/08/2005 12:02
 

_Thierry

XLDnaute Barbatruc
Repose en paix
Re:Enregistrer derniere feuille d'1 classeur...

Bonjour Shinning Hawks, 2passage; re RoadRunner, le Forum

Oui je suis un peu fatigué de constater trop souvent que l'on utilise ce Forum de Partage de Connaissance comme étant plutôt une sorte de SuperMarket Gratos de Programmes Complets, alors que le où les intervenants ne font pas d'effort ni pour essayer d'évoluer un peu par eux-même ou tout simplement pour être respectueux et avoir un miminim de gratitude.

Pour ceux et celles qui lisent ce Fil, il est clair qu'ils ne pourront pas comprendre les tenants et les aboutissants quant à ma position.

Ce n'est pas une question d'être de bon ou mauvais poil, c'est juste que j'ai déjà signalé à notre ami Roadi qu'il n'était pas trop au top pour être 'XLD Compliant' dans ce Fil : Lien supprimé et que pour réponse avec mon ami José on a eu droit à :
'Re
Laissez tomber...
je me débrouille tout seul ...'


Voilà c'est tout, mais il est exact que l'on peut toujours faire mine de ne pas comprendre pourquoi...

Pour ce qui est d'aider des débutants, j'ai une patience d'ange, ceux qui ne me connaissent pas n'ont qu'à se ballader dans les Archives... Mais par contre je suis intransigeant sur tout manque de 'Fairplay'

Ceci dit, je suis toujours optimiste quant à l'espoir de faire passer le message.

Bon Appétit. Donc sans rancune


@+Thierry
 

RoadRunner

XLDnaute Nouveau
Re:Enregistrer derniere feuille d'1 classeur...

Bonjour jmps, Thierry, 2passage. Hug ! Shining Hawk, le fil

j'espère que vous avez tout de même bien mangé ;-)
Concernant le 'laissez tomber...'
il ne fallait pas le prendre mal c'est juste que au fur et à mesure que les jours passent j'apprends et je m'aperçois que les premières solutions envisagées pour mon gros travail évoluent en même temps
de plus le travail en question est à rendre pour la fin du mois et vu ce qu'il rest à faire je suis mal...Mais bon je vais pas en mourir...
C'est vrai que dans l'empressement je n'ai pas donné plus d'explications, mea culpa ! mais en tout cas les fils précédents sont résolus.
Comme je le disais il y encore une semaine je ne connaissait pas excel donc excusez moi d'avance des questions idiotes que je peux poser.

Concernant ce fil, j'ose espérer qu'il continuera d'être lu car je n'ai pas de réponse (ça m'embeterai de reposter la même question simlement pour qu'elle soit plus en vue)
Je cherche de mon coté divers essais mais sans succès pour l'instant

Pour finir je m'excuse de vous avoir mis dans cet état avant un WE
que je vous souhaite agréable...

à bientôt (c'est certain)
 

2passage

XLDnaute Impliqué
Re:Enregistrer derniere feuille d'1 classeur...

Re,

Tu attends quoi comme réponse ? parce que là tu as tout, il ne te reste qu'à assembler les différents morceaux de code
:huh:

Lance toi, et, si tu bloques, décris nous ton problème.

A+
 

RoadRunner

XLDnaute Nouveau
Re:Enregistrer derniere feuille d'1 classeur...

resalut à tous

2passage :

mon problème ce situe 5 messages plus haut
le revoici :

'Etape 3
ChDir CurDir & '..'
ThisWorkbook.SaveAs nom_feuille & '.xls'

End Sub

tout fonctionne jusqu'à l'étape 3 sans conflit de nom etc...
mais la ligne bleue me donne une erreur '1004'

impossible d'enregistrer ce classeur sous le meme nom qu'un autre classeur ouvert
(je comprends puisque le classeur ouvert s'appelle 01.xls et que je veux enregistrer ce classeur sous le meme nom mais dans un dossier parent ; ce qui ne sera pas toujours le cas...

la je ne vois pas ce que je peux faire...

bon WE
 

RoadRunner

XLDnaute Nouveau
Re:Enregistrer derniere feuille d'1 classeur...

Bonjour jmps, Thierry, 2passage. Hug ! Shining Hawk, le fil

J'expère que vous avez passé un bon WE ?

Dans étape 3 j'ai toujours un problème :

'Etape 3
ChDir CurDir & '\\..'
ThisWorkbook.SaveAs nom_feuille & '.xls'


le classeur en cours a comme nom 01.xls
l'erreur vient surement du fait que je veux donner le meme nom '01.xls' au classeur mais dans un dossier parent
Est il possible d'empecher cette erreur ?

J'ai essayé un autre nom pour voir si ça fonctionnait et bien non !
Etrange : le fichier s'enregistre bien dans le dossier parent avec le nom que je lui donne mais si je l'ouvre : excel s'ouvre sans rien dedans !

alors la je ne comprends plus rien...

J'ai trouvé ceci et ça fonctionne pour ceux qui en auraient besoin...

ActiveWorkbook.SaveAs Filename:=nom_feuille & '.xls'

à bientot...

Message édité par: RoadRunner, à: 22/08/2005 15:13
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 332
Membres
103 188
dernier inscrit
evebar