cautare cuvinte dupa litere

adof
Mesaje: 466
Membru din: Mie Iul 14, 2010 12:42 pm
Localitate: Sibiu

cautare cuvinte dupa litere

Mesaj de adof » Lun Oct 01, 2018 10:04 am

Sal
cum pot crea un listbox in care sa imi apara continutul celulelor in care apar cuvintele care contin literere tastate intr-un textbox

Ex:
in textbox tastez litera a

in listbox apar toate cuvintele care au litera a


un fel de cautare persoana in agenda de telefon cu Android

am creat Userform cu Textbox si Listbox
am adaugat toate celulele care cotin datele in care se face cautarea

Cod: Selectaţi tot

Set lista1 = Foaie1.Range("j14:j300")

For Each a In list1
Me.ListBox1.AddItem a
Next a
dar nu stiu cum sa fac TextBox1_Change() astfel incat cand tastez literele sa ramana in listbox doar celulele cu textul in care sunt literele

multumesc

Indigo-99
Mesaje: 60
Membru din: Dum Sep 02, 2018 8:21 am

Re: cautare cuvinte dupa litere

Mesaj de Indigo-99 » Lun Oct 01, 2018 8:09 pm

Salut,

Pune acest cod in UserForm (eventual schimba denumirile TextBox1 si ListBox1, cu denumirile date de tine)
Codul cauta litera/literele respectiva/e in toate numele din acel range si listeaza numele in ListBox - exact ca in telefon. :)
Daca doresti se poate modifica sa caute doar dupa prima/primele litera/e.
Codul va functiona si daca sunt celule libere in acel range.

Cod: Selectaţi tot

Private Sub TextBox1_Change()
    Dim k
    With Me
        .ListBox1.Clear
        If Len(.TextBox1.Value) Then
            For Each k In Foaie1.Range("j14:j300")
                If (k <> "") * (k Like "*" & .TextBox1.Value & "*") Then
                    .ListBox1.AddItem k
                End If
            Next
        End If
    End With
End Sub
"I don’t pretend we have all the answers. But the questions are certainly worth thinking about."
Sir Arthur C. Clarke

adof
Mesaje: 466
Membru din: Mie Iul 14, 2010 12:42 pm
Localitate: Sibiu

Re: cautare cuvinte dupa litere

Mesaj de adof » Mar Oct 02, 2018 7:33 am

Multumesc
este super

adof
Mesaje: 466
Membru din: Mie Iul 14, 2010 12:42 pm
Localitate: Sibiu

Re: cautare cuvinte dupa litere

Mesaj de adof » Mar Oct 02, 2018 9:57 am

am incercat tot felul de coduri
dar nu am reusit sa madific codul de mai sus
sa functioneze pentru litere mici sau mari

atunci cand scriu a litera mica cuvintele care au litere mari nu mai apar in listbox

stiu ca VBA face diferenta intre litere mari sau mici

Ucase
Lcase

ajutor va rog

Indigo-99
Mesaje: 60
Membru din: Dum Sep 02, 2018 8:21 am

Re: cautare cuvinte dupa litere

Mesaj de Indigo-99 » Mar Oct 02, 2018 10:12 am

Schimba linia asta de cod:

Cod: Selectaţi tot

If (k <> "") * (k Like "*" & .TextBox1.Value & "*") Then
cu asta:

Cod: Selectaţi tot

If (k <> "") * (k Like "*" & Ucase(.TextBox1.Value) & "*") Then
erai pe aproape :)
"I don’t pretend we have all the answers. But the questions are certainly worth thinking about."
Sir Arthur C. Clarke

adof
Mesaje: 466
Membru din: Mie Iul 14, 2010 12:42 pm
Localitate: Sibiu

Re: cautare cuvinte dupa litere

Mesaj de adof » Mar Oct 02, 2018 10:46 am

Multumesc

am folosit codul si am mai adaugat OR Lcase

am facut o modificare pt ca dadea eroare daca nu era nici o litera

am adauat sa incarce lista din nou daca sterg toate literele din Texbox

MULTUMESC MULT DE TOT

imi este de mare ajutor in toate fisierele


mai trebuie sa adaug la forma un textbox in care sa apara atunci cand selectez in exel zona de cautare
si atunci o sa il pot folosi in toate fisierele

adof
Mesaje: 466
Membru din: Mie Iul 14, 2010 12:42 pm
Localitate: Sibiu

Re: cautare cuvinte dupa litere

Mesaj de adof » Mar Oct 02, 2018 11:16 am

acum am observat ca daca mai adaug o liter dispar toate cuvintele din listbox

chiar daca in cuvintele cautate sunt amandoua literele

ma poti ajuta cu acesta problema

oare merge o cautare de tip string
in cuvintele din lista

adof
Mesaje: 466
Membru din: Mie Iul 14, 2010 12:42 pm
Localitate: Sibiu

Re: cautare cuvinte dupa litere

Mesaj de adof » Mar Oct 02, 2018 11:40 am

numai daca literele sunt mari si mici in acelasi cuvant

cred ca nu e bine ce am scris

Cod: Selectaţi tot

 If (k <> "") * (k Like "*" & UCase(.TextBox1.Value) & "*") Or (k <> "") * (k Like "*" & LCase(.TextBox1.Value) & "*") Then
daca sunt dua sau mai multe litere mici functioneaza

mam gandit sa trasform toate k in litere Mari

Cod: Selectaţi tot

k = LCase(k)
inainte de mici

e o idee DAr
textul pe care vreau sa il aleg si sa il scriu trebuie transformat in litere mici cu mari

Indigo-99
Mesaje: 60
Membru din: Dum Sep 02, 2018 8:21 am

Re: cautare cuvinte dupa litere

Mesaj de Indigo-99 » Mar Oct 02, 2018 4:32 pm

Cod: Selectaţi tot

If (k <> "") * (k Like "*" & Ucase(.TextBox1) & "*") + (k Like "*" & Lcase(.TextBox1) & "*")  Then
"I don’t pretend we have all the answers. But the questions are certainly worth thinking about."
Sir Arthur C. Clarke

adof
Mesaje: 466
Membru din: Mie Iul 14, 2010 12:42 pm
Localitate: Sibiu

Re: cautare cuvinte dupa litere

Mesaj de adof » Mie Oct 03, 2018 7:11 am

Multumesc super tare

Scrie răspuns

Înapoi la “Visual Basic for Application (VBA) cu Excel - Intrebari tehnice”