equiv ou recherchev (cellules du champ de recherche comprises entre 1 et 12000car)

Ron2cuir

XLDnaute Nouveau
Bonjour,
petit nouveau XLD!
Désolé j'ai confondu discussion et conversation!!!
Ces fonctions ne prennent en compte que 256 car des cellules de champs (6000lignes).
qui a déja trouvé une solution (même avec vba) pour pallier cet inconvénient ?

Le retour doit être: numéro de ligne dans la table.
Merci de votre aide
 

job75

XLDnaute Barbatruc
Bonjour Ron2cuir, le forum,

Finalement la sélection du texte trouvé par caractères génériques * ? n'est pas trop lourding :
Code:
Private Sub ListBox1_Click()
Dim n As Variant, x$, s, a$, nn%, i%
TextBox2 = P(ListBox1) 'propriété BoundColumn = 1
TextBox2.SetFocus
n = InStr(TextBox2, TextBox1)
If n Then
  TextBox2.SelStart = n - 1
  TextBox2.SelLength = Len(TextBox1)
ElseIf OptionButton1 Then 'recherche s'il y a des caractères génériques
  x = Replace(TextBox1, """", """""") 'remplacement des guillemets
  If CheckBox1 Then x = Replace(x, "*", Chr(1))
  If CheckBox2 Then x = Replace(x, "?", "~?")
  s = Split(x, "*")
  x = Replace(x, Chr(1), "~*")
  a = P(ListBox1).Address
  n = Evaluate("SEARCH(""" & x & """," & a & ")")
  If IsError(n) Then GoTo 1 'sécurité
  nn = n
  For i = 1 To UBound(s)
    nn = Evaluate("SEARCH(""" & s(i) & """," & a & "," & nn + 1 & ")")
  Next
  TextBox2.SelStart = n - 1
  TextBox2.SelLength = nn + Len(Replace(s(UBound(s)), "~?", "?")) - n
Else
1 TextBox2.SelStart = 0
  ListBox1.SetFocus
End If
Label4 = "Nombre de caractères : " & Len(TextBox2)
End Sub
Fichier (4).

Bonne journée.
 

Pièces jointes

  • UserForm(4).xlsm
    2.4 MB · Affichages: 23

job75

XLDnaute Barbatruc
Re,

Ce n'était pas parfait, testez le fichier (4) en recherchant aa*a

J'ai donc remplacé :
Code:
    nn = Evaluate("SEARCH(""" & s(i) & """," & a & "," & nn + 1 & ")")
par :
Code:
    nn = Evaluate("SEARCH(""" & s(i) & """," & a & "," & nn + Len(Replace(s(i - 1), "~?", "?")) & ")")
Code:
Private Sub ListBox1_Click()
Dim n As Variant, x$, s, a$, nn%, i%
TextBox2 = P(ListBox1) 'propriété BoundColumn = 1
TextBox2.SetFocus
n = InStr(TextBox2, TextBox1)
If n Then
  TextBox2.SelStart = n - 1
  TextBox2.SelLength = Len(TextBox1)
ElseIf OptionButton1 Then 'recherche s'il y a des caractères génériques
  x = Replace(TextBox1, """", """""") 'remplacement des guillemets
  If CheckBox1 Then x = Replace(x, "*", Chr(1))
  If CheckBox2 Then x = Replace(x, "?", "~?")
  s = Split(x, "*")
  x = Replace(x, Chr(1), "~*")
  a = P(ListBox1).Address
  n = Evaluate("SEARCH(""" & x & """," & a & ")")
  If IsError(n) Then GoTo 1 'sécurité
  nn = n
  For i = 1 To UBound(s)
    nn = Evaluate("SEARCH(""" & s(i) & """," & a & "," & nn + Len(Replace(s(i - 1), "~?", "?")) & ")")
  Next
  TextBox2.SelStart = n - 1
  TextBox2.SelLength = nn + Len(Replace(s(UBound(s)), "~?", "?")) - n
Else
1 TextBox2.SelStart = 0
  ListBox1.SetFocus
End If
Label4 = "Nombre de caractères : " & Len(TextBox2)
End Sub
Fichier (5).

A+
 

Pièces jointes

  • UserForm(5).xlsm
    2.4 MB · Affichages: 31

Ron2cuir

XLDnaute Nouveau
Bonjour job75
j'ai voulu utiliser L'USF de UserForm(5)
Pour coller à mon problème:
J'ai déplacé la base en feuil3 (RechercheLivre)
mon champ de base est MyBase (RechercheLivre!$A$1:$L$373)
j'ai modifié l'USF Set P = Intersect(Feuil3.[K:K], Sheets("RechercheLivre").Range("Mybase"))
Je recherche g?n?ral
La position du critère n'est pas surlignée dans textbox2!!
alors que'avant ces modif ça fonctionne.
Je cherche depuis 2 jours et je cale dans l'explication?
Si vous pouvez éclairer ma lanterne...
Merci d'avance
 

Pièces jointes

  • UserForm(5)R2C.xlsm
    330 KB · Affichages: 40

job75

XLDnaute Barbatruc
Bonjour Ron2cuir, le forum,

Dans ListBox1_Click remplacez :
Code:
a = P(ListBox1).Address
par :
Code:
 a = P(ListBox1).Address(External:=True)
Par ailleurs, c'est juste un détail, mais il est plus simple d'écrire dans TextBox1_Change :
Code:
Set P = Intersect(Feuil3.[K:K], [Mybase])    'Feuil3 => CodeName
ou encore plus simplement :
Code:
Set P = [Mybase].Columns(11).Cells
Bonne journée.
 

Membres actuellement en ligne

Statistiques des forums

Discussions
294 444
Messages
1 938 544
Membres
188 916
dernier inscrit
mhedi69