Creation feuille sup et incrementation ??

bonjour,

je suis novice sous excel, aussi j'essayerais d'etre le plus claire possible dans mes explications :

je suis en train de faire un fichier excel gerant un stock, devis et facture.

J'ai bien avancé, seulement je bloque

j'ai dans mon classeur :

  • une feuille stock avec dedans ma designation et le prix
  • une feuille devis
  • une feuille facture

je saisie dans la feuille stock, devant ma designation la quantité

je lance ma macro qui me bascule mes references (designation, prix, quantité) dans ma feuille devis (ctrl+a)

je relance une deuxieme macro qui bascule mes données de la feuille devis sur la feuille facture (ctrl+f)

Ma question : comment, apres une validation de ma facture, créer, via une macro, une feuille supplémentaire (facture "01" à coté de ma feuille facture qui reste le "modele").

De ce fait j'aurais a chaque validation de ma facture une feuille supplémentaire.

Ci-joint mon fichier (en ZIP) avec les explications incluses (demarrer sur l'onglet STOCK) :

[lien périmé]

Merci de votre aide.

Bonjour,

Vois ce lien qui devrait t'aider --> https://www.excel-pratique.com/forum/viewtopic.php?p=36117

Voici le code pour créer une nouvelle feuille facture à partir de ta facture modèle et la nommer avec la valeur se trouvant en A1 (ton numéro de facture)

Sheets("Facture").Copy After:=Sheets("Facture")
Activesheet.name = "Facture" & Range("A1")

Amicalement

Dan

merci Dan mais...

ou dois-je l'inserer ?

et comment lancer cette macro ?

as-tu essayer mon fichier ? t'en pense koi ?

sinon conernant l'autre forum, les reponses ne sont que mes relances

re,

Je regarderai ton fichier ce soir car là je suis au boulot.

Si entre-temps tu reçois une réponse du site d'XLD, merci de laisser un message ici afin que l'on sache que tu as reçu une solution.

A plus tard

Dan

merci

si entre temps j'ai une reponse je posterais la solution , histoire d'en faire profiter la communauté

Re,

J'ai regardé ton fichier.

Pour faire simple, essaie ce code qui va simplement dupliquer la feuille Devis et la renommer en feuille Facture avec le chiffre 01.

Sub Facture()
    Sheets("Devis").Copy before:=Sheets("Devis")
    With ActiveSheet
        .Name = "Facture" & "01"
End With
End Sub

Là cela fonctionne une fois... Est-ce cela que tu veux ?

En analysant un peu plus loin. Ce qu'il faut savoir, c'est comment tu penses numéroter tes factures. On pourrait utiliser le numéro de ton devis en le faisant précéder d'une lettre F. L'inconvénient est que tout devis ne donne pas nécessairement une facture. Dans ce cas, la numérotation de tes factures ne se suivra pas (que dira ton contrôle fiscal...)

De plus, que vas tu faire lorsque ton fichier aura des dizaines de facture ?...

Bref, tu vois qu'il y pas mal de questions à résoudre.

A te relire

Dan

l'ideal est de distinguer les devis des factures

pouvoir avoir des feuilles DEVIS01, DEVIS02, etc afin de garder une trace car chaque devis n'aboutis pas a une facture

et

une trace pour les factures en les nommants 01,02,03, etc

sachant que la facture passe par un devis

donc coté disposition onglets, on aurait grossierement un decoupage du type :

Devis01/devis02/devis03/01/02/03/facture/devis/stock

tu vois le tableau ? ^^

tks

Bonjour,

Nous avion préparé un fichier pour un autre membre qui je pense devrait te convenir.

Regarde-le et dis-nous ce que tu en penses.

C'est sur ce fil : https://forum.excel-pratique.com/viewtopic.php?t=4725&postdays=0&postorder=asc&start=10

Amicalement

Nad

n'ayant pas de connaisance en macro je suis incapable de decortiquer son code et de l'adapter

de plus son fil de discussion reste en suspend, et moi j'aimerais resoudre le mien

lol

Ma requête est-elle trop compliquée ? trop longue à faire ?

Re,

Le fichier du fil est complet. La nouvelle demande de belette est de ne pas avoir de numéro de devis, ce qui n'est pas ton cas.

Je ne te demande pas de comprendre les macros, du moins pour l'instant, mais je voudrais savoir si dans l'ensemble c'est ce genre de fichier que tu souhaites. Si c'est le cas, on adaptera à ton fichier.

Peux-tu le tester ?

A te relire

Nad

je l'ai testé oui, cela ne correspond pas a mes attentes

et puis je tourne deja avec mon appli, aussi je voulais "automatiser" certaines fonctions afin de la rendre plus ergonomique ^^

Re,

Nad t'a donné le même lien que moi plus haut (fichier de Belette). Comme cela ne te convient pas, je te propose déjà de remplacer la macro Facture par celle-ci après

Sub Facture()
'Macro par Dan pour Reset - XL pratique
Dim Fnum As Byte, ws As Byte
Fnum = 0
For Each Sheet In ThisWorkbook.Worksheets
If Left(Sheet.Name, 7) = "Facture" Then
Fnum = Fnum + 1
End If
Next
If ActiveSheet.Name = "Facture" Then
ActiveSheet.Copy Before:=Sheets("Devis")
ElseIf ActiveSheet.Name = "Devis" Then
Sheets("Devis").Copy Before:=Sheets("Devis")
Else: End
End If
With ActiveSheet
    .Name = "Facture" & Format(Fnum, "00")
End With
End Sub

Que tu sois placé sur les feuilles feuille Devis ou facture, la macro créera une feuille Facture et incluera un nouveau numéro de facture.

En gros :

  • Si tu reprends un devis pour lequel tu dois émettre une facture, la macro créera la facture à partir de la feuille Devis et lui ajoutera un numéro.
  • Si tu établis une facture sans devis préalable, la macro créera également une facture et ajoutera un numéro.

Vois si cela te convient

Amicalement

Dan

bon j'ai remplacé mon code par le tien, je saisi ma quantité dans ma feuille stock, ctrl+A pour basculer en devis, crtl + f pour facture mais la il ne se passe rien hormsi la fonction "rechercher" qui apparait de excel :p

re,

Normal si tu as remplacé le code Facture par le mien. Il faut que tu ailles dans les options des macros (Outils / Macros / macro puis Option) et réattribuer le raccourci à la macro Facture.

Attention que si tu prends CTRL + F, cette fonction excel de base sera désactivée lorsque tu utiliseras ton fichier. C'est de prendre une autre lettre.

Amicalement

Dan

nickel ça fonctionne !!!

ai mis ctrl+Q

par contre il y a possibilité, plutot que de renommer les factures par Facture01, Facture02, etc

de renommer qu'avec des nombres, genre 01,02,03, etc....?

re,

Oui c'est possible mais peut être pas une bonne idée si tu dois aussi nommer tes devis.

Dans le code, remplace :

= "Facture" & Format(Fnum, "00") 

Sans le mot facture :

= Format(Fnum, "00") 

avec une lettre F (pour Facture)

= "F" & Format(Fnum, "00") 

Amicalement

Dan

Sans le mot facture :

Code:

= Format(Fnum, "00")

ça fonctionne que pour la premiere facture qu'il nomme 01, mais sur la deuxieme il me met devis (02) et passe en mode debug

on y est presque !! on y est presque !!

re,

Oups désolé... au boulot j'ai fait trop vite.

remplace le code par celui-ci :

Sub Facture()
'Macro par Dan pour Reset - XL pratique
Dim Fnum As Byte, ws As Byte
Fnum = 0
For Each Sheet In ThisWorkbook.Worksheets
If IsNumeric(Sheet.Name) Then
Fnum = Sheet.Name + 1
End If
Next
If ActiveSheet.Name = "Facture" Then
ActiveSheet.Copy Before:=Sheets("Devis")
ElseIf ActiveSheet.Name = "Devis" Then
Sheets("Devis").Copy Before:=Sheets("Devis")
Else: End
End If
With ActiveSheet
    .Name = Format(Fnum, "00")
End With
End Sub

Amicalement

Dan

bon ça fonctionne, juste que la premiere facture demarre a 00 et non 01

une piste pour resoudre cela ? et apres je vous embette plus

Rechercher des sujets similaires à "creation feuille sup incrementation"