Nom de classeur égal nom onglet, comment faire...

C

Christian

Guest
Bonjour à tout le forum,

Pourriez-vous me dire comment faire pour nommer automatiquement un classeur au même nom que l'onglet.
J'ai dans un premier temps trouvé, sur ce forum, la solution à mon premier problème ; nommer automatiquement l'onglet en fonction du contenu de la cellule C1 (soit C1 Christian donc nom onglet Christian).
Deuxième problème, sur lequel je butte, pouvoir faire en sorte que lorsque je ferme le classeur il soit enregistré au même nom que l'onglet : soit "Christian.xls"?.

Mon classeur ne possède qu'un onglet, pourriez- vous dans votre macro intégrer un paramètre supplémentaire : pouvoir prendre soit le nom du 1er onglet, ou du 2ème ect?.

merci pour votre aide
Bien amicalement
Christian
 
F

Filoo

Guest
Salut à toi Christian,

N'étant que débuttant en vba, je n'ai probablement pas l'ultime solution à ton pb... néanmions voici comment je ferais:


ActiveWorkbook.SaveAs Filename:= "C:\MonRepertoire\" & C1 & ".xls"


Par contre c'est un peu plus compliqué si tu veux choisir entre différents nom pour ton classeur. Voici une piste:

En partant de l'hypothèse que sur ta Feuil1 , la cellule C1 contient le nom du premier onglet et sur ta feuil2 , cellule C1 le nom de l'onglet 2:


Dim NomDuClasseur as String

début:

NomDuClasseur = InputBox("Saisir '1' pour sauvegarder avec le nom du 1er onglet, '2' avec le nom du 2eme onglet")

If nomDuClasseur = "1" Then
ActiveWorkBook.SaveAs Filename:="C:\MonRepertoire\" & 'Feuil1'!C1 & ".xls"
GoTo Fin

ElseIf nomDuClasseur = "2" Then
ActiveWorkBook.SaveAs Filename:="C:\MonRepertoire\" & 'Feuil2'!C1 & ".xls"
GoTo Fin

Else: GoTo début 'en cas d'une saisie inattendue:<> "1", "2"
End If

Fin:

Voilà, je te préviens encore que je ne suis qu'un débutant et que par chance j'ai réussi à planter Excel (inutilisable pour l'heure), je ne suis pas sûr que ce code fonctionne (je peux pas le tester....)

Bonne chance!
 
@

@+Thierry

Guest
Bonjour Filoo, re Christian

Je n'avais pas vu que ce Post était déjà existant lors de mes réponses au nouveau Fil de Christain d'aujourd'hui :

=> Lien supprimé

Mais pour toi Filoo, voici ta macro un peu révisée

Sub FilouCorrected()
Dim NomDuClasseur As String
Dim Question As Byte
Debut:

NomDuClasseur = InputBox("Saisir '1' pour sauvegarder avec le nom du 1er onglet, '2' avec le nom du 2eme onglet")

&nbsp;If NomDuClasseur = "1" Then
&nbsp;&nbsp;ActiveWorkbook.SaveAs Filename:="C:\MonRepertoire\" & Sheets("Feuil1").Range("C1") & ".xls"
&nbsp;&nbsp;'GoTo Fin '<<<<<<<<<< INUTILE DANS CE IF

&nbsp;ElseIf NomDuClasseur = "2" Then
&nbsp;&nbsp;ActiveWorkbook.SaveAs Filename:="C:\MonRepertoire\" & Sheets("Feuil2").Range("C1") & ".xls"
&nbsp;&nbsp;'GoTo Fin '<<<<<<<<<< INUTILE DANS CE IF

&nbsp;Else
&nbsp;&nbsp;&nbsp;Question = MsgBox("Vous n'avez pas saisi de bonne valeur!, voulez vous recommencer ?", vbQuestion + vbYesNo)
&nbsp;&nbsp;&nbsp;&nbsp;If Question = vbYes Then GoTo Debut
&nbsp;End If
End Sub

Je gère ici la réponse du User si il y a une anomalie, car sinon to retour GoTo début est un peu une boucle sans fin....

Voilà et comme ça aussi je teste les "indentation" de texte pour les If...

Bon Appétit
@+Thierry
 
F

Filoo

Guest
Re-Salut

Re-merci thierry pour tes conseils avisés.
Comme tu l'as déjà remarqué j'ai quelques difficultés avec mes InputBox et mes boucles...

Mais tout les jours je m'améliore....... comme ce site!!

Merci d'être aussi réactif et efficace.
 
@

@+Thierry

Guest
Re Salut Filoo,

Oui j'ai remarqué d'ailleurs un peu plus tard dans la journée sur un autre Fil ta Boucle Sans Fin !!! lol ...

Oui il faut faire attention avec les Etiquettes (Goto Début), en fait ce n'est pas vraiment recommandé en programmation, on ne s'en sert surtout que pour gérer les erreurs en envoyant en sortie de procédure et pas l'inverse...(ou alors on sait très bien ce qu'on fait !!!)

Bonne Soirée
@+Thierry
 
F

Filoo

Guest
Sault à toi @+Thierry

Malheureusement je ne sais pas très bien ce que je fais et ces Etiquettes m'évitent souvent d'imbriquer plusieurs boucles, plus lourdes en écriture...... j'dois avouer que j'ai tendance à en mettre plus que de raison....
Mais grace à tes conseils un peu plus haut mes boucles sont plus 'légères'.

A très bientot !
Bonne journée à tout le monde ;-)
 

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 879
Membres
103 981
dernier inscrit
vinsalcatraz