Re : ajouter une feuille dans un classeur
Bonjour le forum,
bonjour jm-sta, je réponds à vos 2 questions.
1. Dans VBA, menu Execution : Mode création. Puis cliquez sur le bouton "Fiche" avec le bouton droit de la souris, allez dans Propriétés. Modifiez Caption pour modifier le libellé du bouton. Pour les dimensions, modifiez directement le bouton.
Pour modifier l'action du bouton, modifiez bien sûr la macro (sauf la 1ère ligne).
2. La création de fichiers pour les fiches ne pose pas de problème, mais je trouve cette solution moins élégante que la création d'onglets.
Vous trouverez ci-dessous la nouvelle macro (en rouge les lignes modifiées) et votre fichier. Attention :
- vous devez d'abord créer un fichier "modele" (modele.xls) contenant une seule feuille "modele"
- tous les fichiers du projet doivent être dans le même dossier : même chemin d'accès.
Private Sub CommandButton1_Click()
'Analyse Feuil1
ActiveCell.Select
If ActiveCell <> "" And ActiveCell.Column = 1 And ActiveCell.Row > 2 Then
a = ActiveCell
b = ActiveCell.Offset(0, 1)
c = ActiveCell.Offset(0, 2)
d = ActiveCell.Offset(0, 3)
e = Array("", "", "", "", "", "", "", "", "", "", "", "")
For i = 0 To 11
If ActiveCell.Offset(i, 0) = a Or ActiveCell.Offset(i, 0) = "" Then
e(i) = ActiveCell.Offset(i, 4)
Else: Exit For
End If
Next
chemin = ActiveWorkbook.Path & "\"
'Activation ou ouverture ou création fichier fiche
On Error Resume Next
Windows(a & ".xls").Activate
If Sheets(1).Name <> a Then
Workbooks.Open Filename:=chemin & a & ".xls"
If Sheets(1).Name <> a Then
On Error GoTo 0
Workbooks.Open Filename:=chemin & "modele.xls"
ActiveWorkbook.SaveAs Filename:=chemin & a & ".xls"
Sheets(1).Name = a
End If
End If
'Remplissage fiche
If Sheets(1).[H15] = "" Then
Sheets(1).[H15] = Now
End If
Sheets(1).[C19] = a
Sheets(1).[D20] = b
Sheets(1).[C21] = c
Sheets(1).[F27] = d
For i = 0 To 11
Sheets(1).[B38].Offset(i, 0) = e(i)
Next
ActiveWorkbook.Save
End If
End Sub
A+