1 pièce(s) jointe(s)
Création de feuille automatique VBA Macro
Bonjour
je suis encore débutant en VBA
j'ai pu créer une macro qui suivant une liste me duplique un classeur et inscrit le nom de la colonne en titre de la nouvelle feuille.
Pour aller plus loin j'aimerai que dans cette nouvelle page 3 informations de la ligne concernée par la page (la ligne active) soit reporté dans les casse de la nouvelle feuille. est ce possible?
je vous mets le code et le ficher intituler test.xlsm. Voila dans la nouvelle feuille je veux qu'il reporte automatiquement les données suivant:
l'ID dans la case A1 le Noms dans la case B2 et le Prénom dans la case E2 la Date de Naissance dans la case C2 la ville dans la Case C3 et le groupe dans la casse D13 :roll::oops::P
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| Option Explicit
Dim maColonne As Integer
Sub AjoutFeuilles()
Dim derLi As Long
Dim i As Integer
Dim maFeuille As Worksheet
Set maFeuille = ActiveSheet
maColonne = 1 ' a ajuster
derLi = Columns(maColonne).Find("*", , , , , xlPrevious).Row
For i = 2 To derLi ' 2 si ligne de titre
'Si la feuille existe déjà, on passe à la ligne suivante
If FeuilleExiste(maFeuille.Cells(i, maColonne)) Then GoTo Suivant
' ajout d'une feuille à la fin
Sheets("FichePersonel").Copy after:=Sheets(Sheets.Count)
Sheets(Worksheets.Count).Name = maFeuille.Cells(i, maColonne)
' nom de la feuille = valeur de la cellule
Suivant:
Next
'on retourne à la feuille d'origine
maFeuille.Select
Set maFeuille = Nothing
End Sub
Function FeuilleExiste(Nom$) As Boolean 'Ti
On Error Resume Next
FeuilleExiste = Sheets(Nom).Name <> ""
End Function
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = maColonne Then AjoutFeuilles
End Sub |
merci pour votre aide