MFC plus de trois conditions

Le
Le rital
Bonjour le forum,

Voici une macro de MFC
Le problme de cette macro est le suivant:

- Saisie ALPHA (a fonctionne)
- Saisie Numrique (a fonctionne)
- Saisie ALPHA puis saisie NUMERIQUE (erreur d'excution N
13)

Merci d'avance de tester cette macro pour savoir d'ou
viens le numro (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
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Philippe.R
Le #347045
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" 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
ChrisV
Le #347033
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" 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
ChrisV
Le #347031
Oups...
For Each c In ActiveSheet.Range("A1:A11")


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


ChrisV


"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" 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




Le rital
Le #347603
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" 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


.



Jacquouille
Le #347795
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" 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" 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


.



Le #347733
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" 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" 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


.




.




Publicité
Poster une réponse
Anonyme