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.
 

mth

XLDnaute Barbatruc
Re : Sélectionner nouvelle feuille par macro

re :)

Sauf erreur, cette méthode copie l'onglet modèle, y compris les protections.
Ton onglet "Tableau" est bien protégé ? et les cellules A8:A26
etc .. bien déverouillées ?
Si oui ça sera le cas également dans le nouvel onglet.
Peux-tu vérifier ?

@ +
 

mth

XLDnaute Barbatruc
Re : Sélectionner nouvelle feuille par macro

re ...

Tant qu'on y est ....

Je pense qu'on peut l'écrire mieux que ça, mais comme le nom d'un onglet ne supporte pas tous les caractères, ni le vide, j'ai ajouté quelques contrôles ...

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

Voilà, j'espère que ça ira ...

Bise et bonne nuit,

mth
 

ROGER2327

XLDnaute Barbatruc
Re : Sélectionner nouvelle feuille par macro

Bonjour à tous
À tout hasard :
Code:
[COLOR=DarkSlateGray][B]Sub toto()
Dim i%, Sh As Object
  With Application: .ScreenUpdating = 0: .Calculation = -4135: .EnableEvents = 0: End With
  Set Sh = Worksheets("Tableau")
  i = 1
  Sh.Copy After:=Sh
  With ActiveSheet
    Do
      i = i + 1
      On Error Resume Next
      .Name = Sh.Name & "_" & i
    Loop While Err.Number <> 0
    On Error GoTo 0
    ActiveWindow.Zoom = 90
    .Range("B8, F8:G26, I8:I26").ClearContents
  End With
  With Application: .EnableEvents = 1: .ScreenUpdating = 0: .Calculation = -4105: End With
End Sub[/B][/COLOR]
ROGER2327
#4547


Dimanche 15 As 138 (Navigation du Dr Faustroll, SPs)
27 Brumaire An CCXIX
2010-W46-3T01:45:25Z
 

Discussions similaires

Réponses
7
Affichages
387

Statistiques des forums

Discussions
312 361
Messages
2 087 626
Membres
103 609
dernier inscrit
AmineAB33