recherche valeur ligne precise VBa

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Hoareau

XLDnaute Occasionnel
Bonjour

J'ai un tableau une plage de cellule dynamique, je voudrais compter des valeurs précises sur ces lignes, mettre un compteur 2 colonnes plus loin que la plage de référence. Je réussi à identifier les lignes mais pas à rechercher les valeurs dans ces lignes. Erreur 13, bloque sur c value, pourquoi.
Dans l'exemple le tableau est fixe, mais sera dynamique

merci

Sub test()
Dim C As Range
Set A = [A4:f13]

Val_1 = 1

With A

For i = 1 To 10 Step 2
.Rows(i).Interior.ColorIndex = 6

Set Ligne_recherche = .Rows(i)

For Each C In Ligne_recherche

If C.Value = Val_1 Then compteur = compteur + 1
C.Offset(0, 10) = compteur

Debug.Print Ligne_recherche.Address

Next

Next

End With


End Sub
 
Re : recherche valeur ligne precise VBa

Bonjour,

Il fadrait que tu fournisses un fichier exemple.
Je ne comprends pas bien ce que tu veux faire mais tu peuxessayer ça :
Code:
Sub test()
Dim C As Range
Set A = [A4:A13]
Val_1 = 1
With A
    For i = 1 To A.Rows.Count Step 2
        A.Offset(i - 1, 0).Resize(1, 4).Interior.ColorIndex = 6
        Set Ligne_recherche = A.Offset(i - 1, 0).Resize(1, 4)
        For Each X In Ligne_recherche
            If X.Value = Val_1 Then compteur = compteur + 1
            X.Offset(0, 10) = compteur
            Debug.Print Ligne_recherche.Address
        Next
    Next
End With
End Sub
 
Re : recherche valeur ligne precise VBa

merci pour ta proposition

Je vais regarder

les lignes de couleur et le debug print c'est juste pour mes repères, après je les efface
Regardes dans VBE, mon début de procédure.
 

Pièces jointes

Re : recherche valeur ligne precise VBa

Bonjour.
Il faut faire attention dans un For Each qui explore une plage de cellules contiguës: selon la façon dont elle est définie, de subtiles nuances peuvent être introduites dans la façon dont elle est considérée, qui expliquent qu'on ne puisse extraire de valeur du Range utilisé dans le For Each. C'est assez rare, mais parfois, selon ce qu'on veut faire, on est obligé de préciser derrière:
.Columns pour être sûr qu'elle soit considérée en tant qu'ensemble de colonnes,
.Rows pour être sûr qu'elle soit considérée en tant qu'ensemble de lignes, et surtout, dans le cas présent:
.Cells pour être sûr qu'elle soit considérée en tant qu'ensemble de cellules isolées.
Et là, j'ai bien peur que .Rows(i) représente l'équivalent d'un collection de lignes qui n'en contiendrait qu'une seule et qui est … entièrement récupérée d'un coup dans C pour un seul passage dans la boucle !
En tout cas ce genre de farce m'est déjà arrivé dans certaines mises au point, qui m'ont obligé à préciser .Cells derrière.
Cordialement.
 
Re : recherche valeur ligne precise VBa

salut,

à adapter Si... cela correspond
Code:
Sub test()
  Dim Vl, P As Range
   Dim n As Byte, k As Byte, b As Byte
  Vl = Array(1, 6, 10, 12, 3)
  Range("H4:K13") = ""
  For i = 4 To 13
    For n = 0 To 3
      Set P = Range("A" & i).Resize(1, 3 + n)
      For k = 0 To 4
        If Application.CountIf(P, Vl(k)) > 0 Then Cells(i, 8 + n) = Cells(i, 8 + n) + 1: b = b + 1
      Next
      b = 0
    Next
  Next
End Sub
 
Re : recherche valeur ligne precise VBa

Bonjour

Testé le code de Si..., résultat des compteurs légèrement différent, voir feuille jointe.

Mon code fait plus bidouillage tandis que l'autre est plus optimisé.
Par contre 3 compteurs pas quatre

Voir si possibilité de me documenter le code ligne par ligne

merci
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
909
  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
903
Réponses
4
Affichages
754
Retour