Macro multiples conditions

  • Initiateur de la discussion Initiateur de la discussion Moonshine
  • Date de début Date de début

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 !

M

Moonshine

Guest
Bonsoir,
j'ai un problème avec une macro... Mon but est de créer deux variables qui pourront changer de valeur en fonction de la valeur d'une colonne. Ces variables seront intégrées dans un SelectCase qui comprend d'autres variables. Cette macro marche sans la partie avec X et Y en fait et je ne comprend pas ce qui ne marche pas. Je vous mets le code que j'ai fait. Je peux vous joindre un fichier Excel exemple si besoin.

Sub Réalisation_opération()

Dim i As Long
Dim LigDep As Long
Dim Nb_Lignes As Long
Dim Nb_Lignes1 As Long
Dim Nb_Lignes2 As Long
Dim Nb_Lignes3 As Long
Dim X As Long
Dim Y As Long

Dim varValH As Variant
Dim varValLG As Variant


' Ligne de départ et nombre de lignes à traiter
LigDep = 7
Nb_Lignes = 500

' Dernières lignes de chaque colonne
Nb_Lignes1 = Range("G" & Cells.Rows.Count).End(xlUp).Row
Nb_Lignes2 = Range("H" & Cells.Rows.Count).End(xlUp).Row ' Non utilisé ?
Nb_Lignes3 = Range("J" & Cells.Rows.Count).End(xlUp).Row ' Non utilisé ?

' Effacer le contenu de la colonne N à partir de la ligne 18
If Nb_Lignes1 >= LigDep Then Range("J" & LigDep & ":J" & Nb_Lignes1).ClearContents

' A partir de la ligne 18 jusqu'à la dernière
For i = LigDep To Nb_Lignes

' Vérifier que le contenu des cellules soient numériques
varValH = 0
If IsDate(Range("H" & i).Value) Then varValH = Range("H" & i).Value
varValG = 0
If IsDate(Range("G" & i).Value) Then varValG = Range("G" & i).Value

' Initialiser le fond de couleur de la cellule L
Range("J" & i).Interior.ColorIndex = xlNone
Range("J" & i).Font.ColorIndex = 1

If Range("F" & i).Value = "Hebdomadaire" Then Y = 2 And X = 7
If Range("F" & i).Value = "Bimensuel" Then Y = 4 And X = 15
If Range("F" & i).Value = "Mensuel" Then Y = 6 And X = 20
If Range("F" & i).Value = "Trimestriel" Then Y = 6 And X = 20
If Range("F" & i).Value = "Quadrimestriel" Then Y = 8 And X = 20
If Range("F" & i).Value = "Semestriel" Then Y = 8 And X = 40
If Range("F" & i).Value = "Annuel" Then Y = 10 And X = 45
If Range("F" & i).Value = "Biennal" Then Y = 10 And X = 45
If Range("F" & i).Value = "Quinquénal" Then Y = 10 And X = 45

Select Case varValH - varValG

Case -Y To Y
Range("J" & i).Value = "Dans les temps"
Range("J" & i).Interior.ColorIndex = 27


Case Y To X
Range("J" & i).Value = "Retard < " & X & " jours"
Range("J" & i).Interior.ColorIndex = 46


Case -7 To -X
Range("J" & i).Value = " Avance < " & X & " jours "
Range("J" & i).Interior.ColorIndex = 43


Case Is > X
Range("J" & i).Value = " Retard > " & X & " jours "
Range("J" & i).Interior.ColorIndex = 3


Case Is < -X
Range("J" & i).Value = " Avance > " & X & " jours "
Range("J" & i).Interior.ColorIndex = 4


End Select


If Range("H" & i).Value = "" Then
Range("J" & i).Interior.ColorIndex = xlNone
Range("J" & i).Value = ""
End If

Next
End Sub

Merci d'avance pour vos suggestions!
 
Re : Macro multiples conditions

Bonjour,

Désolée, voici le fichier qui peut servir de test. Mon but sur la macro Réalisation_opération est :
- qu'en fonction de la colonne F, la valeur de X et Y varie (ces valeurs se référant à la feuille référence).
- ensuite, pour chaque ligne, lorsque la valeur de X et Y sont attribuées (en fonction de la colonne F), faire la soustraction de la cellule G et H. La valeur pourra se situer dans différents cas (ex: entre -Y et Y), ce qui affectera une valeur dans la cellule en J.

Merci d'avance pour vos propositions.
 

Pièces jointes

Re : Macro multiples conditions

J'ai oublié de te remercier Flyonets pour ta proposition ! Malheureusement cette ligne fonctionne (en fait avec des valeurs à la place des X et Y, ma macro marche bien). Mais merci, toutes les suggestions sont bonnes!!
Cordialement
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
4
Affichages
730
Réponses
5
Affichages
909
Réponses
15
Affichages
779
Réponses
8
Affichages
390
Réponses
2
Affichages
527
Réponses
10
Affichages
661
Réponses
5
Affichages
573
Retour