Somme de Somme.si mais en VBA sur de potentielles cellules

Bonjour,

J’ai construit une feuille de facturation soit une liste de référence avec leurs tarifs. Ces derniers sont additionnés selon leurs TVA 5,5% (en E43) ou 20% (en F43) à travers des formules SOMME SI.

Puis la facture est résumée de façon on ne peu plus classique : Total HT / Total TVA / Total TTC (via des formules de rappel)

Voici le problème.

Le format de page « Facturation » est sur 53 lignes.

Si il y a trop de référence il est possible (via un code"Nouvelle page") de « copier » ces 53 lignes pour les « coller » en dessous.

Remarque : les « SOMME.SI » seront recopiées et efficace mais seulement sur leurs 53 lignes.

Une fois la saisie et l’enregistrement effectués, un code (supprime) vient effacer toutes les lignes > à 53. (Pour conserver ainsi qu’une seule page).

Vous comprendrez que le but de la facture est d’avoir la TVA global sur toutes les références et ne pas faire feuille par feuille (idem pour total HT et total TTC).

Alors comment faire pour que :

Si il y a 1 page :

E43= SOMME.SI(J15 :J37; »5,5% » ;K15 :K37) »

Si il y a 2 pages : (+53 lignes)

E43=E43+E96, soit :

E43= SOMME.SI(J15 :J37; »5,5% » ;K15 :K37) » + SOMME.SI(J68 :J90; »5,5% » ;K68 :K90) »

et

E96=E43+E96, soit

E96= SOMME.SI(J15 :J37; »5,5% » ;K15 :K37) » + SOMME.SI(J68 :J90; »5,5% » ;K68 :K90) »

Si il y a 3 pages : (+53 lignes*2)

Etc….

Si vous voulez faire fonctionner le fichier joint, taper 1 ou 2 ou 3 ou 4 dans la colonne "code puis les quantité que vous souhaitez dans quantités.

Merci d’avoir pris le temps

Amicalement.

Bonjour,

Pour moi, il y a une grave erreur

Une facture qui a plusieurs pages ne doit pas se terminer pas "Net à payer" sur chaque page

Oui, Tu as tout à fait raison BrunoM45.

Mais mon format facture doit suivre mon format "Bon de commande" et "Bon de Livraison", préalablement générés via ce fichier Excel.

Et pour cela, une fois le code fonctionnelle , je m'arrangerait avec des fonction SI de mettre les écritures des premières page en banc.

Ainsi les totaux ne seront que sur la dernière page.

Amicalement,

Alex.

Alex,

Pourquoi ne pas tout simplement ajouter des lignes

comme cela ça répond totalement à ta problématique de SOMME()

A+

Ahhhhhh.... Ce serait tellement si simple.

Evidement, la logique voudrait la simplicité : ajouté des lignes de références dans le corps de la facture.

Mais voila, le problème c'est cette feuille est cachée dans le fonctionnement de l'application.

Elle est issue des 64 Feuil de mon classeur et fonctionne depuis une autre feuille. C'est à dire que dans le format que j'ai posté vous remplissez les références et les Quantités.

Mais dans la VO ces données sont remplies depuis une autre étape dans le cheminement BC / BL / Facturation.

Bref, si je change le format, ça complique beaucoup de chose en amont.

Désolé de ne pas vouloir la simplicité.

Alex.

Bonjour,

Voici la solution que j'ai pu mettre en place

(cette solution m'a été proposée par DAN, membre très actif sur ce Forum. Si tu passe par là, merci encore à toi Dan de liège au gamertag "la panthère rose").

il faut utiliser la fonction FORMULA R1C1

.Range("K" & lig + 18).FormulaR1C1 =  "=SUM(R[-27]C : R[-5]C, R[-53]C)" 

Puis l'adapter par chaque range.

Amicalement,

Alex

Bonjour DUAL ex

cette solution m'a été proposée par DAN, membre très actif sur ce Forum.

Normal... il a le temps lui... il est à la retraite

@DAN venant de moi, tu sais que c'est une boutade

A+

Re

Mon cher BrunoM45... aucun souci mais ne me fais pas plus vieux que je ne suis hein ... Je travaille encore mais la retraite est proche quand même...

Au plaisir de se recroiser...

Salut Dan

Mon cher BrunoM45... aucun souci mais ne me fais pas plus vieux que je ne suis hein ... Je travaille encore mais la retraite est proche quand même...

Mince je te croyais fonctionnaire ou alors... haut fonctionnaire

Au plaisir de se recroiser...

Tout a fait au plaisir de se recroiser, voir même dans la vrai vie

Bonjour à vous messieurs, Dan, Bruno,

J'ai posté un com sur la problématique d'un lien hypertexte, mais j'ai peu de réponse et je n'y arrive toujours pas.

Pouvez-vous m'éclairer sur la conception d'un lien hypertexte (Cf. le code ci dessous).

Je sais que Dan va assurer.

Sub ENRtableau()
Dim derlig As Long

Range("E3").Copy
'je copie le code client généré en E3 sur la Feuille "Fiche client"

Sheets("TABclient").Select
'Feuille où se trouve mon tableau récapitulatif des clients enregistrés

    derlig = Range("B5").End(xlDown).Address
   ' la 1ère colonne de mon tableau est la colonne "B"
   'Je vais chercher la dernière cellule pleine de ce tableau

    Range(derlig).Select
    ActiveCell.Offset(1, 0).Select
    'Je descends d'une range pour être sur la première ligne vide

    ActiveCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True
    'Je colle le code client dans cette range

    'Lien hypertexte vers la feuille qui s'est renommée comme le code client :
    ActiveSheet.Hyperlinks.Add _
            Anchor:=Selection, _
            Address:="", _
            SubAddress:=Worksheets(Selection).Name, _
            TextToDisplay:=derlig - 1

            'L'ancre : (là où il y aura le lien hypertexte) la cellule où a été copié le code client dans le tableau récapitulatif
            'Adress : Je ne sais pas ce que c'est...
            'Subaddress : là où le lien va nous emmener : la Feuille qui porte le nom du code client
            'TextToDisplay : le nom écrit pour le lien hypertexte : le code client

Call RETOURPAGE

Range("E6,E9,E13,E14,E15,E16,E18:E23,E26:E31,E34:E35").Copy

Sheets("TABclient").Activate

        derlig = Range("C5").End(xlDown).Address

    Range(derlig).Select
    Selection.Offset(1, 0).Activate

        If Selection.Offset(0, -1) > 0 Then
                        ActiveCell.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=True

            Else: GoTo 1
        End If
1

Call RETOURPAGE

Range("E6").Activate

End Sub

Merci beaucoup.

Amicalement,

Alex.

Rechercher des sujets similaires à "somme vba potentielles"