probleme repetition

judoka0209

XLDnaute Occasionnel
bonjour je voudrais savoir comment je peut faire pour que mon programme fasse la meme chose jusqu'a la cellule GW6:GW11



Private Sub Worksheet_Change(ByVal Target As Range)
If Application.WorksheetFunction.CountIf(Range("C6:C11"), "21") + Application.WorksheetFunction.CountIf(Range("C6:C11"), "10") = 2 Then

MsgBox "attention"

If Application.WorksheetFunction.CountIf(Range("C6:C11"), "fp ") + Application.WorksheetFunction.CountIf(Range("C6:C11"), "10") = 2 Then

MsgBox "attention"

End if
End if
End sub
merci
 

chris

XLDnaute Barbatruc
Bonjour

Tes valeurs 21 et 10 sont-elles en texte ? Car si numériques ne pas les encadrer de ""
Quid de plus de 2 occurrences ?
Rien n'empêche de saisir 21 ou 10 dans plusieurs cellules simultanément et de passer de 1 occurrences à plus de 2...

J'ai considéré que c'est numérique
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Range("C6:GW11")) Is Nothing Then Exit Sub
Dim macolonne As Range

Set macolonne = Range(Cells(6, Target.Column), Cells(11, Target.Column))
    If Application.WorksheetFunction.CountIf(macolonne, 21) + Application.WorksheetFunction.CountIf(macolonne, 10) = 2 Or _
        Application.WorksheetFunction.CountIf(macolonne, "fp ") + Application.WorksheetFunction.CountIf(macolonne, 10) = 2 Then

        MsgBox "attention"

    End If
End Sub

Edit : si on veut gérer une éventuelle saisie multicolonnes d'une part et plus de 2 occurrences d'autre part il faudrait
Code:
Private Sub Worksheet_Change(ByVal Target As Range)

If Intersect(Target, Range("C6:GW11")) Is Nothing Then Exit Sub
Dim macolonne As Range
Dim col As Long

Set macolonne = Range(Cells(6, Target.Column), Cells(11, Target.Column))
For col = 0 To Target.Columns.Count - 1
    If Application.WorksheetFunction.CountIf(macolonne, 21) + Application.WorksheetFunction.CountIf(macolonne, 10) >= 2 Or _
        Application.WorksheetFunction.CountIf(macolonne, "fp ") + Application.WorksheetFunction.CountIf(macolonne, 10) >= 2 Then

        MsgBox "attention colonne " & macolonne.Address

    End If
    Set macolonne = macolonne.Offset(0, 1)
Next col

End Sub
 
Dernière édition:

chris

XLDnaute Barbatruc
Bonjour

Cela vérifie bien dans chaque colonne !

Mais tu ne réponds pas aux problèmes que je soulève : chiffres en texte ou numérique, risque de dépassement de 2 occurrences selon la façon dont se fait la saisie ...
 

Discussions similaires

Réponses
1
Affichages
191
Réponses
4
Affichages
360

Statistiques des forums

Discussions
314 195
Messages
2 107 029
Membres
109 738
dernier inscrit
cedrebey