Poimiva hakumakro

Voisiko joku teistä guruista neuvoa aloittelijaa...

Pitäisi tehdä makro, jonka avulla käyttäjä voi hakea hakusanalla tai sen alulla Excel 2007 taulukosta tietoa ja kun hän valitsee haun tuloksen, kaikki sen rivin tiedot siirtyvät toiseen tauluun. Ajatus on, että käyttäjä ei välttämättä tiedä koko hakusanaa vaan sen alun ja hän voi saada ruudulle useita hakutuloksia, joista hän valitsee oikean esim. enterillä ja haun tulos, siis kyseisen rivin kaikki tiedot, joita voi olla monessa sarakkeessa, siirtyvät toiseen tauluun. Kiitos jo etukäteen neuvoista!
2431
Äänestä

Muut lukivat myös

Vastaukset 2

Vanhimmat

tee lomake ja lisaa siihen tekstiruutu, luetteloruutu ja komentopainike. Oletusnimilla nyt...

lomakkeeseen seuraavat koodit

jos haluat , etta tiedot tulevat allekkain niin hipsaa rivi
Siirto.Copy Range("Sheet2!A65536").End(xlUp).EntireRow

ja poista hipsu rivilta
' Siirto.Copy Range("Sheet2!A65536").End(xlUp).Offset(1, 0).EntireRow

jos et halua etsia koko taulukosta niin muuta EtsiJaSiirrไ proseduurissa With Cells
esim A sarake With Range("A:A")
Private Sub CommandButton1_Click()
Dim Siirto As Range
For i = 0 To ListBox1.ListCount
If ListBox1.Selected(i) = True Then
' MsgBox "Valitsit: " & ListBox1.List(i)
Set Siirto = EtsiJaSiirrไ(ListBox1.List(i)).EntireRow
Siirto.Copy Range("Sheet2!A65536").End(xlUp).EntireRow
' Siirto.Copy Range("Sheet2!A65536").End(xlUp).Offset(1, 0).EntireRow
Exit Sub
End If
Next
End Sub

Private Sub TextBox1_Change()
Dim Haku As Range
Dim solu As Range
Set Haku = EtsiJaSiirrไ(TextBox1.Text & "*")
ListBox1.Clear
If Not Haku Is Nothing Then
For Each solu In Haku
ListBox1.AddItem solu
Next

End If
End Sub

Function EtsiJaSiirrไ(Hakuehto As Variant) As Range
Dim solu As Range
Dim EkaOsoite As String
Worksheets("Sheet1").Activate
With Cells
Set solu = .Find( _
What:=Hakuehto, _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False, _
SearchFormat:=False)
If Not solu Is Nothing Then
Set EtsiJaSiirrไ = solu
EkaOsoite = solu.Address
Do
Set EtsiJaSiirrไ = Union(EtsiJaSiirrไ, solu)
Set solu = .FindNext(solu)
Loop While Not solu Is Nothing And solu.Address EkaOsoite
End If
End With
End Function

Äänestä
  • Kiitos, Kunde - yritetäänpä ruveta vääntämään :D

    Äänestä

Kommentoi aloitusta


MakroMopo kirjoitti:

Voisiko joku teistä guruista neuvoa aloittelijaa...

Pitäisi tehdä makro, jonka avulla käyttäjä voi hakea hakusanalla tai sen alulla Excel 2007 taulukosta tietoa ja kun hän valitsee haun tuloksen, kaikki sen rivin tiedot siirtyvät toiseen tauluun. Ajatus on, että käyttäjä ei välttämättä tiedä koko hakusanaa vaan sen alun ja hän voi saada ruudulle useita hakutuloksia, joista hän valitsee oikean esim. enterillä ja haun tulos, siis kyseisen rivin kaikki tiedot, joita voi olla monessa sarakkeessa, siirtyvät toiseen tauluun. Kiitos jo etukäteen neuvoista!

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu