Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro nom de l'onglet avec valeur de 2 cellules

  • Initiateur de la discussion Initiateur de la discussion yblotiere
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

yblotiere

XLDnaute Occasionnel
Bonjour à Tous

J'ai un petit souci de syntaxe
Je veut que lorsque je clique sur valid mois dans l'onglet ma macro créer un nouvel onglet avec les valeur des cellules
G2 et C2
j'arrive a le faire avec une cellule mais je ne connait pas la synthaxe pour 2 cellules j'ai bien essyé de trouver quelques chose sur le
forum mais je n'ai rien qui fonctionne ou je ne sai pas
comment l'adapter

merci de votre aide

je vous joint le fichier

yannick
 

Pièces jointes

Re : Macro nom de l'onglet avec valeur de 2 cellules

Bonjour
Bonjour le fil
Bonjour le Forum

voila ce que j'ai modifié dans la Procédure
Code:
Sub valid()
Dim Sht_Name As String
Dim sht As Worksheet
 Application.ScreenUpdating = False
    With Sheets("Horaires")
    
        Sht_Name = Format(.Range("G2"), "mmmm-yyyy") & " " & .Range("C2").Value
          .Cells.Select
        Selection.Copy
    End With
    Set sht = Sheets.Add
 With sht
    With .Cells
      .Select
    ActiveSheet.Paste
    
     .Copy
     .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    End With
     .Name = Sht_Name
     
 End With
 With Application
    .CutCopyMode = False
    .ScreenUpdating = True
 End With
End Sub
On pourrait aussi copier la feuille Source et la renommer .
Bonne fin de Journée
Amicalement
Jean marie
 
Dernière édition:
Re : Macro nom de l'onglet avec valeur de 2 cellules

Bonjour,

Voici un essai; les valeurs des cellules c2 et g2 sont placée en a1 et B1 sur la nouvelle feuille créée :

Sub valid()

Dim cell1 As Range
Dim cell2 As Range
Dim nouvelleFeuille As Worksheet

Set nouvelleFeuille = ThisWorkbook.Sheets.Add(after:=Sheets(ThisWorkbook.Sheets.Count))
nouvelleFeuille.Name = "nouvelOnglet" & CStr(Format(Time, "_hms"))
With Sheets("Horaires")
.Activate
Set cell1 = .Range("$c$2")
Set cell2 = .Range("$g$2")
End With

With nouvelleFeuille
.Range("a1") = cell1.Value
.Range("b1") = cell2.Value
.Activate
End With

End Sub

Cordialement,
 
Re : Macro nom de l'onglet avec valeur de 2 cellules

Bonjour le fil, bonjour le forum,

Une autre proposition basée sur ton code initial :

Code:
Sub valid()
Dim h As Object 'déclare la variable h (onglet Horaire)
Dim c As Object 'déclare la variable c (onglet Cible)

Set h = Sheets("Horaires") 'définit l'onglet h
Sheets.Add 'ajoute un oglet
ActiveSheet.Name = CStr(Format(h.Range("C2").Value, "mmmm-yyyy")) & ", " & h.Range("G2").Value 'renomme l'onglet
Set c = ActiveSheet 'définit l'onglet c
h.Cells.Copy c.Range("A1") 'copie les cellule de h et les colle dans A1 de c (avec tous les formats)
c.Cells.Copy 'copie les cellules de c
Application.DisplayAlerts = False 'masque les messages d'alerte Excel
c.Range("A1").PasteSpecial Paste:=xlPasteValues 'colle dans A1 les valeurs
c.Range("A1").Select 'sélectionne A1
Application.CutCopyMode = False 'supprime le clignottement lié au copier
Application.DisplayAlerts = True 'affiche les messages d'alerte Excel
End Sub
je suis d'accord avec ce ChTi de Jean Marie (que je salue au passage), il serait peut-être plus simple de copier l'onglet Horaires le renommer et faire un copier/coller (collage spécial, valeurs)...
 
Re : Macro nom de l'onglet avec valeur de 2 cellules

Bonjour Jean marie , Gaugin ,Robert

Merci pour votre coup de main vos solutions fonctionne
pourquoi la solution inverse serait plus simple
sans vouloir abuser robert pourrai tu me donner le code si je souhaite faire ce que tu propose

merci de vous êtes pencher sur mon problème

yannick
 
Re : Macro nom de l'onglet avec valeur de 2 cellules

Bonjour le fil, bonjour le forum,

Le code avec copie de l'onglet :

Code:
Sub valid()
Dim h As Object 'déclare la variable h (onglet Horaire)
Dim c As Object 'déclare la variable c (onglet Cible)

Set h = Sheets("Horaires") 'définit l'onglet h
h.Copy before:=h 'copie l'onglet h (avant lui même)
ActiveSheet.Name = CStr(Format(h.Range("C2").Value, "mmmm-yyyy")) & ", " & h.Range("G2").Value 'renomme l'onglet
Set c = ActiveSheet 'définit l'onglet c
c.Cells.Copy 'copie les cellules de l'onglet c
c.Cells.PasteSpecial Paste:=xlPasteValues 'colle les valeurs
c.Range("A1").Select 'sélectionne A1
Application.CutCopyMode = False 'supprime le clignottement lié au copier
End Sub
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

D
  • Question Question
Réponses
5
Affichages
249
Didierpasdoué
D
Réponses
3
Affichages
221
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…