Créer une nouvelle feuille excel grâce à un macro

Bonjour,
Étant novice dans la programmation VBA, je ne sais pas tout faire.
J’ai créer un facturier contenant des macros qui est pratiquement fini et justement j’aurai voulu créer une macro pour une copie automatique.
J’ai une feuille nommée “FACTURES 00” ou il y a un bouton “Valider” qui archive les données encodées dans la feuille “DETAIL” et le bouton “Nouvelle feuille” qui en principe doit faire la copie de la facture sur une nouvelle feuille. Après 2 factures ça m’affiche comme erreur que le nom de la feuille existe déja. et voille le nom des boutons.facture test.xlsx (93,6 Ko)

Je voudrais qu’avant de créer la nouvelle feuille, qu’Excel fasse une copie automatique dans le même classeur mais sur une feuille différente qui se nommera automatiquement avec le numéro de facture afin de garder une trace et une preuve de chacune.
Merci à tous


Aidez moi SVP. Merci

Bonsoir,
Tu nous indiques:

Alors pourquoi que le classeur fourni est en xlsx (qui ne contient pas de macro) :kissing_closed_eyes:

Bonjour,

je n’ai pas fait attention et aussi je ne maîtrise pas. Quel doit être le format d’un classeur contenant les macros? Merci

Le jeu. 29 nov. 2018 à 20:24, Mimimathy88 contact@formuleexcel.com a écrit :

Bonjour,

Si tu fais Enregistrer sous tu auras la possibilité d’enregistrer en XLSM
image

C’est déja fait. Maintenant je fais quoi, Aidez moi, s’il vous plait

Re,
Dans ton premier post tu déclares que tu as un facturier contenant des macros, donc si tu as des macros, il faut l’enregistrer en xlsm.

Dans le même post, tu nous livre un classeur en xlsx (donc, sans macro)

Alors si tu réfléchis, tu nous donne un fichier contenant les macros que tu as déjà effectuées en pièce jointe.
CQFD

Bonjour
Voici le fichier avec les 2 macros
facture test1.xlsm (101,7 Ko)

Re,

Bref, tout est à faire, car des macros enregistrées :-1:

Pour une bonne compréhention, sur la feuilles FACTURES 00, tu mets en couleur (jaune par exemple), les cellules à reporter sur la feuille Details en précisant à quoi cela correspond,
et je regarderai

Ex:

facture.xlsm (93,7 Ko)

Bonjour,

A tester

La macro

Sub Enregistrer()
  'Déclaration des variables
  Dim Dl%, Sh As Shape
  Dim Ws As Worksheet, Wd As Worksheet, NF As Worksheet
  'Initialisation des variables
  Set Ws = Sheets("FACTURES 00")
  Set Wd = Sheets("DETAIL")
  Dl = Wd.Range("B" & Rows.Count).End(xlUp).Row + 1 '1ère ligne vide pour DETAIL
    'Si le N° de Facture n'est pas renseigné, message et sortie de la macro
    If Ws.Cells(3, 7) = "" Then
      MsgBox " Vous n'avez pas renseigné le N° de Facture !", vbInformation, "Information"
      Exit Sub
    End If
    Wd.Cells(Dl, 2).Value = CDate(Ws.Cells(1, 9).Value) 'Date
    Wd.Cells(Dl, 3).Value = Ws.Cells(3, 7).Value        'N° Facture
    Wd.Cells(Dl, 4).Value = Ws.Cells(1, 2).Value        'Nom
    Wd.Cells(Dl, 5).Value = Ws.Cells(2, 2).Value        'Adresse
    Wd.Cells(Dl, 6).Value = Ws.Cells(3, 2).Value        'N° tél
    Wd.Cells(Dl, 7).Value = Ws.Cells(4, 2).Value        'N° IFU
    Wd.Cells(Dl, 8).Value = Ws.Cells(5, 2).Value        'N° Contrat
    Wd.Cells(Dl, 9).Value = Ws.Cells(16, 7).Value       'Total Qté
    Wd.Cells(Dl, 10).Value = Ws.Cells(16, 9).Value      'Montant HT
    Wd.Cells(Dl, 11).Value = Ws.Cells(17, 8).Value      'Taux AIB
    Wd.Cells(Dl, 12).Value = Ws.Cells(17, 9).Value      'Montant AIB
    'Wd.Cells(Dl, 13).Value = ??? Litre de Gasoil
    Wd.Cells(Dl, 14).Value = Ws.Cells(20, 9).Value      'Montant Gasoil
    Wd.Cells(Dl, 15).Value = Ws.Cells(21, 9).Value      'NAP
    'Ajout d'une feuille
    Ws.Copy After:=Sheets(Worksheets.Count)
    Set NF = ActiveSheet 'Initialisation Feuille
    With NF
       .Name = Ws.Range("G3") 'Renommer la feuille avec N° Facture
    End With
    For Each Sh In NF.Shapes  'Suppression du bouton
      Sh.Delete
    Next Sh
    Ws.Activate 'Activation feuille FACTURE 00
    Ws.Range("B1:B5,G3,G16,A13:D15,F13:G15,G18:H19") = "" 'Vide ancienne données
    Ws.Range("G3").Select 'Se positionne sur N° Facture
End Sub

facture.xlsm (101,7 Ko)

Tu es formidable.
Je l’ai testé et ça répond bien

Ce sujet a été automatiquement fermé après 30 jours. Aucune réponse n’est permise dorénavant.