Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema InputBox
BildScreenshot zu InputBox InputBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen

Suchen + Kopieren mit VBA



Excel-Version: 9.0 (Office 2000)

Betrifft: Suchen + Kopieren mit VBA
von: Frank
Geschrieben am: 01.06.2002 - 23:55:01

Ich möchte eine Spalte auf das Vorhandensein eines bestimmten Wertes durchsuchen. Danach soll die komplette Zeile, in der der Wert gefunden wurde, in eine andere Tabelle kopiert werden.
Bitte um Hilfe.
Vielen Dank!

  

Re: Suchen + Kopieren mit VBA
von: L.Vira
Geschrieben am: 02.06.2002 - 01:22:33

Kann der Wert nur einmal oder öfter vorkommen?
Ist das Kopierziel fest oder variabel?

  

Re: Suchen + Kopieren mit VBA
von: Frank
Geschrieben am: 02.06.2002 - 08:48:39

Der Wert kommt mehrmals in der Spalte vor.
Betroffene Zeilen werden in ein vorgegebenes Arbeitsblatt
kopiert.

  

Re: Suchen + Kopieren mit VBA
von: WernerB.
Geschrieben am: 02.06.2002 - 10:03:47

Hallo Frank,

teste mal dieses Makro.
Mangels näherer Informationen habe ich folgende Annahmen getroffen:

- gesucht wird in Spalte "A"
- Quelle = Sheets("Tabelle1")
- Ziel = Sheets("Tabelle2")

Wenn Du in Deiner Anfrage mit Deinen Informationen schon so sparsam bist, darfst Du das Makro nun auch selbst auf Deine Verhältnisse anpassen.
Meine hellseherischen Fähigkeiten sind leider nicht überdurchschnittlich ausgeprägt und eine Glaskugel besitze ich auch nicht.


Option Explicit
Sub SuchenUndKopieren()
Dim SuBe As Range
Dim As String, za1 As String, za2 As String, za3 As String, za4 As String
Dim As Long, fiR As Long, laRq As Long, laRz As Long
Dim laC As Integer
Dim gef As Boolean
Const bq As String = "Tabelle1"
Const bz As String = "Tabelle2"
    s = InputBox("Suchbegriff eingeben:", "Suchen und Kopieren")
    If s = "" Then
     MsgBox "Es wurde kein Suchbegriff eingegeben !", vbExclamation, _
            "Hinweis für " & Application.UserName & ":"
      Exit Sub
    End If
    gef = False
    fiR = 1
    laRq = Sheets(bq).Cells(Rows.Count, 1).End(xlUp).Row
    For i = 1 To laRq
      Set SuBe = Sheets(bq).Range("A" & fiR).Find(s, lookat:=xlWhole)
      If SuBe Is Nothing Then _
        Set SuBe = Sheets(bq).Range("A" & fiR & ":A" & laRq + 1). _
          Find(s, lookat:=xlWhole)
      If Not SuBe Is Nothing Then
        gef = True
        fiR = SuBe.Row + 1
        laC = Sheets(bq).Cells(SuBe.Row, Columns.Count).End(xlToLeft).Column
        za1 = Cells(SuBe.Row, 1).Address(False, False)
        za2 = Cells(SuBe.Row, laC).Address(False, False)
        Sheets(bq).Range(za1 & ":" & za2).Copy
        laRz = Sheets(bz).Cells(Rows.Count, 1).End(xlUp).Row
        If laRz = 1 And IsEmpty(Sheets(bz).Cells(1, 1)) Then laRz = 0
        laRz = laRz + 1
        za3 = Cells(laRz, 1).Address(False, False)
        za4 = Cells(laRz, laC).Address(False, False)
        Sheets(bz).Range(za3 & ":" & za4).PasteSpecial Paste:=xlValues, _
          Operation:=xlNone, SkipBlanks:=False, Transpose:=False
        Application.CutCopyMode = False
      Else
        If gef = False Then _
        MsgBox "Der Suchbegriff '" & s & "' wurde nicht gefunden !", _
          vbExclamation, "Hinweis für " & Application.UserName & ":"
        Exit For
      End If
    Next i
End Sub

Viel Erfolg wünscht
WernerB.
  

Re: Suchen + Kopieren mit VBA
von: Frank
Geschrieben am: 02.06.2002 - 13:28:33

Ich habe die Fragestellung absichtlich nicht hundertprozentig auf mein Problem bezogen, es ging mir einfach nur darum,einen
groben Anhaltspunkt zur Abarbeitung zu finden. Ich denke, das Forum ist nicht dazu da, dass sich jeder komplette Programme schreiben lässt.
Die Lösung von WernerB. hat mir sehr weitergeholfen.
Vielen Dank Herr Werner B.!!!!

  

Re: Suchen + Kopieren mit VBA
von: WernerB.
Geschrieben am: 02.06.2002 - 13:51:13

Hallo Frank,

es freut mich, wenn ich Dir weiterhelfen konnte.

Deine Antwort (und Denkweise) kann ich zwar nachvollziehen, ich habe aber trotzdem die Auffassung, dass es einen potentiellen Antworter eher davon abhält, überhaupt tätig zu werden, wenn wichtige Randinformationen zu einem Makroproblem fehlen.

Bei vielen Formeln (aber nicht bei allen) ist es egal, in welcher Zelle sie stehen; bei einem (tabellenübergreifenden!) Makro sind da i.d.R. schon präzisere Angaben vonnöten.

Übrigens: Wenn Du jemanden (also auch mich) hier im Forum ansprichst, so kannst Du Dir den "Herrn" schenken; in diesem Forum sind alle per "Du".
Lies dazu bitte auch mal die "FAQ" in der Kopfleiste des Forums.

MfG
WernerB.

 

Beiträge aus den Excel-Beispielen zum Thema "Suchen + Kopieren mit VBA"