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

Fermé
FrenchyFrog - 14 mai 2008 à 15:06
dandypunk Messages postés 831 Date d'inscription jeudi 3 janvier 2008 Statut Membre Dernière intervention 11 septembre 2011 - 24 mai 2008 à 12:50
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 831 Date d'inscription jeudi 3 janvier 2008 Statut Membre Dernière intervention 11 septembre 2011 82
24 mai 2008 à 12:50
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