Tester valeurs des cellules de plusieurs colonnes et lignes

Nagrom

XLDnaute Occasionnel
Bonjour,

Je souhaiterai passer en revue 5 lignes (2 à 6) de 5 colonnes (B à F) pour tester la présence d'une valeur dans ces cellules. J'ai tappé le code suivant mais ça ne fonctionne pas. Pourriez-vous m'indiquer ce qui ne va pas.

Code:
Sub test()

For i = B To F
For j = 2 To 6

If Sheets("page1").Range(i & j).Value = B3 Then
    Range("P11").Value = "1"
End If

Next i
Next j


End Sub

Merci d'avance.
 

ROGER2327

XLDnaute Barbatruc
Re : Tester valeurs des cellules de plusieurs colonnes et lignes

Bonjour Nagrom
Essayez ceci :
Code:
[COLOR="DarkSlateGray"][B]Sub test()
Dim i, j
   For i = 2 To 6
      For j = 2 To 6
         If Sheets("page1").Cells(j, i).Value = "B3" Then
            Range("P11").Value = "1"
         End If
      Next j
   Next i
End Sub[/B][/COLOR]
ROGER2327
#3062
 

Nagrom

XLDnaute Occasionnel
Re : Tester valeurs des cellules de plusieurs colonnes et lignes

Merci pour votre réponse. J'ai testé le code mais ça ne fonctionne pas.

J'ai mis ci-joint le fichier avec votre code.
 

Pièces jointes

  • test.xls
    21.5 KB · Affichages: 129
  • test.xls
    21.5 KB · Affichages: 130
  • test.xls
    21.5 KB · Affichages: 137

job75

XLDnaute Barbatruc
Re : Tester valeurs des cellules de plusieurs colonnes et lignes

Bonsoir Nagrom, salut Roger,

Aussi par la méthode Find :

Code:
Dim ref As Range
Set ref = Sheets("page1").Range("B2:F6").Find(Range("B3"), LookIn:=xlValues, LookAt:=xlWhole)
If Not ref Is Nothing Then Range("P11") = 1

A+
 

job75

XLDnaute Barbatruc
Re : Tester valeurs des cellules de plusieurs colonnes et lignes

Salut C-C,

Et en plus simple :

Code:
If Application.CountIf([B2:F6], [B3]) Then [P11] = 1

ou cette formule en P11:

Code:
=REPT(1;SIGNE(NB.SI(B2:F6;B3)))

A+
 

job75

XLDnaute Barbatruc
Re : Tester valeurs des cellules de plusieurs colonnes et lignes

Re,

C-C a raison, B3 est dans la zone de recherche...

Alors peut-être modifier comme suit (il faut trouver au moins 2 valeurs) :

Code:
If Application.CountIf([B2:F6], [B3]) > 1 Then [P11] = 1

ou la formule en P11 :

Code:
=REPT(1;NB.SI(B2:F6;B3)>1)

A+
 

Nagrom

XLDnaute Occasionnel
Re : Tester valeurs des cellules de plusieurs colonnes et lignes

Bonjour,

Je souhaiterai que si la valeur de la cellule B3 est présente dans la colonne A, le chiffre 1 soit inscrit dans la cellule P11, si présent dans la colonne B, le chiffre 1 soit inscrit dans la cellule P12... Si ce n'est pas le cas, la valeur 0 est inscrite dans la cellule P associée à la colonne

J'ai modifié le code de C-C comme ceci mais ça n'a pas l'air de marcher:

Code:
Sub testb_bis()


Dim i As Byte, j As Byte, X As Integer
X = 0
Z = 16
   For i = 2 To 6
      For j = 2 To 6
        If Sheets("page1").Cells(j, i).Value = Range("A1") Then
        X = X + 1
            Cells(11, Z).Value = X
                   
            Else: Cells(11, Z).Value = "0"
            
        End If
    Next j
    Z = Z + 1
    Next i
     
End Sub

Merci pour votre aide.
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : Tester valeurs des cellules de plusieurs colonnes et lignes

Bonjour,

Code:
Sub Recherche()
Dim n As Byte
[P11:P25].ClearContents
For n = 1 To 15 'pour colonnes de A à O
  [P10].Offset(n) = IIf(Application.CountIf(Columns(n), [B3]) > IIf(n = [B3].Column, 1, 0), 1, 0)
Next
End Sub

Evidemment pour la colonne où se trouve B3 (colonne 2), 1 s'inscrit en P12 s'il y a au moins 2 valeurs.

Et pourquoi du VBA ? Comme déjà dit, des formules utilisant NB.SI en P11 P12... sont beaucoup plus élégantes.

Mais vous préférez peut-être un marteau pour écraser une mouche :D

A+
 

Discussions similaires

Réponses
11
Affichages
281

Statistiques des forums

Discussions
312 111
Messages
2 085 395
Membres
102 882
dernier inscrit
Sultan94