XL 2013 macro redondance

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

judoka0209

XLDnaute Occasionnel
bonjour, j'ai un soucis pour integrer des formules que j'ai faite et quelles s'executent en macro
je ne sais pas du tout comment faire
=SI(NB.SI('[Planning_EP.xlsm]année en cours'!$D$7:$BC$7;"a")*NB.SI(C2;"jeu")*NB.SI($C$1;"janvier")*NB.SI('[Planning_EP.xlsm]année en cours'!$D$5:$BC$5;"janvier")*NB.SI(C6;"A");6;"")
=SI(NB.SI('[Planning_EP.xlsm]année en cours'!$D$7:$BC$7;"a")*NB.SI(AG2;"jeu")*NB.SI($C$1;"janvier")*NB.SI('[Planning_EP.xlsm]année en cours'!$D$5:$BC$5;"janvier")*NB.SI(AG6;"A");6;"")
=SI(NB.SI('[Planning_EP.xlsm]année en cours'!$D$7:$BC$7;"a")*NB.SI(AH2;"jeu")*NB.SI($AH$1;"février")*NB.SI('[Planning_EP.xlsm]année en cours'!$D$5:$BC$5;"février")*NB.SI(AH6;"A");6;"")
=SI(NB.SI('[Planning_EP.xlsm]année en cours'!$D$7:$BC$7;"a")*NB.SI(BI2;"jeu")*NB.SI($AH$1;"février")*NB.SI('[Planning_EP.xlsm]année en cours'!$D$5:$BC$5;"février")*NB.SI(BI6;"A");6;"")

c'est du 1er janvier au 31 decembre
merci
 
Bonsoir le fil, le forum

J'ai simplifié le code (mais suis pas sur de son efficience 😉
VB:
Sub Test_II()
Dim plageA As Range, plageB As Range, c As Range
Set plageA = Sheets("ep").Range("$D$7:$BC$7")
Set plageB = Sheets("ep").Range("$D$5:$BC$5")
With Application
    .ScreenUpdating = False
    For Each c In Range("C5:NC5")
    MsgBox MonthName(Month(c.Offset(-2)))
    If .CountIf(plageA, "a") * .CountIf(c.Offset(-3), "jeu") * .CountIf(Range("C1"), MonthName(Month(c.Offset(-2)))) * _
        .CountIf(plageB, MonthName(Month(c.Offset(-2)))) * .CountIf(c.Offset(1), "a") Then
        c.Value = 6
    End If
    Next
End With
End Sub

Je te laisse tester*.

*: il faut d'abord effacer les formules en C5:NC5 avant de lancer la macro.
 
bonjour, j'aurais besoin d'explication
If .CountIf(plageA, "a") * .CountIf(c.Offset(-3), "jeu") * .CountIf(Range("C1"), MonthName(Month(c.Offset(-2)))) * _
.CountIf(plageB, MonthName(Month(c.Offset(-2)))) * .CountIf(c.Offset(1), "a") Then

pourquoi MonthName(Month(c.Offset(-2) je comprend pas on part de "C1" et on recule de 2 colonne?
j'aimerai comprendre la formule pour la remodifier
merci
 
encore une chose j'ai vu ta simplification elle met bien les mois dans la msgbox mais met les 6 que sur janvier et non sur toute l'année

comment retirer ta msgbox
quand je met juste MonthName(Month(c.Offset(-2))) j'ai une erreur
je suis nul 🙁 mais j'essaie de m'ameliorer
 
Dernière édition:
Bonjour le fil, le forum

@judoka0209
Comment retirer la MsgBox?
(bah simplement en supprimant la ligne idoine dans le codeVBA)

Sinon, pour comprendre la syntaxe Offset
(il suffit d'appuyer sur la touche F1 quand tu es dans VBE)
En résumé
Offset(Ligne,Colonne)
Donc Offset(-2), c'est deux lignes au dessus
 
super j'ai reussi à le faire sur toute l'année
merci beaucoup
petite question encore comment mettre un autre if
dans la formule
mais, il faut qu'elle soit separé car j'ai d'autre if a mettre
merci
Sub Test_II()
Dim plageA As Range, plageB As Range, c As Range
Set plageA = Sheets("ep").Range("$D$7:$BC$7")
Set plageB = Sheets("ep").Range("$D$5:$BC$5")
With Application
.ScreenUpdating = False
For Each c In Range("C5:NC5")

If .CountIf(plageA, "a") * .CountIf(c.Offset(-3), "jeu") * .CountIf(Range("c1:nc31"), MonthName(Month(c.Offset(-2)))) * _
.CountIf(plageB, MonthName(Month(c.Offset(-2)))) * .CountIf(c.Offset(1), "a") Then
If .CountIf(plageA, "b") * .CountIf(c.Offset(-3), "mar") * .CountIf(Range("c1:nc31"), MonthName(Month(c.Offset(-2)))) * _
.CountIf(plageB, MonthName(Month(c.Offset(-2)))) * .CountIf(c.Offset(1), "m") Then
c = 6

End If
Next
End With
End Sub

il me met une erreur
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
11
Affichages
587
Réponses
17
Affichages
2 K
Réponses
22
Affichages
3 K
Réponses
10
Affichages
7 K
Réponses
11
Affichages
1 K
Réponses
1
Affichages
727
Retour