Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
832to836
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
832to836
832to836
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Suchfunktion

Suchfunktion
10.01.2007 10:39:37
tuvux
Hallo Leute!
Ich setze folgendes ein um nach bestimmten Inhalten zu suchen:
Public

Sub Instrsuche()
Dim intwort As String, intgef As Integer, wks1 As Worksheet, Zelle As Range
Range("e7:h1000").ClearContents
Set wks1 = ThisWorkbook.Sheets("Teile Übersicht")
intgef = 7
intwort = InputBox("Geben Sie Ersatzteil, Hersteller oder Einbauort ein:")
If intwort = "" Then Exit 

Sub 'Bei Abbruch gibt Inputbox einen Leerstring aus
For Each Zelle In wks1.Range("A3:D" & wks1.UsedRange.Rows.Count)
If InStr(1, Zelle.Value, intwort, vbTextCompare) Then
Cells(intgef, 5) = wks1.Cells(Zelle.Row, 1)
Cells(intgef, 6) = wks1.Cells(Zelle.Row, 2)
Cells(intgef, 7) = wks1.Cells(Zelle.Row, 4)
Cells(intgef, 8) = wks1.Cells(Zelle.Row, 3)
intgef = intgef + 1
End If
Next
End Sub

Nun möchte ich mit einm bestimmten Befehl, z.B. "alles", dass alles an vorhandenen Daten ausgegeben wird.
Für Eure Hilfe schon mal vielen Dank!
Tuvux

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Suchfunktion
10.01.2007 13:48:54
tuvux
Hi,
kann wirklich niemand helfen?
Tuvux
AW: Suchfunktion - Also, wenn du dich doch...
10.01.2007 14:38:17
Luc:-?
...mit der Inputbox auskennst, Tuvux,
warum lässt du nicht enfach 'alles' eingeben und fragst zuerst danach? Davon kannst du dann einen separaten For-Each-Zyklus über alle relevanten Zellen abhängig machen, der dann im Prinzip genauso laufen sollte wie dein Suchzyklus. Oder fkt der etwa auch nicht zu deiner Zufriedenheit? Dann müsstest du das mitteilen. Einen "Befehl" Alles gibt es so nicht. Irgendwie scheinst du den Wald vor lauter Bäumen nicht zu sehen. Das Gefühl scheint auch die Gemeinde zu haben. ;-)
Noch ein Tipp: In einer Inputbox hast du auch die Möglichkeit einen Defaultwert für die Eingabe anzugeben. Ich mache das immer folgendermaßen:
1. Lege eine String-Konstante mit dem allgemeinen Aufbau der Eingabe bzw Hinweisen oder einem echten Default für die häufigste Nutzung an.
2. Deklariere eine Variable mit Static für den Defaultwert.
3. Fülle diese nur beim ersten Pgmaufruf mit der Konstanten.
4. Gebe die Variable als Default in der Inputbox an.
5. Kontrolliere nach Eingabe in die Box auf...
a) leer (bei Abbruch wie du ja schon weißt) → Abbruch des Pgms
b) gleich Konstante → evtl Wiederholen der Eingabe m./o. Löschen DefaultVariable
c) sonst → normale PgmFortsetzung...
6. ...hier dann auch mit Prüfung auf "alles" usw.
Beim nächsten Pgmaufruf während einer Excel-Sitzung enthält das Inputdefault dann die zuletzt gemachte Eingabe.
Gruß Luc :-?
Anzeige
AW: Suchfunktion - Also, wenn du dich doch...
10.01.2007 15:06:13
tuvux
Hi,
also ich sehe wohl wirklich den Wald nicht! Vielleicht wird es mal Zeit für eine Pause.
Aber hier vielleicht nochmal zur Erklärung:
Mit "Alles" meine ich eigentlich nur einen Platzhalter in der Box, der mir anschließend alle Daten ausspuckt, ähnlich der Windows-Suchfunktion mit "*.exe" für alle EXE Dateien.
Ich kriege es nicht gebacken!
Tuvux
AW: Suchfunktion - Ist das richtig - VBA Nein,...
10.01.2007 15:39:02
Luc:-?
...Tuvux?
Dann hast du dir das Pgm machen lassen oder irgendwas "angepasst". Wenn du es selber geschrieben haben solltest, müsstest du eigentlich mit meinen Hinweisen auskommen. Allerdings ist ein Platzhalter für den Rest eines Ausdrucks was ganz anderes. Das musst du selbstverständlich auch pgm. Automatisch geht das nur, wenn du Methoden verwendest, die diese Fktionalität bereits beinhalten. Müsstest du mal .Find anstelle deines For-Zyklus ausprobieren. Geht ohnehin schneller. Ansonsten musst du mit Instr(...) fragen, ob der jeweils in deinem Zyklus bereitgestellte Begriff den Suchbegriffsteil bis * enthält: Left(gefundbegriff, Instr(suchbegriff, "*") - 1) = Left(suchbegriff, Instr(suchbegriff, "*") - 1 oder Len(suchbegriff) - 1)
Wenn * auch am Anfang stehen kann, wird's etwas komplizierter. Natürlich musst du dann auch alle gefundenen Werte sammeln/ausgeben. Dabei sind unterschiedl Vorgehensweisen möglich.
Gruß Luc :-?
Anzeige
AW: Bitte hier...
10.01.2007 14:41:15
Luc:-?
Tuvux!
:-?

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige