Selection multiple des rangées

Résolu
Bonjour,

j'aimerais bien faire quelques controles sur ces cases la:

from A To H , J To R, W To AO

j'ai essayé ce code la , il me semble correcte mais il m'affiche une arreur :

Unable to get the CountIf property of the WorksheetFunction class

  For q = 2 To Range("R65536").End(xlUp).Row

Set MaPlage = Range("A" & q & ":H" & q & ",J" & q & ":R" & q & ",W" & q & ":AO" & q)
For Each c In MaPlage.Cells
If Len(c.Value) = 0 Then c.Interior.Color = vbYellow

If CStr(ActiveSheet.Cells(q, 31).Value) = "Completed - Appointment made / Complété - Nomination faite" _
And WorksheetFunction.CountIf(MaPlage, "") = 0 Then
Select Case UCase(ActiveSheet.Cells(q, 14).Value)
Case "INA_CIN"
ActiveSheet.Cells(q, 42).Value = "XX"
End Select
End If

Next c
Next q


2 réponses

  1. Contributeur
    Bonjour,

    f894009,

    Le demandeur veux parcourir les colonnes. Mais son code ne prend que la dernière ligne de la colonne A:

    For q = 2 To Range("R65536").End(xlUp).Row


    Ce qui fait que si d'autres colonnes sont plus remplies, il ne les parcourra pas!

    Je lui est expliqué tout cela ici:

    https://forums.commentcamarche.net/forum/affich-32717601-colorier-une-cellule-suite-a-une-condition
    1. Bonjour,

      Ca roule ??

      J'ai lu en diagonale et ai cru que ca ressemblait a la demande dont j'ai mis le lien
    2. Contributeur
      errata

      C'est la colonne R, mais le raisonnement est le même
    3. bonjour merci pour votre temps , je l'ai essayé mais ca marche pas vrmt y'a toujours cette erreur 1007
      Unable to get the countif property of th WorksheetFunction class
    4. @r4944Bonjour,

      Countif, CountBlank et autre ne marche pas sur des plages de cellules non consecutives, meme si set MaPlage

      une solution avec CountBlank et CountIf

      var_test = WorksheetFunction.CountBlank(Range("A:H").Rows(q)) + _
                      WorksheetFunction.CountBlank(Range("J:R").Rows(q)) + _
                      WorksheetFunction.CountBlank(Range("W:AO").Rows(q))
      
      var_test2 = WorksheetFunction.CountIf(Range("A:H").Rows(q), "") + _
                      WorksheetFunction.CountIf(Range("J:R").Rows(q), "") + _
                      WorksheetFunction.CountIf(Range("W:AO").Rows(q), "")