Problème de recherche de valeur avec find ou match

dmoluc

XLDnaute Occasionnel
Re Bonjour à tous,

40° dehors ça me donne envie de rester devant mon PC, pourtant comme d'habitude impossible de résoudre un problème sans votre aide précieuse.

J'ai une variable "A" qui est incrémentée avec du texte, je cherche à savoir si elle est déjà inscrite sur la feuille
code pour voir si vraie
HTML:
If Application.CountIf(Range("A39:A45"), "=" & A) <> 0

code pour voir si faux car j'avais des problème avec Else qui s'exécuter même lorsqu'il ne devait pas
Code:
ElseIf Application.CountIf(Range("A39:A45"), "=" & A) = 0 Then

voilà les lignes qui posent problèmes

j’ignore si la syntaxe est bonne mais ça ne fonctionne pas

Code:
 Ligne = Application.Match(A, .Column(1))

et pas plus de cette manière

Code:
Ligne = Range("A87:A128").Find(A, LookIn:=xlValues, lookat:=xlWhole).Row

quelqu'un aurait une idée pour trouver le n° de ligne avec la première condition ?
Avec la deuxième c'est plus facile car A est inscrit obligatoirement en fin de colonne.

Voici le chapitre complet du code

Code:
For i = 11 To 34
 For z = 115 To 137
        Select Case i
        Case 11 To 16
           Select Case z
           Case 115 To 120
            A = Me("ListBox" & i).Text
                If Application.CountIf(Range("A39:A45"), "=" & A) <> 0 Then
                Ligne = Range("A39:A45").Find(A, LookIn:=xlValues, lookat:=xlWhole).Row
                Q = CDbl(Me.Controls("TextBox" & z).Value)
                Cells(Ligne, Colonne).Value = Q
                ElseIf Application.CountIf(Range("A39:A45"), "=" & A) = 0 Then
                Range("A45").End(xlUp).Offset(1, 0) = A
                Ligne = Range("A45").End(xlUp).Row
                Q = CDbl(Me.Controls("TextBox" & z).Value)
                Cells(Ligne, Colonne).Value = Q
            End If

          End Select
        Case 17 To 26

           Select Case z
           Case 121 To 129
            A = Me("ListBox" & i).Text
            
                If Application.CountIf(Range("A87:A128"), "=" & A) <> 0 Then
                Ligne = Range("A87:A128").Find(A, LookIn:=xlValues, lookat:=xlWhole).Row
               Q = CDbl(Me.Controls("TextBox" & z).Value)
                Cells(Ligne, Colonne).Value = Q
                ElseIf Application.CountIf(Range("A87:A128"), "=" & A) = 0 Then
                Range("A128").End(xlUp).Offset(1, 0) = A
                Ligne = Range("A128").End(xlUp).Row
               Q = CDbl(Me.Controls("TextBox" & z).Value)
                Cells(Ligne, Colonne).Value = Q
            End If
          End Select

                Case 27 To 34
                   Select Case z
           Case 130 To 137
            A = Me("ListBox" & i).Text
            If Application.CountIf(Range("A49:A83"), "=" & A) <> 0 Then
                Ligne = Range("A49:A83").Find(A, LookIn:=xlValues, lookat:=xlWhole).Row
                Q = CDbl(Me.Controls("TextBox" & z).Value)
                Cells(Ligne, Colonne).Value = Q
            ElseIf Application.CountIf(Range("A49:A83"), "=" & A) = 0 Then
                Range("A83").End(xlUp).Offset(1, 0) = A
               Ligne = Range("A83").End(xlUp).Row
               Q = CDbl(Me.Controls("TextBox" & z).Value)
               Cells(Ligne, Colonne).Value = Q
              
            End If
          End Select

        End Select
      
    Next z
   Next i

merci pour votre aide

Cordialement

Didier
 
Dernière édition:

Pierrot93

XLDnaute Barbatruc
Re : Problème de recherche de valeur avec find ou match

Bonjour,

tu es sûr que cette instruction fonctionne ? et qu'elle est bien exécutée (passage des tests) ?
Code:
A = Me("ListBox" & i).Text

perso j'ai un doute, sous 2003 ca boguerait....

bonne soirée
@+
 

youky(BJ)

XLDnaute Barbatruc
Re : Problème de recherche de valeur avec find ou match

Bonjour demoluc,
La bonne syntaxe est comme ceci

A1:A10 pour exemple

A = "demoluc" 'A changer
MsgBox Application.CountIf([A1:a10], A)
MsgBox Application.Match(A, Columns(1), 0)
MsgBox Range("A1:A10").Find(A, LookIn:=xlValues, lookat:=xlWhole).Row

Bruno
 

dmoluc

XLDnaute Occasionnel
Re : Problème de recherche de valeur avec find ou match

Merci bruno,
avec la méthode match je trouve bien la ligne recherchée
avec find, impossible c'est d’ailleurs pour ça que la condition est avec countif

maintenant je ne trouve plus A, Pierrot doit avoir raison, il y a peu être un problème de syntaxe avec
A = Me("ListBox" & i).Text

Pourtant tout à l'heure ça fonctionnait parfaitement ; on débloque d'un côté, ça bloque de l'autre :(
existe-t-il un autre moyen pour récupérer A ?

Encore merci pour votre aide précieuse
 

dmoluc

XLDnaute Occasionnel
Re : Problème de recherche de valeur avec find ou match

oui, j'ai relancé excel et cela c'est remis à fonctionner ; c'est peu être la chaleur qui fait tout planter :rolleyes:

Maintenant j'ai plein d'autre problème qui s’enchaîne en cascade ; tous les code ne s'imbriquent pas comme je voudrais mais là au moins, au niveau syntaxe ça reste à ma portée. Il ne me reste plus qu'à tout vérifier et à ne pas faire d'étourderies

Merci encore, vous m'avez tirer une autre épine du pied

A+
 

youky(BJ)

XLDnaute Barbatruc
Re : Problème de recherche de valeur avec find ou match

Bonjour Pierrot,
Oui je viens de tester et ça marche j'en suis surpris comme toi.

Dmoluc, je pense que la variable A n'est pas forcément du numeric mais du text
Declare cette variable pour tester si c'est bien des chiffres que tu attends.
Dim A As long
Peut être....... A = Cdbl(Me("ListBox" & i).Text)
au lieu de
A = Me("ListBox" & i).Text

Bruno
 

dmoluc

XLDnaute Occasionnel
Re : Problème de recherche de valeur avec find ou match

La variable A est toujours du texte, c'est la variable Q qui est numérique
A = désignation
Q = Quantité
Tout à l'heure ça a tout simplement "bugé", ça arrive de temps en temps surtout que mon code bafouille un peu, je débute et fait beaucoup de bétises
enfin un grand merci à vous car sans aide je n'en serais pas arriver jusque là et je serais encore entrain de remplir le planning avec le pot de peinture excel et la souris....

Bonne soirée à tous
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 114
Membres
103 121
dernier inscrit
SophieS