Problème de Case

zazou5908

XLDnaute Nouveau
Bonjour le Forum

Afin de me simplifier la vie à gérer les "IF", j'ai transformé une petite macro de "if" avec des "case"

Hors depuis cette modification, quand la macro est terminée, toutes les lignes qui devraient recevoir un format spécial se retrouvent toutes avec les paramètres du Case V2 valeur 2. Il ignore royalement ou écrase les lignes mises à jour par le case V1.

Peut-on mettre un case dans un case (comme les if ?)

Sub Macro1()
'
' Macro1 Macro
' Macro inspirée XLD + perso
'

'
Dim i As Integer
Dim V1 As Integer
Dim V2 As Integer


For i = 10 To 7419 Step 1
V1 = Range("X" & i).Value
V2 = Range("X" & i).Value
Select Case V1
Case 2
Range("A" & i & ":W" & i).Font.Bold = True
Select Case V2
Case 1
With Range("A" & i)
.Font.Size = 14
.Interior.ColorIndex = 34
.Interior.Pattern = xlSolid
.Interior.PatternColorIndex = xlAutomatic
.Borders.LineStyle = xlcontinous
.Borders.Weight = xlThin
.Borders.ColorIndex = xlAutomatic
End With
Case 2
With Range("A" & i & ":W" & i)
.Font.Size = 12
.Interior.ColorIndex = 30
.Interior.Pattern = xlSolid
.Interior.PatternColorIndex = xlAutomatic
.Borders.LineStyle = xlcontinous
.Borders.Weight = xlThin
.Borders.ColorIndex = xlAutomatic
End With
End Select
End Select
Next i

End Sub


Merci pour vos commentaires et explications.

Zazou5908
 

wilfried_42

XLDnaute Barbatruc
Re : Problème de Case

bonjour zazou

normalement il n'y a pas de problemes pour imbriquer les case

neanmoins, je ne vois pas l'interet du 1er les case n'ont d'interet qui s'il y a plusieurs valeurs à tester

ta boucle fait ceci : je ne sais pas si c'est l'effet recherché

V1 = Range("X" & i).Value
V2 = Range("X" & i).Value
if v1 = 2 then
Range("A" & i & ":W" & i).Font.Bold = True
Select Case V2
Case 1
With Range("A" & i)
.Font.Size = 14
.Interior.ColorIndex = 34
.Interior.Pattern = xlSolid
.Interior.PatternColorIndex = xlAutomatic
.Borders.LineStyle = xlcontinous
.Borders.Weight = xlThin
.Borders.ColorIndex = xlAutomatic
End With
Case 2
With Range("A" & i & ":W" & i)
.Font.Size = 12
.Interior.ColorIndex = 30
.Interior.Pattern = xlSolid
.Interior.PatternColorIndex = xlAutomatic
.Borders.LineStyle = xlcontinous
.Borders.Weight = xlThin
.Borders.ColorIndex = xlAutomatic
End With
End Select

End if

tout ce qui est en bleu est effectué si V1 = 2

à te lire
 

zazou5908

XLDnaute Nouveau
Re: Re : Problème de Case

Bonjour Wilfried

Et bien je peux avoir les cas suivant

V1 V2
--- ---
2 1
2 2
2 3
3 1
3 2
3 4

J'essaie de me supprimer les "If" imbriqués parce que comme je ne suis pas un expert VBA, j'ai peur de me planter ou de mettre au point une usine à gaz.

La valeur de V2 est calculée dans une colonne du tableau en fonction de la valeur d'une autre colonne (If, Et, Ou et recherche de 3 strings de caractères bien particuliers. Ces "Flags de décision" fonctionne très bien. J'essaie maintenant de les exploiter.

Et je ne sais pas si je continue avec mes "Case" ou que je me replonge dans ma solution "If"

Merci et à plus ! Je reste connecté parce que ce machin me fait tourner en rond depuis plus de 2 heures ! Grrr
 

Discussions similaires

Statistiques des forums

Discussions
312 489
Messages
2 088 855
Membres
103 977
dernier inscrit
Hermet