Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1708to1712
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Alle Arbeitsblätter nach Wert durchsuchen
22.08.2019 11:51:17
Michael
Hallo
ich versuche krampfhaft eine Lösung für mein Problem herbei zu führen und komme einfach nicht auf einen Nenner. Könntet ihr mir dabei helfen?
Und zwar besitze ich ein Excel-File mit einem "Hauptarbeitsblatt" sowie mehreren generierten Arbeitsblättern. Auf den generierten Arbeitsblättern befinden sich eine Menge sinnloser Daten. Diese möchte ich gern filtern und auf das Hauptarbeitsblatt (Tabelle1) in eine von mir festgelegten Zelle übertragen.
Die Anzahl der generierten Arbeitsblätter variiert dabei immer wieder, sodass ich eine Lösung benötige, wie ich alle Arbeitsblätter (außer das Hauptarbeitsblatt) nach einen gewissen Wert durchsuchen kann und dann aber den nebenstehenden oder gar darunterstehenden Zellwert ausgeben kann. Da sie generiert sind ist der Aufbau dieser Arbeitsblätter zumindest immer gleich.
Beispiel:
Ich möchte alle Blätter nach dem Wort "Ansprechpartner" durchsuchen und den Zellwert, der 3 Zellen darunter liegt, in meinem Hauptarbeitsblatt in die Zelle bspw A1 kopieren.
das Suchkriterium "Ansprechpartner" befindet sich immer auf der Position A15
Der eigentliche Name vom Ansprechpartner aber befindet sich 3 Zellen darunter (A18). Ist auch festgelegt, da es von einem Programm generierte Seiten sind.
Jetzt soll der Wert von TabelleX.A18 auf TabelleHaupt.A1 kopiert werden.
Hättet ihr da eine Idee für mich?

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Arbeitsblätter nach Wert durchsuchen
22.08.2019 12:50:31
Bernd
Servus Michael,
z.B. so?

Sub test()
Dim ws As Worksheet
Dim i As Integer
For Each ws In ThisWorkbook.Worksheets
If Not ws.Name = "Hauptarbeitsblatt" Then
If ws.Cells(15, 1).Value = "Ansprechpartner" Then
i = i + 1
Sheets("Hauptarbeitsblatt").Cells(i, 1).Value = ws.Cells(18, 1).Value
End If
End If
Next ws
End Sub
Grüße, Bernd
AW: Alle Arbeitsblätter nach Wert durchsuchen
22.08.2019 13:40:06
Michael
Das nenne ich mal kurz und präzise.
Was ich alles vorher probiert habe...
Ich würde jetzt noch deine Funktion gern erweitern mit einer etwas "unsaubereren" Suche.
Das heißt ich habe auf den generierten Seiten eine Stückliste mit Ware welche sich hinter Artikelcodes verstecken.
Diese Artikelcodes sind mehrfach aufzufinden. Mir reicht es aber, wenn das Programm einmal eines dieser Begriffe findet: "PNFB 12", "PLFB 15", "PLFB 16P" und dann die Suche nach diesen Begriffen aufhört.
Vielleicht wäre es einfacher eine Suche nach "P*FB" (ohne die Nummer).
Vom Prinzip sind es ja die gleichen Bauteile nur in leicht anderen Ausführungen.
Sollte er PNFB... oder PLFB finden soll er wieder einen Wert aus Zelle X in mein Hauptarbeitsblatt kopieren.
Anzeige
AW: Alle Arbeitsblätter nach Wert durchsuchen
22.08.2019 14:08:29
Bernd
Servus Michael,
ich versteh gerade nur Bahnhof.
Suche wieder in allen Blättern? In Welchen Tabellenbereichen soll gesucht werden? Wohin sollen die Ergebnisse kommen?
Lade doch mal eine Beispieldatei mit dem gewünschten Ergebnis hoch...
Grüße, Bernd
AW: Alle Arbeitsblätter nach Wert durchsuchen
22.08.2019 15:52:54
Michael
Ja dachte mir, dass das etwas kompliziert ist. Leider funktioniert der Upload irgendwie nicht.
Ich hoffe ich kann diesen Link dafür posten?
https://gofile.io/?c=5kP8g8
Das ist eine Beispieldatei die ich eben schnell erstellt habe.
Leider funktioniert aus irgendeinem Grund der Quelltext gerade nicht?!
Als mir den Quelltext geschickt hast ging es eigenartigerweise. Weißt du woran das liegen könnte?
Den Integer i habe ich entfernt, da ich diesen eig. nicht benötige. Dieser war ja nur für die Zeile zuständig. Ich lege aber je Suchbegriff selber fest, wo er die Daten ausgeben soll.
Wie du in der Datei siehst gibt es 3 Reiter namens "Stückliste".
In den einzelnen Reitern findet man jeweils die Begriffe "PLFB 16P", "PNFB 13", "PLFB 15"
Ich möchte dem Programm jetzt irgendwie sagen können: "Bitte such alle Arbeitsblätter ab und such nach einen dieser Begriffe. Welcher davon ist mir egal. Sobald du ihn gefunden hast bleib auf diesem Arbeitsblatt stehen und gib mir die Daten für "Abmessung X", "Abmessung Y", "Farbe" (RAL...) auf meinem Blatt "Stammdaten" wieder aus. Danach kannst du die Suche nach ähnlichen Begriffen abbrechen."
Anbei aber auch mal eine Originale Datei, die mir meine Software so generiert.
https://gofile.io/?c=XhPBrg
Die ist schon etwas umfangreicher, aber noch wirklich winzig (gehalten). Normal geht so ein generiertes File locker über 15 Arbeitslätter mit einen ganzen Haufen sinnloser Daten.
Anzeige
von irgendwelchen Filhostern...
22.08.2019 17:44:41
irgendwelchen
Hallo Michael,
...lade, ich zumindest, mir keine Daten herunter.
Im übrigen auch noch ein herliches Dankeschön fürs Ignorieren.
Gruß Werner
AW: von irgendwelchen Filhostern...
22.08.2019 20:04:18
irgendwelchen
Hallo Werner, wie schon in einem anderen Beitrag habe / wollte ich dich nicht ignorieren.
Mir fehlte nur leider etwas die Zeit in diesem Moment. Sorry.
Ich bin jetzt wieder an meinem Privat PC. Da scheint der Upload zu funktionieren.
Anbei die Datei
Beispiel Excel: https://www.herber.de/bbs/user/131586.xlsm
und so sieht eine Original-Generierte-Excel: https://www.herber.de/bbs/user/131587.xls
Hoffe ich kann auf eure Unterstützung weiterhin rechnen. Der Anfang war schon sehr gut.
Anzeige
AW: Alle Arbeitsblätter nach Wert durchsuchen
22.08.2019 14:27:28
Werner
Hallo Michael,
meinst du so was?
Option Explicit
Sub test()
Dim strSuch As String, raFund As Range
Dim ws As Worksheet, boVorhanden As Boolean
strSuch = InputBox("Bitte Suchbegriff eingeben.", "Suche nach")
If Not strSuch = vbNullString Then
strSuch = Left(strSuch, 4)
strSuch = Left(strSuch, 1) & "?" & Right(strSuch, 2) & "*"
For Each ws In ThisWorkbook.Worksheets
If Not ws.Name = "Hauptarbeitsblatt" Then
With ws
Set raFund = .Cells.Find(what:=strSuch, LookIn:=xlValues, lookat:=xlPart)
If Not raFund Is Nothing Then
Worksheets("Hauptarbeitsblatt").Range("A1") = raFund.Offset(3).Value
boVorhanden = True
Exit For
End If
End With
End If
Next ws
Else
Exit Sub
End If
If Not boVorhanden Then
MsgBox "Suchbegriff nicht gefunden."
End If
Set raFund = Nothing
End Sub
Wo dein Suchbegriff in den Blättern zu finden ist, ist egal. Bei Fund wird immer der Wert 3 Zeile unterhalb der Fundstelle ausgegeben.
Gruß Werner
Anzeige
AW: Alle Arbeitsblätter nach Wert durchsuchen
22.08.2019 19:59:49
Michael
Hallo Werner,
Vielen Dank für deinen Code. Ich habe es leider noch nicht geschafft deinen Code zu testen.
Dazu werde ich leider morgen erst kommen. War gerade kurz vor Feierabend und bin jetzt erst wieder am PC, habe nur noch gerade andere Aufgaben auf dem Tisch. Habe dich nicht ignoriert. Nur leider nicht geschafft sorry. Vielen dank, hoffe weiterhin auf deine Unterstützung. :-)

307 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige