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

Sélectionner nouvelle feuille par macro

  • Initiateur de la discussion Initiateur de la discussion Calvus
  • 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 !

Calvus

XLDnaute Barbatruc
Bonsoir le forum,

J'ai utilisé l'enregistreur de macro, afin de pouvoir créer un bouton.
Le but est de créer une nouvelle feuille, afin de copier un tableau présent sur une feuille initiale.
Ensuite, la nouvelle feuille est nommée.
Il y a un bug, car la macro enregistrée ne retrouve pas la feuille sélectionnée.
comment dire donc, selcetionner la nouvelle feuille ?

voici le code généré.
Code:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 16/11/2010
'

'
    Sheets("Données").Select
    Sheets.Add
    Sheets("Tableau").Select
    Selection.Copy
    
[B]Sheets("Feuil4").Select[/B]

[COLOR="Blue"]Le problème est ici, pour l'instant en tout cas.[/COLOR]

    ActiveSheet.Paste
    ActiveWindow.Zoom = 90
    Range("B8").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("F8:F26").Select
    Selection.ClearContents
    Range("G8:G26").Select
    Selection.ClearContents
    Range("I8:I26").Select
    Selection.ClearContents
    Range("B8").Select
    Sheets("Feuil4").Select
    Sheets("Feuil4").Name = "Tableau 2"
End Sub

Je précise que je suis loin (très très très loin) d'être un spécialiste du vba.

Merci d'avance.
 
Re : Sélectionner nouvelle feuille par macro

Bonsoir,
Essaies comme ceci
Code:
Sub Macro1()
Sheets("Tableau").Copy after:=Sheets(Sheets.Count)
With ActiveSheet
    .Name = "Tableau 2"
    .Range("B8, F8:F26 ,G8:G26, I8:I26").ClearContents
    ActiveWindow.Zoom = 90
End With
End Sub
Edit : bonsoir le squale🙂
A+
kjin
 
Re : Sélectionner nouvelle feuille par macro

Re

Merci kjin pour ta solution courte et efficace, ainsi qu'à toi carcharodon (toi t'as vraiment un nom à même pas pouvoir coucher dehors ! 😀 )

En revanche, je n'avais pas prévu ça, comment éviter le conflit avec le nom chaque fois qu'une nouvelle feuille est créée ?

Ici
Code:
Name = "Tableau 2"

Pourrait on ajouter un nouveau numéro à chaque fois par exemple ?

Merci
 
Re : Sélectionner nouvelle feuille par macro

Bonsoir Calvus,

Tu devrais renommer ta feuille juste après la création, comme ceci par exemple :

Code:
Sub Macro1()
'
' Macro1 Macro
' Macro enregistrée le 16/11/2010
'

'
    Sheets("Données").Select
    Sheets.Add
    Sheets(Sheets.Count).Name = "Tableau 2"
    Sheets("Tableau").Select
    Selection.Copy
    
    Sheets("Tableau 2").Select

    ActiveSheet.Paste
    ActiveWindow.Zoom = 90
    Range("B8, F8:F26, G8:G26, I8:I26").ClearContents
    Application.CutCopyMode = False
    Range("B8").Select

End Sub

J'en ai profité pour simplifier les lignes de code (les macros ont la fâcheuse tendance de parler pour ne rien dire). Tu peux effacer des cellules non contigües en une seule opération, il suffit de les séparer par une virgule.

Espérant t'avoir aidé.

Cordialement.

Oups, bonsoir à tous, je retire ce message, je n'avais pas vu les réponses précedentes.
 
Dernière édition:
Re : Sélectionner nouvelle feuille par macro

Bonsoir à tous 🙂

Juste histoire de participer, je suis partie du code de kjin et j'ai tenté d'ajouter quelques contrôles (j'espère ne pas avoir trop abîmé ton code kjin 😱) :

Code:
Sub macro2()
Dim Feuille As Worksheet
Dim Message As String, MyValue As String
Sheets("Tableau").Copy after:=Sheets(Sheets.Count)
Message = "Entrez le nom du nouvel onglet"
MyValue = InputBox(Message)
For Each Feuille In ThisWorkbook.Worksheets
    If Feuille.Name = MyValue Then
        MsgBox "La Feuille existe déjà"
        Exit Sub
    End If
Next
With ActiveSheet
    .Name = MyValue
    .Range("B8, F8:F26 ,G8:G26, I8:I26").ClearContents
    ActiveWindow.Zoom = 90
End With
End Sub

Grosse bise à vous trois et @ +

mth


Edit: oups 🙂 youpiii plein de monde sur le fil 🙂 🙂
Bonsoir papou net, je ne t'avais pas vu 🙂
@+
m
 
Dernière édition:
Re : Sélectionner nouvelle feuille par macro

Mth, T'ES LA TOI ?? 🙂

Ton code fonctionne à merveille ! Pour une tchatcheuse qui sait faire que ça.....

Papou net, merci, mais il y a un problème avec ton code. Il me crée un nouvel onglet en effet, mais vierge !

en tout cas, la solution apportée par Mth me convient parfaitement.

Ya plus qu'à tenter de coller un bouton à tout ça.

Merci à tous
 
Re : Sélectionner nouvelle feuille par macro

Toujours beau moi...euh.... chez moi je voulais dire.
Enfin comme d'hab quoi ! 😀

Dis moi Mimi, comment faire pour avoir l'onglet créé en deuxième position et non pas à la fin du classeur ?

Bisous
 
Re : Sélectionner nouvelle feuille par macro

re 🙂

Tu peux essayer en remplaçant cette ligne:

Code:
Sheets("Tableau").Copy after:=Sheets(Sheets.Count)

par ceci:

Code:
Sheets("Tableau").Copy after:=Sheets(1)

@ +
 
Re : Sélectionner nouvelle feuille par macro

re 🙂

Sourire... si Barbatruc veut dire bavarde, voui 🙂

Parce que pour le reste, c'est moins évident, et rendons à César ce qui appartient à Kjin, parce n'oublie pas, je suis partie de son code 🙂

Bise à tous et bonne nuit ,

mth
 
Re : Sélectionner nouvelle feuille par macro

Ah ! j'ai failli oublier !

Il faudrait ajouter la protection de la feuille en dévérouillant les même plages de cellules.

Cad que la saisie peut se faire de A8:A26
F8:F26
G8:G26
I8:I26

Merci

@+
 
- 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

M
  • Question Question
Réponses
17
Affichages
2 K
D
  • Résolu(e)
Réponses
3
Affichages
712
débutantplus
D
D
Réponses
0
Affichages
2 K
Demha_2022
D
J
Réponses
19
Affichages
3 K
jannine NOLAM
J
N
Réponses
1
Affichages
2 K
Nonomix
N
R
Réponses
3
Affichages
4 K
R
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…