Macro excel

nanieb Messages postés 13 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 16 septembre 2011 - 8 déc. 2008 à 07:52
nanieb Messages postés 13 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 16 septembre 2011 - 9 déc. 2008 à 08:13
Bonjour,<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /??>






 






Pourriez-vous m’aider s’il vous plait à finaliser mon projet.





J’ai crée un facturier sous excel, tout fonctionne très bien, mais je souhaiterais après l’impression de ma facture, faire un récapitulatif sur la première feuille.






 






Sur cette feuille « récapitulatif » s’insère déjà le numéro de facture, le nom et prénom du client, mais je bloque pour insérer le PHT, la TVA et le PTTC, ces divers montants ne se trouvent pas toujours à la même place, selon si la facture est d’une page, deux pages, trois pages ou quatre pages.








Merci par avance de toute l'aide que vous pourrez m'apporter.
 






Sub Macro1()






   








    ' Déclaration de variables






    Dim NuméroFacture






   








    ' Définition de variables






    NuméroFacture = ActiveSheet.Name






   








    ' FEUILLE RECAPITULATIF






   








    ' Insère une ligne dans <?xml:namespace prefix st1 ns "urn:schemas-microsoft-com:office:smarttags" /??><st1:personname w:st="on" productid="la feuille Récapitulatif">la feuille Récapitulatif</st1:personname>






   

Sheets("Récapitulatif").Select






    Rows("2:2").Select






    Selection.Insert Shift:=xlDown






   

Range("A2") = NuméroFacture






 







    ' Saisie le Nom et Prénom sur la feuille récapitulatif






   

Worksheets(Worksheets.Count).Select






    Range("C9").Select






    Selection.Copy






    Sheets("Récapitulatif").Select






    Range("B2").Select






    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _






       

:=False, Transpose:=False






 







   

' FACTURE 1 PAGE






    If Range("J8") = "" Then






       

MsgBox "FACTURE 1 PAGE", vbInformation, "INFORMATION"






       

' PHT






        Worksheets(Worksheets.Count).Select






        Range("G46").Select






        Application.CutCopyMode = False






        Selection.Copy






        Sheets("Récapitulatif").Select






        Range("F2").Select






        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _






            :=False, Transpose:=False






        ' TVA






        Worksheets(Worksheets.Count).Select






        Range("G43").Select






        Application.CutCopyMode = False






    
   Selection.Copy






        Sheets("Récapitulatif").Select






        Range("G2").Select






        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _






            :=False, Transpose:=False






        ' PTTC






        Worksheets(Worksheets.Count).Select






        Range("G44").Select






       

Application.CutCopyMode = False






        Selection.Copy






        Sheets("Récapitulatif").Select






        Range("H2").Select






        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _






   
        :=False, Transpose:=False






   








    ' FACTURE 2 PAGES






   
<st1:place w:st="on">
<st1:placename w:st="on">ElseIf</st1:placename>
<st1:placetype w:st="on">Range</st1:placetype>
</st1:place>("R8") = "" Then






        MsgBox "FACTURE 2 PAGES", vbInformation, "INFORMATION"






        ' PHT






         Worksheets(Worksheets.Count).Select






       

Range("O42").Select






        Selection.Copy






        Sheets("Récapitulatif").Select






        Range("F2").Select






        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _






           

:=False, Transpose:=False






        ' TVA






         Worksheets(Worksheets.Count).Select






        Range("O43").Select






        Application.CutCopyMode = False






        Selection.Copy






        Sheets("Récapitulatif").Select






        Range("G2").Select






        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _






          
 :=False, Transpose:=False






        ' PTTC






         Worksheets(Worksheets.Count).Select






        Range("O44").Select






       

Application.CutCopyMode = False






        Selection.Copy






        Sheets("Récapitulatif").Select






        Range("H2").Select






        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _






           

:=False, Transpose:=False






   








    ' FACTURE 3 PAGES






    ElseIf Range("Z1") = "" Then






        MsgBox "FACTURE 3 PAGES", vbInformation, "INFORMATION"






       

' PHT






       
 Worksheets(Worksheets.Count).Select






       

Range("W42").Select






        Selection.Copy






        Sheets("Récapitulatif").Select






        Range("F2").Select






        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _






           

:=False, Transpose:=False






        ' TVA






         Worksheets(Worksheets.Count).Select






        Range("W43").Select






       

Application.CutCopyMode = False






        Selection.Copy






        Sheets("Récapitulatif").Select






        Range("G2").Select






        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _






            :=False, Transpose:=False






        ' PTTC






         Worksheets(Worksheets.Count).Select






        Range("W44").Select






        Application.CutCopyMode = False






        Selection.Copy






 
       Sheets("Récapitulatif").Select






        Range("H2").Select






        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _






           

:=False, Transpose:=False






 







    ' FACTURE 4 PAGES






   

<st1:place w:st="on">
<st1:placename w:st="on">
ElseIf
</st1:placename>

<st1:placetype w:st="on">Range</st1:placetype>

</st1:place>
("AH1") = "" Then






        MsgBox "FACTURE 4 PAGES", vbInformation, "INFORMATION"






        ' PHT






        Worksheets(Worksheets.Count).Select






        Range("AE42").Select






        Selection.Copy






        Sheets("Récapitulatif").Select






        Range("F2").Select






        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _






           

:=False, Transpose:=False






        ' TVA






        Worksheets(Worksheets.Count).Select






        Range("AE43").Select






        Application.CutCopyMode = False






        Selection.Copy






        Sheets("Récapitulatif").Select






        Range("G2").Select






        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _






            :=False, Transpose:=False






        ' PTTC






        Worksheets(Worksheets.Count).Select






        Range("AE44").Select






        Application.CutCopyMode = False






        Selection.Copy






        Sheets("Récapitulatif").Select






        Range("H2").Select






        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _






            :=False, Transpose:=False






 







    End If






 







    ' Trie la colonne des numéros de facture sur la feuille récapitulatif






   

Range("J1").Activate






    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _






        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _






        DataOption1:=xlSortNormal






    Range("B28").Select






 






End Sub






 








Nanie

3 réponses

pile_poil Messages postés 682 Date d'inscription vendredi 6 avril 2007 Statut Membre Dernière intervention 4 août 2012 6
8 déc. 2008 à 10:53
bonjour
tu pourrais commencer par remplacer  tes :
 
Worksheets(Worksheets.Count).Select
 Range("C9").Select
Selection.Copy
Sheets("Récapitulatif").Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks :=False, Transpose:=False

 par
Sheets("Récapitulatif").Range("B2").Value = Sheets(Sheets.Count).Range("C9").Value

ton code y gagnerait déja en clarté

mais le plus important serait de savoir le code que tu as pour calculer tes PHT TVA PTTC
car l'idée est, lors de ce calcul , de mettre les résultats dans des variables  pour ensuite mette le contenu de cette variable dans la cellule qui va bien  par un
Sheets("Récapitulatif").Range("F2")..value = variablePHT
Sheets("Récapitulatif").Range("G2")..value = variableTVA
Sheets("Récapitulatif").Range("H2")..value = variablePTTC

et qu'importe alors que ta facture fasse 1 /2 page ou 200  puisqu'on travaille sur une donnée pas sur un emplacement de donnée

[reglement.aspx ]si c'est la solution, penser : REPONSE ACCEPTEE
0
cs_thierry la fronde Messages postés 351 Date d'inscription mercredi 21 juillet 2004 Statut Membre Dernière intervention 12 août 2009
8 déc. 2008 à 11:00
Bonjour,

Plutôt que de faire le calcul à partir de la feuille Récap, faire en sorte ta feuille facture copie le résultat dans la feuille Récap (et non  pas l'inverse).

thierry la fronde
0
nanieb Messages postés 13 Date d'inscription mardi 11 mars 2008 Statut Membre Dernière intervention 16 septembre 2011
9 déc. 2008 à 08:13
Bonjour,

Le PHT, la TVA, et le PTTC s'insère automatiquement dans chaque nouvelle facture.

Je souhaiterais insérer dans la feuille récapitulatif le PHT, la TVA et le PTTC.
Ces montants seront copiés dans la feuille facture et insérer dans la feuille recapitulatif

FACT 1 PAGE             FACT 2 PAGES            FACT 3 PAGES             FACT 4 PAGES   G42 PHT                   O42  PHT                  W42 = PHT                    AE42 = PHT   G43 TVA                   O43 TVA                  W43 = TVA                    AE43 = TVA
   G44 = PTTC                 O44 = PTTC                 W44 = PTTC                  AE44 = PTTC

Ma macro ne fonctionne pas et je ne trouve pas mon erreur, merci pour votre aide précieuse
Sub Macro1()<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>

   

    ' Déclaration de variables

    Dim NuméroFacture

   

    ' Définition de variables

    NuméroFacture = ActiveSheet.Name

   

    ' FEUILLE RECAPITULATIF

   
    ' Insère une ligne dans <?xml:namespace prefix st1 ns "urn:schemas-microsoft-com:office:smarttags" /??><st1:personname w:st="on" productid="la feuille R?capitulatif">la feuille Récapitulatif</st1:personname>

    Sheets("Récapitulatif").Select

    Rows("2:2").Select

    Selection.Insert Shift:=xlDown

    Range("A2") = NuméroFacture

 

    ' Saisie le Nom et Prénom sur la feuille récapitulatif

    Sheets("Récapitulatif").Range("B2").Value = Sheets(Sheets.Count).Range("C9").Value

 

    ' FACTURE 1 PAGE
    If Range("J8") "" Then ' si cellule vide facture 1 page

        MsgBox "FACTURE 1 PAGE", vbInformation, "INFORMATION"

        ‘ PHT

        Sheets("Récapitulatif").Range("F2").Value = Sheets(Sheets.Count).Range("G42").Value

        ' TVA

        Sheets("Récapitulatif").Range("G2").Value = Sheets(Sheets.Count).Range("G43").Value

        ' PTTC

        Sheets("Récapitulatif").Range("H2").Value = Sheets(Sheets.Count).Range("G44").Value

 

    ' FACTURE 2 PAGES

    <st1:place w:st="on"><st1:placename w:st="on">ElseIf</st1:placename><st1:placetype w:st="on">Range</st1:placetype></st1:place>("R8") = "" Then ' si cellule vide = facture 2 pages

        MsgBox "FACTURE 2 PAGES", vbInformation, "INFORMATION"

        ' PHT

        Sheets("Récapitulatif").Range("F2").Value = Sheets(Sheets.Count).Range("O42").Value

        ' TVA

        Sheets("Récapitulatif").Range("G2").Value = Sheets(Sheets.Count).Range("O43").Value

        ' PTTC

        Sheets("Récapitulatif").Range("H2").Value = Sheets(Sheets.Count).Range("O44").Value

  

    ' FACTURE 3 PAGES
    ElseIf Range("Z1") "" Then ' si cellule vide facture 3 pages

        MsgBox "FACTURE 3 PAGES", vbInformation, "INFORMATION"

        ' PHT

        Sheets("Récapitulatif").Range("F2").Value = Sheets(Sheets.Count).Range("W42").Value

        ' TVA

        Sheets("Récapitulatif").Range("G2").Value = Sheets(Sheets.Count).Range("W43").Value

        ' PTTC

        Sheets("Récapitulatif").Range("H2").Value = Sheets(Sheets.Count).Range("W44").Value

 

    ' FACTURE 4 PAGES

    <st1:place w:st="on"><st1:placename w:st="on">ElseIf</st1:placename><st1:placetype w:st="on">Range</st1:placetype></st1:place>("AH1") = "" Then ' si cellule vide = facture 4 pages

        ' PHT

        Sheets("Récapitulatif").Range("F2").Value = Sheets(Sheets.Count).Range("AE42").Value

        ' TVA

        Sheets("Récapitulatif").Range("G2").Value = Sheets(Sheets.Count).Range("AE43").Value

        ' PTTC

        Sheets("Récapitulatif").Range("H2").Value = Sheets(Sheets.Count).Range("AE44").Value

 

    End If

 

    ' Trie la colonne des numéros de facture sur la feuille récapitulatif

    Range("J1").Activate

    Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _

        OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _

        DataOption1:=xlSortNormal

    Range("B28").Select

 

End Sub

Nanie
0
Rejoignez-nous