Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

MFC plus de trois conditions

6 réponses
Avatar
Le rital
Bonjour le forum,

Voici une macro de MFC
Le probl=E8me de cette macro est le suivant:

- Saisie ALPHA (=E7a fonctionne)
- Saisie Num=E9rique (=E7a fonctionne)
- Saisie ALPHA puis saisie NUMERIQUE (erreur d'ex=E9cution N=B0
13)

Merci d'avance de tester cette macro pour savoir d'ou=20
viens le num=E9ro (j'ai fais les tests avec Excel 97)

Cordialement

Le rital


Sub MFC_Colorie_Cellules(Target)

Dim c As Range
For Each c In ActiveSheet.Range("A1:G200")
If c =3D 200 Then
c.Interior.ColorIndex =3D 4
ElseIf c >=3D 11 And c <=3D 20 Then
c.Interior.ColorIndex =3D 10
ElseIf c >=3D 21 And c <=3D 30 Then
c.Interior.ColorIndex =3D 12
ElseIf c >=3D 31 And c <=3D 40 Then
c.Interior.ColorIndex =3D 40
ElseIf c >=3D 41 And c <=3D 50 Then
c.Interior.ColorIndex =3D 24
ElseIf c =3D "" Then
c.Interior.ColorIndex =3D 0
ElseIf UCase(c) =3D "D" Then
c.Interior.ColorIndex =3D 19
ElseIf UCase(c) =3D "E" Then
c.Interior.ColorIndex =3D 16
ElseIf UCase(c) =3D "F" Then
c.Interior.ColorIndex =3D 18
ElseIf UCase(c) =3D "G" Then
c.Interior.ColorIndex =3D 20

End If
Next
End Sub

6 réponses

Avatar
Philippe.R
Bonsoir,
Sur mon Excel 2002, ta macro fonctionne pourvu qu'on enlève le target entre les (), mais je ne suis pas
sur d'avoir compris, notamment ce que tu entends par : "- Saisie ALPHA puis saisie NUMERIQUE "
--
Amicales Salutations

Retirer A_S_ pour répondre.
XL97 / XL2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"Le rital" a écrit dans le message de
news:9b9301c3ea96$88c5bc40$
Bonjour le forum,

Voici une macro de MFC
Le problème de cette macro est le suivant:

- Saisie ALPHA (ça fonctionne)
- Saisie Numérique (ça fonctionne)
- Saisie ALPHA puis saisie NUMERIQUE (erreur d'exécution N°
13)

Merci d'avance de tester cette macro pour savoir d'ou
viens le numéro (j'ai fais les tests avec Excel 97)

Cordialement

Le rital


Sub MFC_Colorie_Cellules(Target)

Dim c As Range
For Each c In ActiveSheet.Range("A1:G200")
If c = 200 Then
c.Interior.ColorIndex = 4
ElseIf c >= 11 And c <= 20 Then
c.Interior.ColorIndex = 10
ElseIf c >= 21 And c <= 30 Then
c.Interior.ColorIndex = 12
ElseIf c >= 31 And c <= 40 Then
c.Interior.ColorIndex = 40
ElseIf c >= 41 And c <= 50 Then
c.Interior.ColorIndex = 24
ElseIf c = "" Then
c.Interior.ColorIndex = 0
ElseIf UCase(c) = "D" Then
c.Interior.ColorIndex = 19
ElseIf UCase(c) = "E" Then
c.Interior.ColorIndex = 16
ElseIf UCase(c) = "F" Then
c.Interior.ColorIndex = 18
ElseIf UCase(c) = "G" Then
c.Interior.ColorIndex = 20

End If
Next
End Sub
Avatar
ChrisV
Bonjour Le rital,

Sub MFC_Colorie_Cellules()
Dim c As Range
Application.ScreenUpdating = False
For Each c In ActiveSheet.Range("A1:A11")
If Not IsNumeric(c) Then c = UCase(c)
Select Case c.Value
Case 11 To 20: c.Interior.ColorIndex = 10
Case 21 To 30: c.Interior.ColorIndex = 12
Case 31 To 40: c.Interior.ColorIndex = 40
Case 41 To 50: c.Interior.ColorIndex = 24
Case Is = 200: c.Interior.ColorIndex = 4
Case "D": c.Interior.ColorIndex = 19
Case "E": c.Interior.ColorIndex = 16
Case "F": c.Interior.ColorIndex = 18
Case "G": c.Interior.ColorIndex = 20
End Select
Next c
End Sub


ChrisV


"Le rital" a écrit dans le message de
news: 9b9301c3ea96$88c5bc40$
Bonjour le forum,

Voici une macro de MFC
Le problème de cette macro est le suivant:

- Saisie ALPHA (ça fonctionne)
- Saisie Numérique (ça fonctionne)
- Saisie ALPHA puis saisie NUMERIQUE (erreur d'exécution N°
13)

Merci d'avance de tester cette macro pour savoir d'ou
viens le numéro (j'ai fais les tests avec Excel 97)

Cordialement

Le rital


Sub MFC_Colorie_Cellules(Target)

Dim c As Range
For Each c In ActiveSheet.Range("A1:G200")
If c = 200 Then
c.Interior.ColorIndex = 4
ElseIf c >= 11 And c <= 20 Then
c.Interior.ColorIndex = 10
ElseIf c >= 21 And c <= 30 Then
c.Interior.ColorIndex = 12
ElseIf c >= 31 And c <= 40 Then
c.Interior.ColorIndex = 40
ElseIf c >= 41 And c <= 50 Then
c.Interior.ColorIndex = 24
ElseIf c = "" Then
c.Interior.ColorIndex = 0
ElseIf UCase(c) = "D" Then
c.Interior.ColorIndex = 19
ElseIf UCase(c) = "E" Then
c.Interior.ColorIndex = 16
ElseIf UCase(c) = "F" Then
c.Interior.ColorIndex = 18
ElseIf UCase(c) = "G" Then
c.Interior.ColorIndex = 20

End If
Next
End Sub
Avatar
ChrisV
Oups...
For Each c In ActiveSheet.Range("A1:A11")


Range("A1:G200") oeuf corse...


ChrisV


"ChrisV" a écrit dans le message de news:

Bonjour Le rital,

Sub MFC_Colorie_Cellules()
Dim c As Range
Application.ScreenUpdating = False
For Each c In ActiveSheet.Range("A1:A11")
If Not IsNumeric(c) Then c = UCase(c)
Select Case c.Value
Case 11 To 20: c.Interior.ColorIndex = 10
Case 21 To 30: c.Interior.ColorIndex = 12
Case 31 To 40: c.Interior.ColorIndex = 40
Case 41 To 50: c.Interior.ColorIndex = 24
Case Is = 200: c.Interior.ColorIndex = 4
Case "D": c.Interior.ColorIndex = 19
Case "E": c.Interior.ColorIndex = 16
Case "F": c.Interior.ColorIndex = 18
Case "G": c.Interior.ColorIndex = 20
End Select
Next c
End Sub


ChrisV


"Le rital" a écrit dans le message
de

news: 9b9301c3ea96$88c5bc40$
Bonjour le forum,

Voici une macro de MFC
Le problème de cette macro est le suivant:

- Saisie ALPHA (ça fonctionne)
- Saisie Numérique (ça fonctionne)
- Saisie ALPHA puis saisie NUMERIQUE (erreur d'exécution N°
13)

Merci d'avance de tester cette macro pour savoir d'ou
viens le numéro (j'ai fais les tests avec Excel 97)

Cordialement

Le rital


Sub MFC_Colorie_Cellules(Target)

Dim c As Range
For Each c In ActiveSheet.Range("A1:G200")
If c = 200 Then
c.Interior.ColorIndex = 4
ElseIf c >= 11 And c <= 20 Then
c.Interior.ColorIndex = 10
ElseIf c >= 21 And c <= 30 Then
c.Interior.ColorIndex = 12
ElseIf c >= 31 And c <= 40 Then
c.Interior.ColorIndex = 40
ElseIf c >= 41 And c <= 50 Then
c.Interior.ColorIndex = 24
ElseIf c = "" Then
c.Interior.ColorIndex = 0
ElseIf UCase(c) = "D" Then
c.Interior.ColorIndex = 19
ElseIf UCase(c) = "E" Then
c.Interior.ColorIndex = 16
ElseIf UCase(c) = "F" Then
c.Interior.ColorIndex = 18
ElseIf UCase(c) = "G" Then
c.Interior.ColorIndex = 20

End If
Next
End Sub




Avatar
Le rital
Bonjour,

- Merci pour la solution mais ca ne marche pas
les chiffres seuls ou les lettres seules pas de problème
mais si je saisie un chiffre et ensuite une lettre sa
plante.

- Je travaille sur excel97, c'est peut être ça ?
Merci

Le rital








-----Message d'origine-----
Bonjour Le rital,

Sub MFC_Colorie_Cellules()
Dim c As Range
Application.ScreenUpdating = False
For Each c In ActiveSheet.Range("A1:A11")
If Not IsNumeric(c) Then c = UCase(c)
Select Case c.Value
Case 11 To 20: c.Interior.ColorIndex = 10
Case 21 To 30: c.Interior.ColorIndex = 12
Case 31 To 40: c.Interior.ColorIndex = 40
Case 41 To 50: c.Interior.ColorIndex = 24
Case Is = 200: c.Interior.ColorIndex = 4
Case "D": c.Interior.ColorIndex = 19
Case "E": c.Interior.ColorIndex = 16
Case "F": c.Interior.ColorIndex = 18
Case "G": c.Interior.ColorIndex = 20
End Select
Next c
End Sub


ChrisV


"Le rital" a écrit
dans le message de

news: 9b9301c3ea96$88c5bc40$
Bonjour le forum,

Voici une macro de MFC
Le problème de cette macro est le suivant:

- Saisie ALPHA (ça fonctionne)
- Saisie Numérique (ça fonctionne)
- Saisie ALPHA puis saisie NUMERIQUE (erreur d'exécution


13)

Merci d'avance de tester cette macro pour savoir d'ou
viens le numéro (j'ai fais les tests avec Excel 97)

Cordialement

Le rital


Sub MFC_Colorie_Cellules(Target)

Dim c As Range
For Each c In ActiveSheet.Range("A1:G200")
If c = 200 Then
c.Interior.ColorIndex = 4
ElseIf c >= 11 And c <= 20 Then
c.Interior.ColorIndex = 10
ElseIf c >= 21 And c <= 30 Then
c.Interior.ColorIndex = 12
ElseIf c >= 31 And c <= 40 Then
c.Interior.ColorIndex = 40
ElseIf c >= 41 And c <= 50 Then
c.Interior.ColorIndex = 24
ElseIf c = "" Then
c.Interior.ColorIndex = 0
ElseIf UCase(c) = "D" Then
c.Interior.ColorIndex = 19
ElseIf UCase(c) = "E" Then
c.Interior.ColorIndex = 16
ElseIf UCase(c) = "F" Then
c.Interior.ColorIndex = 18
ElseIf UCase(c) = "G" Then
c.Interior.ColorIndex = 20

End If
Next
End Sub


.



Avatar
Jacquouille
Bonsoir
Dans ta macro, j'ai vu un ColorIndex = 0 Tu es certain de cela? Ce ne
serait pas = xlnone ?
Bonne chance

--
Jacquouille conseille : http://www.excelabo.net


"Le rital" a écrit dans le message
news: 9dde01c3eb15$1c312810$
Bonjour,

- Merci pour la solution mais ca ne marche pas
les chiffres seuls ou les lettres seules pas de problème
mais si je saisie un chiffre et ensuite une lettre sa
plante.

- Je travaille sur excel97, c'est peut être ça ?
Merci

Le rital








-----Message d'origine-----
Bonjour Le rital,

Sub MFC_Colorie_Cellules()
Dim c As Range
Application.ScreenUpdating = False
For Each c In ActiveSheet.Range("A1:A11")
If Not IsNumeric(c) Then c = UCase(c)
Select Case c.Value
Case 11 To 20: c.Interior.ColorIndex = 10
Case 21 To 30: c.Interior.ColorIndex = 12
Case 31 To 40: c.Interior.ColorIndex = 40
Case 41 To 50: c.Interior.ColorIndex = 24
Case Is = 200: c.Interior.ColorIndex = 4
Case "D": c.Interior.ColorIndex = 19
Case "E": c.Interior.ColorIndex = 16
Case "F": c.Interior.ColorIndex = 18
Case "G": c.Interior.ColorIndex = 20
End Select
Next c
End Sub


ChrisV


"Le rital" a écrit
dans le message de

news: 9b9301c3ea96$88c5bc40$
Bonjour le forum,

Voici une macro de MFC
Le problème de cette macro est le suivant:

- Saisie ALPHA (ça fonctionne)
- Saisie Numérique (ça fonctionne)
- Saisie ALPHA puis saisie NUMERIQUE (erreur d'exécution


13)

Merci d'avance de tester cette macro pour savoir d'ou
viens le numéro (j'ai fais les tests avec Excel 97)

Cordialement

Le rital


Sub MFC_Colorie_Cellules(Target)

Dim c As Range
For Each c In ActiveSheet.Range("A1:G200")
If c = 200 Then
c.Interior.ColorIndex = 4
ElseIf c >= 11 And c <= 20 Then
c.Interior.ColorIndex = 10
ElseIf c >= 21 And c <= 30 Then
c.Interior.ColorIndex = 12
ElseIf c >= 31 And c <= 40 Then
c.Interior.ColorIndex = 40
ElseIf c >= 41 And c <= 50 Then
c.Interior.ColorIndex = 24
ElseIf c = "" Then
c.Interior.ColorIndex = 0
ElseIf UCase(c) = "D" Then
c.Interior.ColorIndex = 19
ElseIf UCase(c) = "E" Then
c.Interior.ColorIndex = 16
ElseIf UCase(c) = "F" Then
c.Interior.ColorIndex = 18
ElseIf UCase(c) = "G" Then
c.Interior.ColorIndex = 20

End If
Next
End Sub


.



Avatar
Bonsoir
Le "0" ne change rien
Pour le moment j'ai pas de solution au problème
Merci
-----Message d'origine-----
Bonsoir
Dans ta macro, j'ai vu un ColorIndex = 0 Tu es certain
de cela? Ce ne

serait pas = xlnone ?
Bonne chance

--
Jacquouille conseille : http://www.excelabo.net


"Le rital" a écrit
dans le message

news: 9dde01c3eb15$1c312810$
Bonjour,

- Merci pour la solution mais ca ne marche pas
les chiffres seuls ou les lettres seules pas de problème
mais si je saisie un chiffre et ensuite une lettre sa
plante.

- Je travaille sur excel97, c'est peut être ça ?
Merci

Le rital








-----Message d'origine-----
Bonjour Le rital,

Sub MFC_Colorie_Cellules()
Dim c As Range
Application.ScreenUpdating = False
For Each c In ActiveSheet.Range("A1:A11")
If Not IsNumeric(c) Then c = UCase(c)
Select Case c.Value
Case 11 To 20: c.Interior.ColorIndex = 10
Case 21 To 30: c.Interior.ColorIndex = 12
Case 31 To 40: c.Interior.ColorIndex = 40
Case 41 To 50: c.Interior.ColorIndex = 24
Case Is = 200: c.Interior.ColorIndex = 4
Case "D": c.Interior.ColorIndex = 19
Case "E": c.Interior.ColorIndex = 16
Case "F": c.Interior.ColorIndex = 18
Case "G": c.Interior.ColorIndex = 20
End Select
Next c
End Sub


ChrisV


"Le rital" a écrit
dans le message de

news: 9b9301c3ea96$88c5bc40$
Bonjour le forum,

Voici une macro de MFC
Le problème de cette macro est le suivant:

- Saisie ALPHA (ça fonctionne)
- Saisie Numérique (ça fonctionne)
- Saisie ALPHA puis saisie NUMERIQUE (erreur d'exécution


13)

Merci d'avance de tester cette macro pour savoir d'ou
viens le numéro (j'ai fais les tests avec Excel 97)

Cordialement

Le rital


Sub MFC_Colorie_Cellules(Target)

Dim c As Range
For Each c In ActiveSheet.Range("A1:G200")
If c = 200 Then
c.Interior.ColorIndex = 4
ElseIf c >= 11 And c <= 20 Then
c.Interior.ColorIndex = 10
ElseIf c >= 21 And c <= 30 Then
c.Interior.ColorIndex = 12
ElseIf c >= 31 And c <= 40 Then
c.Interior.ColorIndex = 40
ElseIf c >= 41 And c <= 50 Then
c.Interior.ColorIndex = 24
ElseIf c = "" Then
c.Interior.ColorIndex = 0
ElseIf UCase(c) = "D" Then
c.Interior.ColorIndex = 19
ElseIf UCase(c) = "E" Then
c.Interior.ColorIndex = 16
ElseIf UCase(c) = "F" Then
c.Interior.ColorIndex = 18
ElseIf UCase(c) = "G" Then
c.Interior.ColorIndex = 20

End If
Next
End Sub


.




.