Cc/cv et renommer feuille
Résolu
Maksime568
Messages postés
142
Date d'inscription
Statut
Membre
Dernière intervention
-
Maksime568 Messages postés 142 Date d'inscription Statut Membre Dernière intervention -
Maksime568 Messages postés 142 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
dans mon classeur excel j'ai, à la base, la feuille 1(de nom Validation) et la feuille 2(de nom Base)
Je souhaiterais, via un bouton sur la feuille Base:
- me demander une date au format ddmmyy
- copier cette feuille Base
- la coller sur une nouvelle feuille après la feuille Base mais avant les autres feuilles (potentielles à venir dans le temps)
- renommer cette nouvelle feuille avec la date inscrite précédemment.
Pourriez-vous m'aider sur le sujet?
dans mon classeur excel j'ai, à la base, la feuille 1(de nom Validation) et la feuille 2(de nom Base)
Je souhaiterais, via un bouton sur la feuille Base:
- me demander une date au format ddmmyy
- copier cette feuille Base
- la coller sur une nouvelle feuille après la feuille Base mais avant les autres feuilles (potentielles à venir dans le temps)
- renommer cette nouvelle feuille avec la date inscrite précédemment.
Pourriez-vous m'aider sur le sujet?
A voir également:
- Cc/cv et renommer feuille
- Renommer des fichiers en masse - Guide
- Comment renommer quelqu'un sur instagram - Forum Instagram
- Renommer iphone - Guide
- Bruler feuille de laurier - Guide
- Feuille de pointage excel - Télécharger - Tableur
2 réponses
Bonjour Maksime568,
Attention : tu ne dois pas mettre de bouton sur la feuille Base, puisque
c'est elle que tu copies ! Et donc dans ce cas, ça copie aussi le bouton !
Je te propose donc ce code VBA, à mettre dans Module1 :
Éventuellement, tu préféreras peut-être avec le format "dd-mm-yy".
Dis-moi ce que tu en penses, et si ça te convient.
Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».
Cordialement. :)
Attention : tu ne dois pas mettre de bouton sur la feuille Base, puisque
c'est elle que tu copies ! Et donc dans ce cas, ça copie aussi le bouton !
Je te propose donc ce code VBA, à mettre dans Module1 :
Option Explicit Sub SheetCopy() On Error GoTo SheetDbl Dim NF As String NF = InputBox("Saisir une date (JJ/MM/AA ou JJ/MM/AAAA) :", "SheetCopy") If Not IsDate(NF) Then Exit Sub ' erreur de saisie : date non valide ! NF = Format(NF, "ddmmyy") If Not Worksheets(NF) Is Nothing Then MsgBox "Erreur : la feuille """ _ & NF & """ existe déjà !", 48, "SheetCopy" Exit Sub SheetDbl: Worksheets("Base").Copy , Worksheets(Worksheets.Count) ActiveSheet.Name = NF End Sub
Éventuellement, tu préféreras peut-être avec le format "dd-mm-yy".
Dis-moi ce que tu en penses, et si ça te convient.
Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur « Marquer comme résolu ».
Cordialement. :)
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
T'aider, ou le faire pour toi?
tu as raison sur le point de la copie de la feuille base.
Je modifie donc légèrement ma demande.
Le mieux serait de copier la feuille active (qui comprendrait le bouton),
mais la nouvelle feuille irait obligatoirement en position 2 d'onglet (après l'onglet "Validation")
Cela me permet de pouvoir créer une nouvelle feuille à partir de n'importe quel onglet mais de toujours le placer au début.
Un point, si je ne met pas de "/" il n'y as pas d'onglet qui se créé
Bonjour Maksime568,
Si tu saisis une date sans "/", elle n'est donc pas reconnue comme une
date valide, et donc c'est justement parce que la date est invalide que
l'onglet n'est pas créé ! C'est donc bien une sécurité volontaire ! ;)
Cependant, dans ton message #4, tu as demandé à pouvoir saisir la date en
3 parties successives : 'jj' puis 'mm' et enfin 'aa' ; j'ai fait les modifications
nécessaires, et tu peux faire ainsi ; mais il y a quand même des contrôles
pour vérifier que la date est valide ; sinon : pas de création d'onglet.
Du fait de la saisie de la date en 3 parties, et dans l'ordre jj puis mm et aa,
tu peux saisir successivement 31 2 16 ; comme "20" est mis devant aa,
la date sera 31/02/2016... et sera refusée puisque non valide : il n'y a pas
de 31 février => pas de création d'onglet !
Bien sûr, idem pour un 30 février ou un 31 juin ; le 29 février sera accepté
uniquement pour les années bissextiles.
À tout hasard, je rappelle qu'un nom de feuille ne peut pas contenir de "/" ;
donc pas de "18/12/16" par exemple ! Tu auras "181216" et tu peux mettre
"18-12-16" avec ce format : "dd-mm-yy" à la place de "ddmmyy" (voir fin de
mon message #2).
--------------------------------------------------------
J'ai aussi fait la modification nécessaire pour que le nouvel onglet créé soit
toujours après la feuille "Validation". Mais pour le bouton de commande,
je t'ai déjà dit que si tu en mets un sur la feuille "Base", il sera copié lui aussi !
Or je ne pense pas que tu veux que tes onglets datés aient tous un bouton
de commande pour lancer la macro ! Dans ce fichier Excel 2007, il te suffit
de faire < Ctrl >< e > pour lancer l'exécution de la macro ; et cela depuis
n'importe quelle feuille.
< Alt >< F11 > pour aller sur Visual Basic, puis retourner sur ta feuille Excel.
Ta macro SheetCopy est dans Module1.
--------------------------------------------------------
Dis-moi ce que tu en penses, et si ça te convient.
Tu peux me demander une adaptation si besoin.
Si ton problème est réglé, merci d'aller en haut de page
pour cliquer sur le lien « Marquer comme résolu ».
Cordialement. :)
Juste ce qu'il fallait.
Merci beaucoup