Von |
PeterPaul |
Am |
18. September 2008 um 15:32:08 |
Frage |
Hallo zusammen,
ich habe folgendes Problem:
Worksheet 1 = Zellen A1 - Z100 stehen voller Begriffe, einer in jeder Zelle, manche doppelt. Worksheet 2 = ein Begriff steht in A1
Was soll passieren? Suche den Begriff aus WS 2 (A1) im ganzen WS1, wenn du ihn gefunden hast, kopiere die sieben Begriffe unter dem Gesuchten Begriff in das WS 2, beginnend bei B1 und suche weiter in WS 1 ob es dort den Begriff nochmal gibt...
Quasi eine ganz einfache Schleife, wenn man weiß wie es geht. Ich bin hier mit meinem Latein am Ende.
Besten Dank für jede Hilfe. Gruß |
|
Von |
r.mueller@sz-online.de |
eMail |
|
Am |
18. September 2008 um 23:31:32 |
Antwort |
HalloSub SucheDenBegriff() Dim wksQuelle As Worksheet Dim wksZiel As Worksheet Dim rngGefunden As Range Dim strGesuchterText As Variant Dim lngGefundenInZeile As Long Dim lngGefundenInSpalte As Long Dim lngZeileZiel As Long Dim lngSpalteZiel As Long Dim lngAbZeileQ As Long Dim lngBisZeileQ As Long Dim lngAbSpalteQ As Long Dim lngBisSpalteQ As Long Dim lngAnzehlZuKopierendeZeilen As Long Dim rngSuchenInQ As Range Dim vntFirstAddress As Variant lngAbZeileQ = 1 lngBisZeileQ = 100 lngAbSpalteQ = 1 '=A lngBisSpalteQ = 26 '=Z lngSpalteZiel = 2 lngZeileZiel = 1 lngAnzehlZuKopierendeZeilen = 7 Set wksQuelle = ActiveWorkbook.Worksheets("Tabelle1") Set wksZiel = ActiveWorkbook.Worksheets("Tabelle2") strGesuchterText = wksZiel.Cells(1, 1).Value Set rngSuchenInQ = wksQuelle.Range(wksQuelle.Cells(lngAbZeileQ, lngAbSpalteQ), wksQuelle.Cells(lngBisZeileQ, lngBisSpalteQ)) Set rngGefunden = rngSuchenInQ.Find( _ What:=strGesuchterText, _ After:=rngSuchenInQ.Cells(1), _ LookIn:=xlFormulas, _ Lookat:=xlWhole, _ Searchorder:=xlByRows, _ SearchDirection:=xlNext, _ MatchCase:=False) If Not rngGefunden Is Nothing Then vntFirstAddress = rngGefunden.Address Do lngGefundenInZeile = rngGefunden.Row lngGefundenInSpalte = rngGefunden.Column wksQuelle.Range(wksQuelle.Cells(lngGefundenInZeile + 1, lngGefundenInSpalte), wksQuelle.Cells(lngGefundenInZeile + lngAnzehlZuKopierendeZeilen, lngGefundenInSpalte)).Copy _ Destination:=wksZiel.Cells(lngZeileZiel, lngSpalteZiel) lngSpalteZiel = lngSpalteZiel + 1 Set rngGefunden = rngSuchenInQ.FindNext(rngGefunden) Loop While Not rngGefunden Is Nothing And rngGefunden.Address <> vntFirstAddress End If End Sub Gruß
PS: Was hat deine Frage mit "Word 2003" zu tun ??????????
|
|