Thema Datum  Von Nutzer Rating
Antwort
13.01.2023 15:23:52 Hans
NotSolved
16.01.2023 08:50:37 Gast60255
NotSolved
16.01.2023 09:26:58 Gast71774
NotSolved
17.01.2023 13:24:18 Bernd
NotSolved
18.01.2023 07:56:05 Gast98604
NotSolved
18.01.2023 13:12:12 Bernd
NotSolved
19.01.2023 08:56:52 Gast19284
NotSolved
19.01.2023 15:35:19 Bernd
NotSolved
20.01.2023 14:08:15 Gast79992
NotSolved
23.01.2023 13:23:29 Bernd
NotSolved
26.01.2023 20:23:01 Gast21598
NotSolved
Blau Kopieren und in neuer Mappe einfügen
03.02.2023 16:02:53 Bernd
NotSolved

Ansicht des Beitrags:
Von:
Bernd
Datum:
03.02.2023 16:02:53
Views:
726
Rating: Antwort:
  Ja
Thema:
Kopieren und in neuer Mappe einfügen

Hallo Hans
Es tut mir leid, aber ich hatte echt viel zu tun.
Hier aber nun das fertige von mir mit der kleinen Tabelle geprüfte Makro.

Ich bin sicher, das irgendjemand kommen wird und dir erklärt das es mit Sicherheit noch einfacher geht, aber ich habe es mit den meinigen Fähigkeiten geschrieben und getestet.
Es ist weitestgehend erklärt und kann damit auch für einen Nichtexperten (wie Ich) angepasst werden.
Es besteht durchaus auch die Möglichkeit, wenn du eine Geringe Anzahl an Suchkriterien hast, diese mit einer Userform anzupassen.
Wenn du (wie ich dich oben Verstanden habe) mit einzelnen Buttons startest, kannst du ja einfach jedem Button ein eigenes Makro zuweisen, in dem du den Suchwert entsprechend dem Button änderst.

 

Wenn du noch andere Änderungen möchtest, sollte dies auch mögich sein. 

Die Msgbox am Ende kannst du natürlich herausnehmen.

Ich hoffe ich habe das Makro gut Dokumentiert, damit es verständlich ist.

Hier nun das Makro:

 

Option Explicit

Sub AllesFinden()


Dim ErsterFund As String 'firstfound
Dim GefundeneZelle As Range 'foundcell
Dim rng As Range
Dim SuchBereich As Range 'myrange
Dim LetzteZelle As Range 'lastcell


   Dim QName As Workbook        'Name der Quelldatei
   Dim QWBSheet As Worksheet    'Name des WorkbookQuellsheet
   Dim QSheet As String         'Name des Quellsheet als String
   Dim ZSheet As String         'Name des neuen Zielsheet
   Dim Suchwert As String       'find 'Nach was suchst du
   Dim Zeile As Long            'Zeile in der etwas gefunden wurde
   Dim LetzteZZeile As Long     'Letzte Zeile im Zielsheet
   Dim Einfügezeile As Long     'Zeile nach der LetztenZeile zum Einfügen
   

Suchwert = "Waschmaschine"   'Oder eine Variable aus einer MSGBOX

    Set QName = ActiveWorkbook 'Erstellt sich aus aktiver Quelldatei
    Set QWBSheet = ActiveSheet 'Erstellt sich aus aktiven Quellsheet
    QSheet = QWBSheet.Name

'Wenn du nur ein Neues Sheet einfügen möchtest:
  With ThisWorkbook
    .Sheets.Add after:=Sheets(Worksheets.Count)
    .ActiveSheet.Name = "Waschmaschine"
'    Alternativ:      .ActiveSheet.Name = Suchwert
  End With
      ZSheet = ActiveSheet.Name 'Neuer Name des Zielsheet
      
'' Wenn du das Originalsheet umbenennen möchtest:
'    Sheets(QWBSheet.Name).Select
'    ActiveSheet.Name = "Original"
'    QSheet = ActiveSheet.Name   'Neuer Name des Quellsheet

'Einfügen der 1. Zeile (Namen)
 Worksheets(QWBSheet.Name).Activate
    Range("1:1").Select
      Selection.Copy
 Worksheets(ZSheet).Activate
    Range("1:1").Select
    Selection.Insert


Worksheets(QSheet).Activate
Set SuchBereich = ActiveSheet.UsedRange
Set LetzteZelle = SuchBereich.Cells(SuchBereich.Cells.Count)
'Suche
Set GefundeneZelle = SuchBereich.Find(what:=Suchwert, after:=LetzteZelle)

If Not GefundeneZelle Is Nothing Then
ErsterFund = GefundeneZelle.Address
Zeile = GefundeneZelle.Row


Else: GoTo NothingFound
End If

Set rng = GefundeneZelle

Kopieren:
'Letzte Zeile im ZSheet feststellen (ändert sich nach jedem einfügen)
With Worksheets(ZSheet) ' Mit dem Ziellsheet
         LetzteZZeile = IIf(IsEmpty(.Cells(Rows.Count, 2)), .Cells(Rows.Count, 2).End(xlUp).Row, Rows.Count) ' letzte volle Zeile in Ziel-Sheet Spalte 2=B ermitteln
    End With
    Einfügezeile = LetzteZZeile + 1
    
Worksheets(QSheet).Activate
Range(Zeile & ":" & Zeile).Select
      Selection.Copy
Worksheets(ZSheet).Activate
    Rows(Einfügezeile).Select
    Selection.Insert


Do Until GefundeneZelle Is Nothing

Set GefundeneZelle = SuchBereich.FindNext(after:=GefundeneZelle)


If GefundeneZelle.Address = ErsterFund Then Exit Do
Zeile = GefundeneZelle.Row

'Kopieren im Loop
'Letzte Zeile im ZSheet feststellen (ändert sich nach jedem einfügen)
With Worksheets(ZSheet) ' Mit dem Ziellsheet
         LetzteZZeile = IIf(IsEmpty(.Cells(Rows.Count, 2)), .Cells(Rows.Count, 2).End(xlUp).Row, Rows.Count) ' letzte volle Zeile in Ziel-Sheet Spalte 2=B ermitteln
    End With
    Einfügezeile = LetzteZZeile + 1
    
Worksheets(QSheet).Activate
Range(Zeile & ":" & Zeile).Select
      Selection.Copy
Worksheets(ZSheet).Activate
    Rows(Einfügezeile).Select
    Selection.Insert


Loop

MsgBox ("Makro bendet")
Exit Sub


NothingFound:
MsgBox ("Nichts gefunden")

End Sub
 


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
13.01.2023 15:23:52 Hans
NotSolved
16.01.2023 08:50:37 Gast60255
NotSolved
16.01.2023 09:26:58 Gast71774
NotSolved
17.01.2023 13:24:18 Bernd
NotSolved
18.01.2023 07:56:05 Gast98604
NotSolved
18.01.2023 13:12:12 Bernd
NotSolved
19.01.2023 08:56:52 Gast19284
NotSolved
19.01.2023 15:35:19 Bernd
NotSolved
20.01.2023 14:08:15 Gast79992
NotSolved
23.01.2023 13:23:29 Bernd
NotSolved
26.01.2023 20:23:01 Gast21598
NotSolved
Blau Kopieren und in neuer Mappe einfügen
03.02.2023 16:02:53 Bernd
NotSolved