Sélectionner nouvelle feuille par macro

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.
 

kjin

XLDnaute Barbatruc
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
 

Calvus

XLDnaute Barbatruc
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 ! :D )

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
 

Papou-net

XLDnaute Barbatruc
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:

mth

XLDnaute Barbatruc
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 :eek:) :

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:

Calvus

XLDnaute Barbatruc
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
 

Calvus

XLDnaute Barbatruc
Re : Sélectionner nouvelle feuille par macro

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

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

Bisous
 

mth

XLDnaute Barbatruc
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
 

Calvus

XLDnaute Barbatruc
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

@+
 

Discussions similaires

Réponses
7
Affichages
380

Statistiques des forums

Discussions
312 206
Messages
2 086 202
Membres
103 157
dernier inscrit
youma