VBA: générer une feuille avec un nom variable
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 !
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
-
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