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 !

1 réponse

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