Incrémenter et sauvegarder une facture

Bonjour à tous

Excusez moi, je suis nouveau dans le forum et je ne m'y connais pas en excel.

Grace à certains tutos que j'ai pu consulter sur ce forum, j'ai pu réaliser une facture qui me va mais j'ai deux choses à régler avant qu'elle ne soit parfaite pour moi et j'aurais besoin de votre aide s'il vous plait.

voila, j'ai deux boutons sur ma facture "Nouvelle facture" et "Sauvegarder".

  • J'aimerais que lorsque je clique sur "Nouvelle facture" toutes les informations inutiles pour une nouvelle s'efface et que le numéro de facture en C3 et le numéro d'affaire en E4 changent ou plutôt soient incrémentés (selon le jargon excel).
  • J'aimerais que lorsque je clique sur "Sauvegarder" la facture en cours soit enregistrer sur l'onglet "Historique Facture" sous la forme:
* Nom du client

* N°d'affaire

* Date

* Montant de la facture

Puis en même temps que la facture soit enregistrer dans F:\Factures 2IG

Tout en espérant avoir pu vous expliquer mon problème, je vous prie de bien vouloir courir à mon secours

je joins à mon sujet un sample de ma facture

Portez vous bien et j'attends impatiemment vos reponses

Merciiiii

Bonjour

- J'aimerais que lorsque je clique sur "Nouvelle facture" toutes les informations inutiles pour une nouvelle s'efface et que le numéro de facture en C3 et le numéro d'affaire en E4 changent ou plutôt soient incrémentés (selon le jargon excel).

Avec le code ci-dessous :

Sub Effacer()
'Dan - 13/11/17
' Effacer Macro
With Sheets("Facture")
    .Range("C6,B14:B36,E14:E36").ClearContents
    .Range("C3") = .Range("C3") + 1
    .Range("E4") = .Range("E4") + 1
End With
End Sub

- J'aimerais que lorsque je clique sur "Sauvegarder" la facture en cours soit enregistrer sur l'onglet "Historique Facture" sous la forme:

Avec le code ci-dessous :

Sub Sauvegarde()
'Dan - 13/11/17
Dim dlg As Integer
With Feuil6
    dlg = .Range("A" & .Range("A" & .Rows.Count).End(xlUp).Row) + 1
    .Range("A" & dlg) = Sheets("Facture").Range("C3")
    .Range("B" & dlg) = Sheets("Facture").Range("C6")
    .Range("C" & dlg) = Sheets("Facture").Range("F2")
    .Range("D" & dlg) = Sheets("Facture").Range("F39")
    '.Range("E" & dlg) = Sheets("Facture").Range("C3")
End With
End Sub

Pour le mois à sauvegarder, il faudrait savoir de quel mois on parle. celui de la facture ou de l'échéance ??

Pour la sauvegarde de la facture sur le serveur F, comment nomme-t-on la facture et est-elle sauvegardée en format excel ?

Cordialement

Bonjour Dan

Un énorme MERCI pour m'avoir répondu. je vais mettre en pratique tes réponses et je te tiendrai informé dans quelques instants.

Pour le mois à sauvegarder, il faudrait savoir de quel mois on parle. celui de la facture ou de l'échéance ??

-Laissons tomber la colonne mois vu qu'il y a déjà la date

Pour la sauvegarde de la facture sur le serveur F, comment nomme-t-on la facture et est-elle sauvegardée en format excel ?

-on nommera la facture sous la forme "Nom Client+Numéro d'affaire" si possible

Merciii

Bonjour et bienvenue sur le forum

Bonjour à tous

Un essai à tester.

Bye !

Bonjour à tous,

Comme j'avais également fait les modifs au fichier, voici ma participation

Tu n'auras que l'embarras du choix

A+

Dan

J'ai essayé et ca marche pour le bouton "Nouvelle Facture"

Pour le bouton "Sauvegarder" ca m'affiche une fenetre "Erreur d'exécution '13'. quand je clique sur débogage ca me met:

Dim dlg As Integer

With Feuil6

dlg = .Range("A" & .Range("A" & .Rows.Count).End(xlUp).Row) + 1

.Range("A" & dlg) = Sheets("Facture").Range("C3")

.Range("B" & dlg) = Sheets("Facture").Range("C6")

.Range("C" & dlg) = Sheets("Facture").Range("F2")

.Range("D" & dlg) = Sheets("Facture").Range("F39")

'.Range("E" & dlg) = Sheets("Facture").Range("C3")

End With

End Sub

A quoi ca peut etre du?

Merciii

BrunoM45 a écrit :

Bonjour à tous,

Comme j'avais également fait les modifs au fichier, voici ma participation

Tu n'auras que l'embarras du choix

A+

Merci enormement BrunoM45 pour ton aide, cependant en essayant de cliquer sur "Nouvelle Facture" et "Sauvegarder" je recois une erreur et en cliquant sur "Debogage" j'ai ce qui est sur la piece jointe.

Une idee?

Merci


gmb a écrit :

Bonjour et bienvenue sur le forum

Bonjour à tous

Un essai à tester.

Bye !

Salut GMB

Big thanks a toi également pour ton aide. j'ai essayé le fichier avec tes modifications et ça passe a peu près bien.

la sauvegarde est super, serait il possible d'avoir a la place de "numéro de facture", le "Numéro d'affaire" sur la feuille "SAUVEGARDE"?

c'est a dire Numéro facture, client, date, Montant TTC et incrémenter les cellules C3 et E4 après avoir cliqué sur "sauvegarder" vu que tu as mit la réinitialisation aussi sur ce bouton

Merciii

pour bruno

Nouvelle version.

Bye !

Re

Pour le bouton "Sauvegarder" ca m'affiche une fenetre "Erreur d'exécution '13'. quand je clique sur débogage ca me met:

Hum... normal et désolé. Essayez cette ligne plutôt

dlg = .Range("A" & .Rows.Count).End(xlUp).Row + 1

-on nommera la facture sous la forme "Nom Client+Numéro d'affaire" si possible

ok vous ne répondez pas à lad deuxième question --> quel format --> excel ?

Cordialement

Dan a écrit :

Re

Pour le bouton "Sauvegarder" ca m'affiche une fenetre "Erreur d'exécution '13'. quand je clique sur débogage ca me met:

Hum... normal et désolé. Essayez cette ligne plutôt

dlg = .Range("A" & .Rows.Count).End(xlUp).Row + 1

-on nommera la facture sous la forme "Nom Client+Numéro d'affaire" si possible

ok vous ne répondez pas à lad deuxième question --> quel format --> excel ?

Cordialement

Désolé Dan, oui au format excel s'il vous plait


gmb a écrit :

Nouvelle version.

Bye !

Merci GMB. j'essaie et je reviens!

Re

Pour la sauvegarde, supprimez le code qui se trouve dans la feuille FACTURE --> Private Sub Enregistrement_facture()

Puis mettez celui-ci dans un module et affecter le au bouton Sauvegarde :

Sub Sauvegarde()
Dim dlg As Integer
Dim a
Dim rep As String, Chemin As String, Fichier As String
a = MsgBox("Voulez-vous sauvegarder la facture ? ", vbYesNo + vbQuestion + vbDefaultButton2, "Archivage Facture")
If a = vbYes Then
    ok = True
    With Feuil6
        dlg = .Range("A" & .Rows.Count).End(xlUp).Row + 1
        .Range("A" & dlg) = Sheets("Facture").Range("C3")
        .Range("B" & dlg) = Sheets("Facture").Range("C6")
        .Range("C" & dlg) = Sheets("Facture").Range("F2")
        .Range("D" & dlg) = Sheets("Facture").Range("F39")
        '.Range("E" & dlg) = Sheets("Facture").Range("C3")
    End With
    Sheets("FACTURE").Copy
    With ActiveWorkbook.ActiveSheet.Cells
        .Copy
        .PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        With Selection.Validation
            .Delete
            .Add Type:=xlValidateInputOnly, AlertStyle:=xlValidAlertStop, Operator:=xlBetween
        End With
    End With
    With ActiveWorkbook.ActiveSheet
        On Error Resume Next
        For i = 1 To 2
            .DrawingObjects(4).Delete
        Next
        On Error GoTo 0
        .Range("A1").Select
    End With
    Chemin = "F:\Factures 2IG"
    Fichier = "Facture_" & Sheets("Facture").Range("C6") & "_" & Sheets("Facture").Range("C4")
    With ActiveWorkbook
        .SaveAs Chemin & Fichier & ".xlsx"
        .Close
    End With
End If
ok = False
End Sub

Si ok, et terminé, merci de clôturer le fil en cliquant sur le V vert à coté du bouton EDITER lors de votre réponse

Cordialement

Merci a vous les gars, avec un peu de chacun de vous la facture est Parfaite!!!

Gardons le contact et que Dieu veille sur vos famille.

Dan, Gmb, BrunoM45

Merci énormément

Re

Si vous utilisez mon code, j'ai omis de vous donner une instruction.

Il y a quelques modifications à faire dans votre fichier concernant l'instruction OK = TRUE que j'ai placée dans le code

Si tout est ok pour vous, vous pouvez aussi supprimer de mon code les instruction OK=TRUE et OK=FALSE mais ce serait mieux de les laisser. Dans ce cas, je vous donnerai ce qui est à modifier en supplément

A vous relire

Cordialement

Dan a écrit :

Re

Si vous utilisez mon code, j'ai omis de vous donner une instruction.

Il y a quelques modifications à faire dans votre fichier concernant l'instruction OK = TRUE que j'ai placée dans le code

Si tout est ok pour vous, vous pouvez aussi supprimer de mon code les instruction OK=TRUE et OK=FALSE mais ce serait mieux de les laisser. Dans ce cas, je vous donnerai ce qui est à modifier en supplément

A vous relire

Cordialement

Salut Dan

A quoi sert ces instructions? Dans tous les cas elles ne me dérange pas mais c’est toujours bien de savoir.

re

Lorsque vous exécutez le code sauvegarde, les deux codes Function s'exécutent également. Là cela ne sert à rien. D'où ma proposition d'ajouter de deux instructions dans le projet

si cela vous dit, je vous donne les deux modifications à faire

Dan a écrit :

re

Lorsque vous exécutez le code sauvegarde, les deux codes Function s'exécutent également. Là cela ne sert à rien. D'où ma proposition d'ajouter de deux instructions dans le projet

si cela vous dit, je vous donne les deux modifications à faire

Ca me va passez les moi que je vois comment ca ce comporte

re

Dans l'entete du module où vous avez placer le code (donc tout au dessus et ce, avant n'importe quel code !), mettez cette instruction

Public ok As Boolean

Dans le module 2 ou le module 3 (car vous avez deux fois le même code !), remplacez les trois premières lignes par celles-ci

Function Chiffrelettre(s)
Dim a As Variant, gros As Variant
If ok = True Then Exit Function
....

Cordialement

Re

Merci Dan bien de choses a vous!

Rechercher des sujets similaires à "incrementer sauvegarder facture"