Lars: Makros : Datenselect

Hallo,

Ich habe ein Problem :
Ich habe mehere Excel-Sheets und soll da jetzt nach Eingaben bestimmte Datensätze finden, die bestimmte Kriterien erfüllen. Also praktisch sowas :
Auf sheet 1 gebe ich einen Wert an.
Aus sheet 2 ,3 und 4 will ich nun die Zeilen finden die dieses Krterium erfüllen und diese dann auf sheet 1 ausgeben.
Wie kann ich das machen und geht das überhaupt ?
Soweit ich weiss gibt es ja keinen sql-wrapper für excel, also scheidet eine einfache sql-Abfrage schon mal aus.
Eine Schleife um einfeach die Felder zu überprüfen finde ich auch nicht so schön...
Gibt es eine elegante Lösung in vba ?

Und was anderes...Wie fülle ich ein "Kombinationsfeld" in excel mit daten aus einem anderen Sheet ?

Vielen Dank & Gruss

  1. Hi,

    wenn du nach sql-wrappper suchst, wirst du vielleicht nichts finden. Jedoch kann man MS Excel sowohl via OleDB- als auch via ODBC Datenbankprovider mit (limitiertem) SQL-Dialekt (Jet-SQL) abfragen. Sheets verhalten sich dann wie Tabellen.

    Bist du sicher, dass ein "Kombinationsfeld" in Excel eine potentielle Lösung darstellt? Oder meinst du ein Kombinationsfeld auf einem VBA-Formular?

    Für Auswahllisten direkt in Excel-Zellen gibt es im Menü "Daten" die Möglichkeit "Gültigekeit"- sbereiche zu definieren, die u.a. von anderen Zellen kommen.

    Weiterhin gibt es eingebaute Funktionen (Lookup & Reference), wie z.b. Choose(), Index(), Lookup() usw. Deine Excel Hilfe bietet dir Erklärung und sicher auch Beispiele.

    Ciao. Frank

  2. Hi,

    Auf sheet 1 gebe ich einen Wert an.
    Aus sheet 2 ,3 und 4 will ich nun die Zeilen finden die dieses Krterium erfüllen und diese dann auf sheet 1 ausgeben.
    Wie kann ich das machen und geht das überhaupt ?

    ja, mit VBA.

    • Zeilenzähler auf die erste auszufüllende Zeile -1 setzen.
    • Auf Sheet1 das Change-Ereignis abfangen, ggf. noch den Target bzw. bestimmte Eigenschaften abfragen.
    • Per Schleife Find über alle Blätter laufen lassen; ggf. noch die Bereiche eingrenzen, wie z. B. bestimmte Spalten.
      Bei jedem gefundenen Ergebnis:
    • Zeilenzähler um 1 erhöhen.
    • Über die Column-Eigenschaft des gefundenen Objekts die gewünschten Zellen auf Sheet1, in die Zeile Zeilenzähler eintragen lassen.
    • Nicht vergessen, vor dem Start den Bereich mit den Suchergebnissen zu löschen.

    Und was anderes...Wie fülle ich ein "Kombinationsfeld" in excel mit daten aus einem anderen Sheet ?

    Da gibt es verschiedene Möglichkeiten, z. B. ListFillRange. Ich bevorzuge aber immer AddItem.

    Hilft's?

    Viele Grüße

    Jörg