VBA: générer une feuille avec un nom variable
FrenchyFrog
-
dandypunk Messages postés 838 Statut Membre -
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 !
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 !
A voir également:
- VBA: générer une feuille avec un nom variable
- Excel compter cellule couleur sans vba - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
- Find vba - Astuces et Solutions
- Vba ouvrir un fichier excel avec chemin ✓ - Forum VB / VBA
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