VBA: générer une feuille avec un nom variable

FrenchyFrog -  
dandypunk Messages postés 838 Statut Membre -
Bonjour,

Je souhaite creer via une macro VB une application me permettant de générer de feuille avec un nom variable

pour cela, je veux:

récupérer la valeur d'une cellule dans une feuille (je ne sais pas trop comment faire)
[ Cette valeur fais partie d'un tableau d'une colone de A6 à A ?
Valeur entière allant de 1 à env 300 ]

Creer une feuille
[ par copie d'une existante]

la renommer avec en partie la valeur de la cellule.
[ "J" et variable, par ex: "J102"]

Voici ce que j'ai fais:

Sub Ajout_condition_essai1()
'
' Ajout_condition_essai1 Macro
'

' Variable avec la valeur du numero de la derniere condition
Dim temp As Variant

Sheets("LISTE").Select
ActiveSheet.Unprotect
Range("A1000").End(xlUp).Select
' Affecter la valeur de la derniere valeur de la colonne A
temp = ActiveCell.Value

Insertion d'une ligne dans LISTE
ActiveCell.EntireRow.Copy
ActiveCell.Offset(1, 0).Select
Selection.Insert Shift:=xlDown
ActiveCell.FormulaR1C1 = "=R[-1]C[0]+1"

' Copier un nouvel onglet J i
Sheets("JX").Select
Sheets("JX").Copy Before:=Sheets("JX")
Sheets("JX (2)").Select
Sheets("JX (2)").Name = "J" & temp
Sheets("LISTE").Select
ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True

End Sub

Merci d'avance !
Configuration: Windows 2000
Internet Explorer 6.0

1 réponse

  1. dandypunk Messages postés 838 Statut Membre 83
     
    Essaye cela

    Sub AjouterFeuille()
    
        Dim iNombreFeuille As Integer
        Dim sNomFeuille As String
        Dim wsFeuilleCopiée As Worksheet
        Dim iQuit As Integer
        
        On Error GoTo GestionErreurs
        
        iNombreFeuille = ActiveWorkbook.Sheets.Count 'On compte le nombre de feuilles
        sNomFeuille = "J" & ActiveCell.Value
        
        Worksheets("LISTE").Copy after:=Sheets(iNombreFeuille)
        
        Set wsFeuilleCopiée = Sheets("LISTE (2)")
        wsFeuilleCopiée.Name = sNomFeuille
        
        Exit Sub 'Evite la gestion des erreurs
        
    GestionErreurs:
    
        If Err.Number = 1004 Then
            iQuit = MsgBox("La feuille existe déjà", vbCritical + vbOKOnly, "Doublon dans les feuilles")
        End If
        
    End Sub
    0