Excel 2011 : Bouton nouvelle feuille + nom automatique

flamilo

XLDnaute Junior
Bonjour,
je vous explique mon problème :
J'ai un fichier excel dans lequel j'ai 2 feuilles :
- sur ma premiere feuille j'ai insérer un bouton "Nouvelle Facture" qui est en lien avec la macro suivante :

Sub NouvelleFacture()
Sheets("Modèle").Activate
Sheets("Modèle").Copy After:=Worksheets(Worksheets.Count) ''nouvel onglet
End Sub

- Sur la 2eme fueuille appelé "Modèleé j'ai un modèle de facture que je souhaite reproduire.


Cela marche parfaitement, seulement j'aimerai également que les feuilles qui s'ajoutent se nomment automatiquement : Facture n°1, Facture n°2 etc .. et non "Modèle(2)", "Modèle(3)" etc...
 

camarchepas

XLDnaute Barbatruc
Re : Excel 2011 : Bouton nouvelle feuille + nom automatique

Bonsoir Philippe,flamilo

Une solution peut être celle ci, car il peut y avoir plusieurs feuille ne s'appelant pas facture :

ATTENTION, il doit y avoir un onglet Modèle


Code:
Sub NouvelleFacture()

Dim Feuille As Worksheet
Dim Maxi As Long, Actuelle As Long

For Each Feuille In ThisWorkbook.Worksheets
If InStr(1, Feuille.Name, "n°") > 0 Then Actuelle = Split(Feuille.Name, "n°")(1)
If Actuelle > Maxi Then Maxi = Actuelle
Next
Sheets("Modèle").Activate
Sheets("Modèle").Copy After:=Worksheets(Worksheets.Count) ''nouvel onglet
ActiveSheet.Name = "Facture n°" & Maxi + 1

End Sub
 

flamilo

XLDnaute Junior
Re : Excel 2011 : Bouton nouvelle feuille + nom automatique

Merci beaucoup à vous deux, ca marche impec :) !

Savez vous s'il est possible de créer une macro permettant d'enregistrer chaque feuille (donc chanque facture) en PDF automatiquement ?

Cordialement
 

camarchepas

XLDnaute Barbatruc
Re : Excel 2011 : Bouton nouvelle feuille + nom automatique

Bonjour Flamilo,

Voici l'ensemble du code avec un petit complément lors de la fabrication de l'onglet

Reste plus qu'a mettre de jolis boutons.

Code:
Sub NouvelleFacture()

Dim Feuille As Worksheet
Dim Maxi As Long, Actuelle As Long

For Each Feuille In ThisWorkbook.Worksheets
If InStr(1, Feuille.Name, "n°") > 0 Then Actuelle = Split(Feuille.Name, "n°")(1)
If Actuelle > Maxi Then Maxi = Actuelle
Next
'Détection de l'absence de l'onglet
On Error Resume Next
Sheets("Modèle").Activate
If Err.Number > 0 Then MsgBox "Pas d'onglet Modèle, alors j'arrete mon traitement": Exit Sub
On Error GoTo 0
Sheets("Modèle").Range("A1000") = ""
Sheets("Modèle").Copy After:=Worksheets(Worksheets.Count) ''nouvel onglet
ActiveSheet.Name = "Facture n°" & Maxi + 1
'Mémorise le num de la facture en cours pour pouvoir ensuite la sauvegarder
Sheets("Modèle").Range("A1000") = Maxi
End Sub

Sub sauve()
Dim Maxi As Long
Dim Nom As String, Chemin As String
Maxi = Sheets("Modèle").Range("A1000")
Chemin = "C:\TEMP"
Nom = "Facture n°" & Maxi
Sheets("Facture n°" & Maxi).Copy
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=Chemin & "\" & Nom & ".PDF" _
        , Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
ActiveWorkbook.Close False
End Sub
 

flamilo

XLDnaute Junior
Re : Excel 2011 : Bouton nouvelle feuille + nom automatique

J'ai essayé le macro "save" mais elle ne veut pas fonctionner.

Déja je suis sur mac, il y a peut etre quelque chose à changer dans ce cas là.

Quand je clique sur le bouton auquel j'ai affecté la macro on me dit :

Erreur d'exécution "9":
L'indice n'appartient pas à la sélection

Je clique sur DEBOGAGE

On me dit que le problème vient de : Sheets("Facture n°" & Maxi).Copy
 

Discussions similaires

Statistiques des forums

Discussions
312 559
Messages
2 089 602
Membres
104 224
dernier inscrit
Brilma