Modification de Macro

br44

XLDnaute Impliqué
Bonjour le forum,

Voilà je reviens vers vous pour savoir si il est possilble de modifier une macro réaliser il y a quelques temps par "Bebere " l'un des spécialiste du forum .

Dans la macro qui suit je souhaiterais que le même calcul se face sur la feuille mensuelle sélectionnée (boucle sur 12 feuilles allant de 2 à 13 dans mon classeur) et non sur la feuille "Saisie1" comme c'est le cas actuellement .

Voici la Macro :
Code:
'Public Sub MetAjour(NomFeuil As String, Nom As String, Mois As String)
'Dim Cel As Range, L As Long, C As Integer, CGlobal As Integer, Couleur As Byte
'Dim Montant, MontantGlobal 'variant
'Select Case NomFeuil
'Case "saisie1" [COLOR="Red"]<== 'Partie à modifier[/COLOR]
'With Worksheets("Saisie1")
'CGlobal = .Cells(10, 255).End(xlToLeft).Column 'index colonne global
'Set Cel = .Cells.Find(Nom)
'If Not Cel Is Nothing Then L = Cel.Row
'Set Cel = .Cells.Find(Mois)
'If Not Cel Is Nothing Then C = Cel.Column
'If .Cells(L, C + 1).Font.ColorIndex = 5 Then
'Montant = .Cells(L, C + 1)
'End If
'For Each Cel In Range(.Cells(L, C + 1), .Cells(L, C + 8))
'If Cel.Font.ColorIndex = 3 Then 'rouge
'.Cells(L, C + 7) = .Cells(L, C + 7) + Cel
'End If
'If Cel.Font.ColorIndex = 5 Then 'bleu
'.Cells(L, CGlobal) = .Cells(L, CGlobal) - Montant
'MontantGlobal = .Cells(L, CGlobal)
'End If
'Next Cel
''If .Cells(L, CGlobal) = "" Then .Cells(L, CGlobal).Font.ColorIndex = 5
'End With
'
'Case Else
'With Worksheets(NomFeuil)
'CGlobal = .Cells(10, 255).End(xlToLeft).Column
'Set Cel = .Cells.Find(Nom)
'If Not Cel Is Nothing Then L = Cel.Row
'Set Cel = .Cells.Find(Mois)
'If Not Cel Is Nothing Then C = Cel.Column
'.Cells(L, C + 7) = ""
'For Each Cel In Range(.Cells(L, C + 1), .Cells(L, C + 8))
'If Cel.Font.ColorIndex = 3 Then 'rouge
'.Cells(L, C + 7) = .Cells(L, C + 7) + Cel
'End If
'If Cel.Font.ColorIndex = 5 Then 'bleu
'.Cells(L, CGlobal) = .Cells(L, CGlobal) - Cel
'End If
'Next Cel
'End With
'
'End Select
'
'With SAISIE3
'.MontantGlobal = MontantGlobal
'.NomClient.List(.NomClient.ListIndex, 1) = .MontantGlobal
'End With
'End Sub

Je joint également un modele d'une feuille mensuel pour infos :


Je souhaites cette modifie pour la raison suivante : Dans la version actuelle le résultat passe bien à 0 mais cela efface également la formule contenue dans la cellules et cela m'obligerais à remettres la formules à chaque changement .

En espèrant que cela soit possible sans trop de complications . Je demande juste les infos avec des explications . Pour la modif je les mettrais en place moi-même si cela m'aidras à comprendre le principe .

Vous remerciants par avances pour votres aide je vous dit à bientôt en espérant avoir ètè claire dans ma demande . Amicalement BR44
 

Pièces jointes

  • Model feuil mens.xls
    26 KB · Affichages: 84

fhoest

XLDnaute Accro
Re : Modification de Macro

bonjour,
essaye avec ce code modifié,
edit: bonjour à Bebere,youki(bj)
Code:
'Public Sub MetAjour(NomFeuil As String, Nom As String, Mois As String)
'Dim Cel As Range, L As Long, C As Integer, CGlobal As Integer, Couleur As Byte
'Dim Montant, MontantGlobal 'variant
[COLOR="Red"]dim feuille as integer
for feuille=2 to 12
[/COLOR]
<== 'Partie à modifier
'With[COLOR="Red"] sheets(feuille)[/COLOR]'Worksheets("Saisie1")
'CGlobal = .Cells(10, 255).End(xlToLeft).Column 'index colonne global
'Set Cel = .Cells.Find(Nom)
'If Not Cel Is Nothing Then L = Cel.Row
'Set Cel = .Cells.Find(Mois)
'If Not Cel Is Nothing Then C = Cel.Column
'If .Cells(L, C + 1).Font.ColorIndex = 5 Then
'Montant = .Cells(L, C + 1)
'End If
'For Each Cel In Range(.Cells(L, C + 1), .Cells(L, C + 8))
'If Cel.Font.ColorIndex = 3 Then 'rouge
'.Cells(L, C + 7) = .Cells(L, C + 7) + Cel
'End If
'If Cel.Font.ColorIndex = 5 Then 'bleu
'.Cells(L, CGlobal) = .Cells(L, CGlobal) - Montant
'MontantGlobal = .Cells(L, CGlobal)
'End If
'Next Cel
''If .Cells(L, CGlobal) = "" Then .Cells(L, CGlobal).Font.ColorIndex = 5
'End With
[COLOR="Red"]next feuille[/COLOR]
'[COLOR="Red"]Select Case NomFeuil'
'Case "saisie1" [/COLOR]
'Case Else
'With Worksheets(NomFeuil)
'CGlobal = .Cells(10, 255).End(xlToLeft).Column
'Set Cel = .Cells.Find(Nom)
'If Not Cel Is Nothing Then L = Cel.Row
'Set Cel = .Cells.Find(Mois)
'If Not Cel Is Nothing Then C = Cel.Column
'.Cells(L, C + 7) = ""
'For Each Cel In Range(.Cells(L, C + 1), .Cells(L, C + 8))
'If Cel.Font.ColorIndex = 3 Then 'rouge
'.Cells(L, C + 7) = .Cells(L, C + 7) + Cel
'End If
'If Cel.Font.ColorIndex = 5 Then 'bleu
'.Cells(L, CGlobal) = .Cells(L, CGlobal) - Cel
'End If
'Next Cel
'End With
'
'End Select
'
'With SAISIE3
'.MontantGlobal = MontantGlobal
'.NomClient.List(.NomClient.ListIndex, 1) = .MontantGlobal
'End With
'End Sub
A+
 

br44

XLDnaute Impliqué
Re : Modification de Macro

Bonjour Youky(bj),Foest, le forum,

Tout d'abord un grand merci avous deux pour la rapiditées de vos réponses.

YOUKY(BJ) : Le temps de testé et je reviens vers toi à plus

FOEST:Si j'ai bien compris ta solution tu à rajoutés la variable "Feuille" dans la macro existante. Mais sans supprimé la variable de la feuille "SAISIE1" es-ce normal ?

Te remerciant pour cette solution le temps de tester et je te tient ègalement au courant .

A bientôt .Amicalement BR44
 

br44

XLDnaute Impliqué
Re : Modification de Macro

Bonjour Fhoest, le forum ,

Merci pour ses précisions et cette réponse rapide .

J'ai essayer de modifier la macro ,mais sans succées. J'ai une autres idées mais je ne sais pas si possible ?

Voilà la question que je me pose : Est-il possible de rajouter une formules dans une cellules qui en posséde déjà une et si oui la faire fonctionnée en fonction de la couleur des cellules consernées ?

Je m'explique : J'ai la formule suivantes dans la cellules "U8" (voir la fichier "Model.xls "joint de mom premier message) :
=SOMME(E8;I8;M8;Q8) quand les cellules sont en rouge .
Si la réponse à ma question est oui il faudrait rajouter la formule(à traduire) suivante:
condition :Si les cellules sont bleues
si le montant encaissé est 99,00€ voir cellule ("X8")est ègal à la cellule ("E8") donc passé la cellule "U8" à zéro bleu .
De même si le montant encaissé est superieur à la cellule où à la somme des cellules en bleues ,car le montant encaissé peut couvrir plusieurs factures . Passer la cellules "U8" à zéro bleu .

En espérant que ma demande soit suffisamment claire et que cela ne soit pas trop compliqué à mettre en place . En vous remerciant par avance du coup de main je vous dis à bientôt sur ce fil .Amicalement BR44

PS: désolé pour la formule mais je n'est pas réussi la traduire correctement . Amicalment BR44
 

br44

XLDnaute Impliqué
Re : Modification de Macro

Bonjour à Fohest,Youki(bj)et au forum ,

je me permets de speécifier une petite infos qui vous permettras peut-être de comprendre mieux la question que j'ai poser dans mon dernier message .

je vaudrais juste remplacer la methode de calcule macro poster dans mon premier message ,soit par une formule Excell où alors par une macro ,mais que le cacule se fase sur les feuilles mensuelles est noms sur la première feuille comme dans la macro .

Je joint le fichier modifier contenant les deux feuilles consernée pour que puissiez voir les différances entrent les deux feuilles .

Je m'excuses de ne pas l'avoir fais plustôt mais j'ai complètement zaper .

En espérant que cela soit plus simple et vous aidera je vous dis à bientôt ,de plus je continue de cherché un solution et reste à votre dispositions pour toutes questions èventuelles . Amicalement BR44
 

Pièces jointes

  • Model feuil mens V2.zip
    8.1 KB · Affichages: 22

br44

XLDnaute Impliqué
Re : Modification de Macro

Bonjour le forum,

Je suis désolé pour mes explications qui à première vu ne sont pas claire .

je me propose donc d'essayer de m'expliquer plus clairement .

Dans la cellule "U8" de la feuille "Janvier" j'ai la formule suivante :

= Somme (E8;I8;M8;Q8) .

Les cellules de la plage de calculèe change de couleur en guise de validation de paiment .

Je voudrais savoir si l'ont peut rajouter une formule dans la même cellule en fonction de se changement de couleur et que le résultat la cellule "U8"de la feuille("JANVIER") passe à 0 et en bleu

Voici la suite à rajouter : Si la valeur des cellules E8;I8;M8;Q8 sont en bleu alors appliquée la formule suivante: = Somme (E8;I8;M8;Q8) -U8.

Si on ne peut pas le faire sous forme de formule ont peut -être le faire en VBA ,mais là je cale .

Espérant avoir ètè plus claire dans ma demande et dans l'attentes d'une réponse je vous dis à plus et je vous remercie par avance pour votres aide . Amicalement BR44
 

br44

XLDnaute Impliqué
Re : Modification de Macro

Bonjour le forum ,

J'ai dû mal exprimer mon désidrata et donc par conséquences je n'est pas eu de réponses . je mets donc fin à ce post .

Je reviendrais plustards avec des explications et un fichier plus détailles .

Je tiens à remercier tous ceux qui ont pris le temps de lire se poste et je m'excuses pour le dérangement . Amicalement BR44
 

Statistiques des forums

Discussions
312 576
Messages
2 089 843
Membres
104 289
dernier inscrit
red123