|
| mingus98 | Posté le 12/08/2008 @ 18:34 |
Petit astucien
62 Messages
| Bonjour les artistes, Voila ce que je recherche, je fais une petite macro travaillant sur deux classeurs. Je voudrais renommer une desfeuilles (pas le classeur) automatiquement en lui donnant soit la date du jour, ou soit en lui faisant copier ce qui est ecrit dans une cellule... Mais je n arrive pas a trouver la commande dans la macro...pour lui dire "va a telle cellule...copie en le contenu et colle le comme nom pour la feuille...hmmmm Quelqu un arriverait il a me depanner ? Amicalement
|
| |
| |
| Publicité |
|
|
| sourisdeservice | Posté le 12/08/2008 à 19:38 |
Maîtresse astucienne
19671 Messages
| Bonjour,
Pourquoi ne pas utiliser l'enregistreur de Macro ? |
| |
|
| mingus98 | Posté le 13/08/2008 à 02:36 |
Petit astucien
62 Messages
| Bahhh je ne suis pas tres bon...je sais , mais comment je fais ?
Ce que je veux faire c est (par exemple avoir en cellule A1 un titre (ex:la date et l heure) aujourd hui()...
et quand je lance la macro, il insere une nouvelle feuille et renomme cette feuille avec le contenu que j ai en cellule a1
J ai essayé comme je le pouvais avec l enregistreur de macro, seulement apres dans Vba je lis que il renomme ma feuille en ecrivant mardi 12 aout...et non en indiquant la cellule a1!! Alors que moi j ai l intention que la cellule A1 varie ..
Donc, ça ne marche pas bien avec l enregistreur...
heuuu ai je été clair dans mes soucis ?
pareil, je voudrais faire un enregistement pour mon fichier et qu il lui donne le nom situé a une certaine cellule
Qui va m aider ?  |
| |
|
| vieuxmonsieur | Posté le 13/08/2008 à 03:18 |
Petit astucien
442 Messages
| bonjour mingus08, sourisdeservice, le forum,
peut-être ceci :
Sub NomFeuille() On Error GoTo erreur ActiveSheet.Name = Range("A1") Exit Sub erreur: MsgBox "La cellule [ A1 ] ne doit pas être vide où contenir des caractères interdits." End Sub
en te souhaitant une bonne journée |
| |
|
| mingus98 | Posté le 13/08/2008 à 13:56 |
Petit astucien
62 Messages
| La vache...que c est quand même compliqué ! ..
Mais en recopiant doucement la formule, ça s adapte et ça marche même...iouffff, je vais avancer doucement
Je ne vais pas aller te demander toujours les memes conseils pour les memes plans...mais juste pour voir
1> j ai reussis grace a ton aide a attribuer une cellule qui renomme automatiquement une feuille
Si je veux maintenant sauvegarder le nom de ma feuille en lui donnant le nom d une cellule...quelle est la formule ?
(ouiii je sais...c est facile pour toa...mais moi....gloupssss ,
Merci beaucoup des aides donnés ici
|
| |
|
| sourisdeservice | Posté le 13/08/2008 à 14:06 |
Maîtresse astucienne
19671 Messages
| Bonjour, Je ne sais si c'est à moi ou à vieuxmonsieur que tu t'adresses, mais pour ta dernière question, je pense que galopin01 (je crois) a déjà donné la macro.
Faire une recherche sur PCAstuces (à moins que ce derniers passe par ici un de ces jours)  |
| |
|
| mingus98 | Posté le 13/08/2008 à 14:20 |
Petit astucien
62 Messages
| Rhhaa que nonn , j ai pas vu Galopin, la derniere formule qui fonctionne qui m a été donnée était ce matin par vieux monsieur...
je redonne sa formule
Sub NomFeuille() On Error GoTo erreur ActiveSheet.Name = Range("A1") Exit Sub erreur: MsgBox "La cellule [ A1 ] ne doit pas être vide où contenir des caractères interdits." End Sub
Et maintenant je recherche la meme formule mais pour sauver un document et que le nom soit celui d une cellule attribuée.
Mais vous êtes tous Supers en tous cas pour aider |
| |
|
| Bérylion | Posté le 13/08/2008 à 16:39 |
Astucien
2289 Messages
|
Salut
à la volée paske pas excel sur ce poste :
sub test()
On Error GoTo erreur activeworkbook.saveas filename:= range("a1") Exit Sub erreur: MsgBox "La cellule [ A1 ] ne doit pas être vide où contenir des caractères interdits." End Sub
enjoy...

|
| |
|
| fth | Posté le 14/08/2008 à 10:03 |
Petit astucien
504 Messages
| Bonjour tlm,
Si tu mets dans ta cellule la fonction =Aujourdhui() cela va te donner le résultat 14/08/2008 --> ce qui va faire gueuler Excel lorsque tu voudras utiliser cette date pour renommer ta feuille vu que le caractère / ne sera pas accepté.
A mon humble avis, il n'est pas vraiment nécessaire de passer par une cellule ni d'utiliser une gestion d'horreur
Sub test() Worksheets.Add after:=Sheets(Sheets.Count) '<-- ajout d'une feuille et placement en dernière position Sheets(Sheets.Count).Name = Format(Now, "dd-mm-yyyy hh.mm.ss") '<-- renommer cette nouvelle feuille End Sub
Dans l'exemple ci-dessus j'ai ajouté les secondes dans le nom de la feuille afin d'éviter le bug en cas de création de plusieurs feuilles dans la même minute mais on pourrait très bien utiliser autre chose que les secondes pour les différencier, par exemple un n°
Sub test() Worksheets.Add after:=Sheets(Sheets.Count) Sheets(Sheets.Count).Name = Sheets.Count & " - " & Format(Now, "dd-mm-yyyy hh.mm") End Sub
|
| |
|
| mingus98 | Posté le 14/08/2008 à 21:37 |
Petit astucien
62 Messages
| Moi je dis simplement ouahhhoouuu trop fort !!
Moi qui suis gros nul la dedans, je trouve ça assez geant,
Le top surtout de pouvoir aller inserer une nouvelle feuille a la fin !
C est ce que je voulais
Deux petites questions (sans vouloir abuser)
Tu as la meme astuce pour enregistrer le classeur ? ( en lui indiquant le nom d une cellule ?)
et autre question, y aurait il un link ou quelque chose ou je pourrais apprendre et connaitre les differentes definitions ?
Genre pour expliquer tout sur les differentes variables de Sheets ? pourquoi des fois y a des Sheets (2) ou (3) et connaitre differentes fonctions et codes ?
Merci pour tout ! |
| |
|
| fth | Posté le 20/08/2008 à 18:59 |
Petit astucien
504 Messages
| mingus98 a écrit :
Tu as la meme astuce pour enregistrer le classeur ? ( en lui indiquant le nom d une cellule ?
Cela devrait ressembler à un truc du genre
Sub test_enregistrement() Dim Chemin As String, NomFich As String
Chemin = "C:\MonRepertoirePrefere\MonSousRepertoireQuiVaBien\"
'si le nom dans la cellule A1 = MonFichier NomFich = Range("A1") & ".xls" 'si le nom dans la cellule A1 = MonFichier.xls 'NomFich = Range("A1")
ThisWorkbook.SaveAs Chemin & NomFich '<-- sauvegarde du classeur 'ThisWorkbook.Close '<-- pour fermer le classeur après l'avoir sauvegardé
End Sub
et autre question, y aurait il un link ou quelque chose ou je pourrais apprendre et connaitre les differentes definitions ?
Genre pour expliquer tout sur les differentes variables de Sheets ? pourquoi des fois y a des Sheets (2) ou (3) et connaitre differentes fonctions et codes ?
oula...il doit y en avoir des dizaines mais je ne serais pas capable de te conseiller celui là plutôt qu'un autre
Concernant les Sheets (feuilles) par exemple, il y a 3 manières d'y faire référence
- par son nom : Sheets("Toto") --> feuille s'appelant "Toto"
- par sa position (de gauche à droite) : Sheets(2) --> 2éme feuille ou Sheets(Sheets.Count) --> dernière feuille peu importe le nombre
- par son nom de code (CodeName) : Feuil2 --> nom de code que tu trouves dans la colonne de gauche de ton éditeur Visual Basic : Feuil2(Toto)
Eventuellement, tu peux télécharger ce tuto --> Support de cours complet pour le VBA d'Excel |
| |
|
|
| Haut de la page |