• Initiateur de la discussion Initiateur de la discussion zazou5908
  • 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 !

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
 
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
 
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
 
- 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
5
Affichages
705
Réponses
7
Affichages
286
  • Question Question
Microsoft 365 worksheet_change
Réponses
29
Affichages
1 K
Réponses
3
Affichages
800
Retour