Cc/cv et renommer feuille

Résolu/Fermé
Maksime568 Messages postés 144 Date d'inscription mardi 15 avril 2014 Statut Membre Dernière intervention 28 novembre 2022 - 15 déc. 2016 à 12:15
Maksime568 Messages postés 144 Date d'inscription mardi 15 avril 2014 Statut Membre Dernière intervention 28 novembre 2022 - 19 déc. 2016 à 07:58
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?

A voir également:

2 réponses

Utilisateur anonyme
15 déc. 2016 à 20:33
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 :


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.  :)
 
1
Maksime568 Messages postés 144 Date d'inscription mardi 15 avril 2014 Statut Membre Dernière intervention 28 novembre 2022
16 déc. 2016 à 07:31
Merci,
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éé
0
Utilisateur anonyme > Maksime568 Messages postés 144 Date d'inscription mardi 15 avril 2014 Statut Membre Dernière intervention 28 novembre 2022
16 déc. 2016 à 19:56
 
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.  :)
 
0
Maksime568 Messages postés 144 Date d'inscription mardi 15 avril 2014 Statut Membre Dernière intervention 28 novembre 2022
16 déc. 2016 à 07:32
est-ce possible d'avoir 3 cases demandant chacune 'jj' puis 'mm' et enfin 'aa'
0
Utilisateur anonyme > Maksime568 Messages postés 144 Date d'inscription mardi 15 avril 2014 Statut Membre Dernière intervention 28 novembre 2022
Modifié par albkan le 16/12/2016 à 20:37
Oui, c'est très possible ; et fait dans le fichier Excel joint de mon message #5.  :)
0
Maksime568 Messages postés 144 Date d'inscription mardi 15 avril 2014 Statut Membre Dernière intervention 28 novembre 2022
19 déc. 2016 à 07:58
Au top c'est parfait.
Juste ce qu'il fallait.
Merci beaucoup
0
yg_be Messages postés 23346 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 24 novembre 2024 Ambassadeur 1 552
15 déc. 2016 à 19:29
T'aider, ou le faire pour toi?
0