Remplir une facture à partir d'un n°

chezswan

XLDnaute Occasionnel
Bonjour à tous,

Pour un ami artisan et pour chercher à apprendre, j’essaye de créer un facturier. En m’aidant de différent forum, j’ai pu avancer un peu (CF en P.J.).

Je bloque en ce moment sur le problème suivant.

J’aimerai saisir sur la feuille « Cumul » un devis ou facture.

Ce que je cherche à faire, c’est avec la feuille “ Facture“, ne rentrer que le n° de facture créé dans “Cumul“ pour que tous les renseignements s’affichent dans les cases idoines.

J’espère que mes explications ne sont pas trop brouillonnent.

Merci de votre attention.

Samy
 

Pièces jointes

  • enrenpdf4.xlsm
    41.7 KB · Affichages: 61

chezswan

XLDnaute Occasionnel
re-Bonjour djidji59430,

En revanche la colonne Qté de la feuille "Cumul", semble ne pas se reporter sur le feuille "Facture".
J'ai essayé de copier coller ta formule dans la colonne en changeant "Code article" par Qté, mais ça ne fonctionne pas. Une piste ?

Merci par avance,

Samy
 

chezswan

XLDnaute Occasionnel
Bonjour JCGL,

Merci de votre retour.

J'ai donc copié dans la cellule E8 de la feuille facture la formule :

=SIERREUR(INDEX(feuille_cumul[[#Tout];[Qté]];PETITE.VALEUR(SI(feuille_cumul[[#Tout];[N° Facture]]=Facture!$B$11;LIGNE(feuille_cumul[[#Tout];[Qté]]));LIGNES($1:1)));"")

Ensuite fait Ctrl+Maj+Entrée, mais ça ne donne rien.

Il y a surement un élément qui m'échappe. Je continue de chercher et reste à votre écoute pour un conseil.

Bonne journée.
 

grisan29

XLDnaute Accro
Bonsoir djidji59430,chezswan et le forum
j'ai fait un peu de ménage dans les codes "cumul" ci dessous
Code:
Sub Cumul()
'
' Cumul Macro

    Sheets("Cumul").Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

    Worksheets("Facture").Range("B11").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("B11")

    Worksheets("Facture").Range("D10:G10").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("B2")

    Worksheets("Facture").Range("A15:B15").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("D2")

    Worksheets("Facture").Range("G38").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("C2")

    Worksheets("Facture").Range("G42").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("E2")

    Worksheets("Facture").Range("G39").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("F2")

    Worksheets("Facture").Range("G40").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("G2")

    Worksheets("Facture").Range("G41").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("H2")

    Worksheets("Facture").Range("G43").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("I2")


    Sheets("Facture").Select
    ActiveWindow.SmallScroll Down:=-18
    Range("I3:J3").Select
End Sub
et aussi dans celui nouvelle facture
Code:
Sub Nouvelle_facture()

'Avertissement avant effacage


    Dim Rep As Integer
    Rep = MsgBox("Attention, la facture sera effacée, l'avez-vous sauvegardée ? Sinon choisir Le bouton cumul avant", vbYesNo + vbQuestion, "mDF XLpages.com")
    If Rep = vbYes Then
    Else
        Exit Sub

    End If
    ' Nouvelle_facture Macro
    With Sheets("Facture")

        .Range("B11") = Range("B11") + 1
        .Range("D10") = ""    'Select
        .Range("I3:J3").ClearContents
        .Range("A18:A37").ClearContents
        .Range("E18:E37").ClearContents
        .Range("E39:E40").ClearContents
        .Range("G42").ClearContents
        .Range("G44").ClearContents
    End With
histoire d'enlever les .select laissés par l'enregistreur, mais sans optimiser les codes
 

chezswan

XLDnaute Occasionnel
Bonsoir djidji59430,chezswan et le forum
j'ai fait un peu de ménage dans les codes "cumul" ci dessous
Code:
Sub Cumul()
'
' Cumul Macro

    Sheets("Cumul").Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove

    Worksheets("Facture").Range("B11").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("B11")

    Worksheets("Facture").Range("D10:G10").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("B2")

    Worksheets("Facture").Range("A15:B15").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("D2")

    Worksheets("Facture").Range("G38").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("C2")

    Worksheets("Facture").Range("G42").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("E2")

    Worksheets("Facture").Range("G39").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("F2")

    Worksheets("Facture").Range("G40").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("G2")

    Worksheets("Facture").Range("G41").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("H2")

    Worksheets("Facture").Range("G43").Copy
    ActiveSheet.Paste Destination:=Worksheets("Cumul").Range("I2")


    Sheets("Facture").Select
    ActiveWindow.SmallScroll Down:=-18
    Range("I3:J3").Select
End Sub
et aussi dans celui nouvelle facture
Code:
Sub Nouvelle_facture()

'Avertissement avant effacage


    Dim Rep As Integer
    Rep = MsgBox("Attention, la facture sera effacée, l'avez-vous sauvegardée ? Sinon choisir Le bouton cumul avant", vbYesNo + vbQuestion, "mDF XLpages.com")
    If Rep = vbYes Then
    Else
        Exit Sub

    End If
    ' Nouvelle_facture Macro
    With Sheets("Facture")

        .Range("B11") = Range("B11") + 1
        .Range("D10") = ""    'Select
        .Range("I3:J3").ClearContents
        .Range("A18:A37").ClearContents
        .Range("E18:E37").ClearContents
        .Range("E39:E40").ClearContents
        .Range("G42").ClearContents
        .Range("G44").ClearContents
    End With
histoire d'enlever les .select laissés par l'enregistreur, mais sans optimiser les codes
 

JCGL

XLDnaute Barbatruc
Bonjour à tous,

Un peu plus d'optimisation

VB:
Sub Cumul()
Set FC = Sheets("Cumul")
Set FS = Sheets("Facture")

    FC.Range("A2").EntireRow.Insert
    FS.Range("B11").Copy FC.Range("A2")
    FS.Range("D10:G10").Copy FC.Range("B2")
    FS.Range("A15:B15").Copy FC.Range("D2")
    FS.Range("G38").Copy FC.Range("C2")
    FS.Range("G42").Copy FC.Range("E2")
    FS.Range("G39").Copy FC.Range("F2")
    FS.Range("G40").Copy FC.Range("G2")
    FS.Range("G41").Copy FC.Range("H2")
    FS.Range("G43").Copy FC.Range("I2")
    FS.Select
    Range("I3:J3").Select
End Sub
 

chezswan

XLDnaute Occasionnel
Bonjour à tous,

Un peu plus d'optimisation

VB:
Sub Cumul()
Set FC = Sheets("Cumul")
Set FS = Sheets("Facture")

    FC.Range("A2").EntireRow.Insert
    FS.Range("B11").Copy FC.Range("A2")
    FS.Range("D10:G10").Copy FC.Range("B2")
    FS.Range("A15:B15").Copy FC.Range("D2")
    FS.Range("G38").Copy FC.Range("C2")
    FS.Range("G42").Copy FC.Range("E2")
    FS.Range("G39").Copy FC.Range("F2")
    FS.Range("G40").Copy FC.Range("G2")
    FS.Range("G41").Copy FC.Range("H2")
    FS.Range("G43").Copy FC.Range("I2")
    FS.Select
    Range("I3:J3").Select
End Sub
 

chezswan

XLDnaute Occasionnel
Bonjour,

En fait, maintenant qu'à partir de la feuille "Facture", je peux chercher, avec le n° de facture, la facture, reconstituée, je vais saisir les factures dans la feuille cumul. La macro ne servira donc plus.

En revanche merci de vos contributions car ils m'en apprennent beaucoup sur la possibilité d'aborder de différentes façons un même sujet.

En revanche, y a-t'il une autre façon d'aborder la formule ci-dessous en VBA ?



Merci à tous.
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
311 725
Messages
2 081 941
Membres
101 847
dernier inscrit
Djigbenou