VBA somme de plusieurs feuilles et divers pbm

Bonjour le forum,

J'utilise un fichier de facturation ci-joint et je rencontre plusieurs petits soucis depuis que j'ai apporté une modification (j'ai introduit dans le code de la macro Créer_mois_suivant un code qui permet d'ajouter un feuille de facturation du mois lorsque je créer le nouveau fichier de facturation, et de conserver les anciennes feuilles de facturation. :

1) Je souhaite faire une somme des feuilles de "1 - Facturation" à "12 - Facturation" pour avoir un suivi annuel de ma facturation. Or le pbm est que ces feuilles sont crées via macro chaque mois. Ainsi en janvier j'ai la feuille "1 - Facturation", dans le fichier de février j'aurai la feuille "1 - Facturation" et la feuille "2 - Facturation" etc... donc comment programmer la feuille "SUIVI ANNUEL FACT" pour faire la somme de ces feuilles ?

2) J'ai un message qui apparaît lorsque je créé le fichier du mois suivant (cf bouton "créer fichier du mois suivant" dans le premier onglet, je dois cliquer plus de 20 fois sur OUI... et je ne sais pas vraiment à quoi cela correspond. j'ai mis une copie d'écran en PJ.

3) la macro de facturation ci dessous ne fonctionne plus, puisque le code

With Worksheets("Facturation")

n'est plus adéquat. Le nom de la feuille facturation change chaque mois, et il peut y avoir jusqu'à 12 feuille de facturation, nommées de 01 à 12. J'ai pensé à dupliquer le code 12 fois, avec 12 macros, avec chaque fois

With Worksheets("01 - Facturation")
With Worksheets(" 02 Facturation")

etc.. mais n'y aurait-il pas une autre solution?

Sub GenFact(i%)  

Dim WS As Worksheet
Set WS = Worksheets("Facture modèle")
      With Worksheets("Facturation")
    'WS.Cells(13, 12) = .Cells(1, 1)
    WS.Cells(13, 4) = .Cells(i, 2)
    WS.Cells(7, 13) = .Cells(i, 2)
    WS.Cells(14, 4) = .Cells(i, 1)
    WS.Cells(20, 3) = .Cells(i, 3)
    WS.Cells(21, 3) = .Cells(i, 4)
    WS.Cells(22, 3) = .Cells(i, 5)
    WS.Cells(23, 3) = .Cells(i, 6)
    WS.Cells(24, 3) = .Cells(i, 7)
    WS.Cells(25, 3) = .Cells(i, 8)
    WS.Cells(26, 3) = .Cells(i, 9)
    WS.Cells(27, 3) = .Cells(i, 10)
    WS.Cells(28, 3) = .Cells(i, 3)
    WS.Cells(29, 3) = .Cells(i, 4) + .Cells(i, 5) 'nbre subvention dîner léger + copieux

    WS.Cells(28, 12) = .Cells(i, 11)
    WS.Cells(29, 12) = .Cells(i, 12)

    WS.Cells(30, 13) = .Cells(i, 23) 'rappel/impayé
    WS.Cells(31, 13) = .Cells(i, 24) 'avoir
    WS.Cells(32, 13) = .Cells(i, 29) 'impayé repport mois précédent

    'WS.Cells(20, 12) = .Cells(3, 3)
    'WS.Cells(21, 12) = .Cells(3, 4)
    'WS.Cells(22, 12) = .Cells(3, 5)
    'WS.Cells(23, 12) = .Cells(3, 6)
    'WS.Cells(24, 12) = .Cells(3, 7)
    'WS.Cells(25, 12) = .Cells(3, 8)
    'WS.Cells(26, 12) = .Cells(3, 9)
    'WS.Cells(27, 12) = .Cells(3, 10)
    'WS.Cells(28, 12) = .Cells(3, 11)
    'WS.Cells(29, 12) = .Cells(3, 12)

    End With

    WS.PrintOut

End Sub

Merci pour toute aide,

Vincent

message excel facturation

Salut Vincent,

Trop de questions + pas de fichier = Peu de réponses

Dans le fichier ci-joint, j'ai tenté de répondre à ta première question : si tu ajoutes ou que tu enlèves des feuilles "Facturation" ou que tu modifies les montants des cellules B1 des feuilles "Facturation", le montant de la cellule B1 de la feuille SUIVI ANNUEL FACT est adapté en conséquence lors de sa sélection.

Pour les autres questions, éventuellement que tu devrais les poser les unes après les autres - ou sur des fils différents s'il s'agit de problèmes vraiment séparés - et surtout nous fournir ton fichier.

Cordialement.

28vincentt.zip (9.42 Ko)

Bonjour Yvouille,

Normalement le fichier est bien joint, il est zippé.

Peux tu revérifier s'il te plait? Je n'ai pas la possibilité de le renvoyer car je ne suis pas au bureau aujourdhui.

A++

Vincent

Salut,

Merci plutôt à toi de m'avoir posé la question

Tu avais effectivement bien joint un fichier, mais comme il est accolé à une image, je ne l'ai pas remarqué.

Ton fichier est assez conséquent et je n'ai pas trop l'envie de m'y jeter corps et âme Par contre je pense qu'avec la macro que je t'ai déjà fournie, tu devrais pouvoir avancer. Je te laisse alors voir tout ça et reviens à la charge si tu ne t'en sors pas avec ta première question.

Pour les autres questions, je te propose de les séparer et d'ouvrir d'autres fils à leur sujet.

Amicalement

Bonsoir,

Je te remercie pour ta solution que je vais tester lundi. Dans mon onglet SUIVI ANNUEL FACT les sommes se feront sur des plages de cellules. Par exemple sur la plage A3:A153 de la feuille SUIVI ANNUEL FACT j'aurai la somme des plages A4:A153 des feuilles XX Facturation.

Comment puis-je modifier ton code en ce sens?

Je vais poster les autres question dans d'autres fils.

Merci encore,

Vincent

Bonjour,

Il aurait peut-être mieux valu que tu testes ma solution d’abord puis que tu poses tes questions après

Tu ne sembles pas prendre ta demande trop au sérieux :

Dans ton fichier, dans la plage A3:A153 de la feuille «11 – Facturation», tu as une numérotation jusqu’à 62 (ligne 64) puis tu as du texte, puis à nouveau des chiffres, puis du texte ! Comment veux-tu additionner tout ça sur la feuille «SUIVI ANNUEL FACT» ?

Et puis tu indiques parfois la plage A3:A153, parfois A4:A153.

Et enfin tu nous fournis un fichier protégé par mot de passe

Ma première solution semble un peu compliquée finalement, en voyant ton fichier. Je te propose alors une autre solution par formules.

Dans la feuille dans laquelle tu veux faire tes totaux, tu places une formule de ce genre =SOMME('1 - Facturation:Feuille vierge'!C4) pour laquelle ‘1 – Facturation’ est la première feuille à prendre en compte, 'Feuille vierge' la dernière et C4 la cellule de toutes les feuilles à additionner. Cette ‘Feuille vierge’ est nécessaire puisque tu veux pouvoir ajouter des feuilles par la suite, autrement tu aurais par exemple pu utiliser à la place ‘12 – Facturation’ si elle existait dès le départ.

L’avantage de cette formule est qu'elle est facile à incrémenter et que si tu ajoutes des feuilles entre la feuille '1 – Facturation’ et ‘Feuille vierge', leurs cellules correspondantes y seront prise en compte.

Dans le fichier ci-joint, j’ai tout d’abord placé la formule ci-dessus dans la cellule C4 de la feuille des totaux puis je l’ai incrémentée sur les lignes et colonnes adjacentes. Les totaux sont effectués, même pour tes lignes masquées.

Puis j’ai ajouté la «Feuille complémentaire» entre les deux feuilles indiquées dans la formule et elle est prise en compte dans les totaux.

La seule difficulté – mais elle ne me semble pas insurmontable - avec cette solution sera de placer les feuilles au bon endroit lors de leur création par ta macro existante.

Ca te permet d’avancer ?

Bonsoir,

Je te remercie pour ces solutions. Ca marche très bien. Maintenant je vais poster un post pour modifier la macro d'impression de facture qui ne marche plus car elle était reliée à une feuille "Facture" et non potentiellement à plusieurs onglets "1 - Facture" à "12 - Facture".

A une autre fois sur le forum!

Vincent

Ps : effectivement mon dernier post était mal formulé et l'exemple de colonne mal choisi. De plus j'ai un mac à la maison et je ne peux pas tester les macros... donc je dois attendre d'être au boulot pour pouvoir travailler dessus.

J'aurais quand même été intéressé à savoir laquelle de mes deux solutions tu avais finalement choisie : tu peux encore m'indiquer celà ?

A te relire.

oui bien sur !

J'ai choisi la solution suivante car elle correspondait le mieux à mes attentes et c'était la plus simple à manipuler.

=SOMME('1 - Facturation:Feuille vierge'!C4)

D'autre part j'ai trouvé des solutions pour mes autres pbm

Merci et à bientôt !

Vincent

Rechercher des sujets similaires à "vba somme feuilles divers pbm"