Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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

A+
 

Discussions similaires

Réponses
11
Affichages
297
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…