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

Aktualisierung eines Listenfeldes

Aktualisierung eines Listenfeldes
03.06.2006 17:45:59
Olaf
Hallo zusammen,
meine VBA-Kenntnisse sind nicht die besten und ich bin heute an eine Grenze gestossen, wo ich echt nicht mehr weiter weiss. Ich hoffe, einer Eurer Profis kann mir hier helfen. Zum Problem selbst:
Ich habe eine einfache Auswertung mit VBA erstellt, in der ich Daten aus einer SQL-Datenbank in ein Sheet einlese und diese dann in nach bestimmten Werten selektiv auf einem 2. Sheet darstelle. Grundlage für diese Selektion bilden semikolon-getrennte Werte aus einem txt-File, welches in regelmässigen Abständen aktualisiert zur Verfügung gestellt wird. Dieses txt-File per VBA nach Excel
zu importieren klappt einwandfrei. Um das ganze nun etwas komfortabel zu gestalten, habe ich dieses importierte Textfile einem Bereich auf einem 2. Sheet zugeordnet, welcher wiederum als ListFillRange für ein Listenfeld dient. Es soll nun, wenn ich einen Wert aus diesem Listfeld auswähle, die Auswertung entsprechend sortiert neu erstellt werden.
Nun aber beginnt mein Problem. Sobald ich dieses txt-File in aktualisierter Form in den fest definierten Bereich importiere, meint Excel, das Listenfeld nicht mehr erkennen zu müssen. Ich bin also dann nicht mehr in der Lage, einen Wert auszuwählen und nach diesem zu filtern. Das Studium einschlägiger Literatur (VBA-Sprachverzeichnis von Microsoft) brachte mich leider nicht weiter.
Ich hoffe, ich konnte mit meiner doch noch etwas laienhaften Ausdrucksweise das Problem verständlich schildern. Ich wäre euch dankbar, ein paar Hinweise zu erhalten, wo ich da einen Fehler gemacht habe.
Beste Grüße
Olaf

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

Betreff
Datum
Anwender
Anzeige
AW: Aktualisierung eines Listenfeldes
03.06.2006 19:36:00
EtoPHG
Hallo Olaf,
Am besten vergibst Du nach dem VBA-Import einen Namen für die importierten Sätze.
Dann kannst Du den Namen als ListFileRange in der Listbox angeben, statt einer Zellenrange.
Lad mal eine abgespeckte Beispielmappe mit dem VBA Code hoch, dann kann man Dir sicher schnell helfen.
Gruss Hansueli
AW: Aktualisierung eines Listenfeldes
04.06.2006 14:10:20
Olaf
Hallo Hansueli,
danke für Deine Rückantwort. Ich habe Dir unter folgendem Link die Mappe auf den Server gestellt. Vielleicht bringt's Dich weiter.
https://www.herber.de/bbs/user/34161.xls
Beste Grüße
Olaf
Anzeige
AW: Aktualisierung eines Listenfeldes
07.06.2006 00:33:13
EtoPHG
Hallo Olaf,
Ich hab mir Deine Datei mal angeschaut.
Also der Befehl der Dir ev. helfen würde, nach dem Einlesen den Bereich neu zu definieren wäre:

LBStation.ListFillRange = Sheets(2).Name & "!$F$2:$F$" & Sheets(2).Cells(Rows.Count, 6).End(xlUp).Row

Damit kannst Du auch den ersten Tip mit dem Namensbereich vergessen.
Anmerkungen: Du hast über 100 Namen in deinem Sheet definiert, die nicht mehr gültig sind ! Ich würde die mal aufräumen.
Der Code ist mir zu komplex, um nachzuvollziehen, wo jetzt Dein erwähntes Textfile importiert wird. Ich finde nur Query-Objekte die direkt von der DB per SQL einlesen.
Gruss Hansueli
Anzeige
AW: Aktualisierung eines Listenfeldes
07.06.2006 01:14:11
Olaf
Hallo Hansueli,
danke für Deine Antwort. Werde den Befehl mal testen.
Danke auch für den Hinweis mit den Namen. Das scheint mir aber auch ein Problem des Importierens des Textfiles zu sein. Selbst definiert habe ich diese Namen ExterneDaten_xxx nicht. Mal sehen, ob ich das Nachvollziehen kann. Muss ja irgend eine Ursache haben.
Ich melde mich eventuell noch mal bei Dir.
Gruss Olaf
AW: Aktualisierung eines Listenfeldes
07.06.2006 08:30:57
EtoPHG
Hallo Olaf,
Ist mir klar, dass Du die Namen nicht selbst definiert hast. Du machst in deinem Code jedesemal ein QueryObject .ADD auf die gleiche Zellenaddresse. Damit entsteht automatisch ein neues Queryobject mit einer fortlaufenden Nummer. Einfacher ist es diesem QueryObject einen Namen zu geben (z.B. "ImportDaten"), sich nacher auf diesen Namen beziehen und statt dem ADD nur noch die Eigenschaften wie .SQL, .Connection etc. zu verändern und dann eine .Refresh Methode anwenden um die neuen Daten zu importieren. Damit bleibt der Name dann immer gleich und deine Datei wächst nicht so schnell an.
Gruss Hansueli
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige