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

Listbox

Listbox
11.02.2004 14:50:39
Gerka
Hallo!
Ich habe ein für die meisten von Euch eher simples Problem, an dem ich mir als VBA Anfänger aber die Zähne ausbeisse.
Ich habe in der Spalte A10 bis Ax (für x -> beliebig, s.u.) Strings stehen (wie z.B. Mueller oder Heinz), welche aber mit Leer-Zellen unterbrochen werden.
Beispiel:
A10: Mueller
A11:
A12:
A13:
A14: Heinz
A15:
A16:
...
Irgendwann sind ab irgendeiner Zelle in der Spalte A nach unten hin gesehen keine Namen mehr vorhanden.

WAS ICH BISLANG HABE:
---------------------
In der Tabellenlasche habe ich einen Button eingefügt, den ich wie folgt progammiert habe:

Private Sub CommandButton_Click()
USERFORM.lst_Namen.RowSource = ("A26:A100")
USERFORM.Show
End Sub

Die Listbox "lst_Namen" rufe ich in einem Userformular mit Namen USERFORM und diese füllt sich auch korrekt mit den Spalten A26 bis A100. Allerdings sind natürlich alle leeren zellen auch als eigenständiger Eintrag vorhanden, nämlich wie folgt (nix bedeutet, der Eintrag ist leer):
Mueller
(nix)
(nix)
(nix)
Heinz
(nix)
(nix)
...
WAS ICH MÖCHTE:
---------------
1.
Ich möchte mir nur die Zellen in der Spalte A25 ff. in der Listbox anzeigen lassen, die in der Tabellenlasche nicht leer sind. Also die Listbox sollte wie folgt aussehen:
Mueller
Heinz
2.
Wenn ab bspw. der Spalte A14 nur noch leere Zellen sind (z.B. würde eine Abfrage ausreichen, die überprüft, ob die nächsten 25 Zellen nach unten gesehen leer sind), so soll der VBA Code dies merken und als letzten Eintrag in diesem Beispiel den "Heinz" nennen.
Vielen Dank im Voraus für Eure Hilfe und viele Grüße,
Gerka

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

Betreff
Datum
Anwender
Anzeige
AW: Listbox
11.02.2004 15:33:25
Dieter Klemke
Hallo Gerka,
du kannst das z.B. so machen:

Private Sub CommandButton_Click()
Dim ws As Worksheet
Dim letzteZeile As Long
Dim zeile As Long
Set ws = ThisWorkbook.Worksheets(1)
letzteZeile = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row
With UserForm.lst_Namen
.Clear
For zeile = 1 To letzteZeile
If Not IsEmpty(ws.Cells(zeile, 1)) Then
.AddItem ws.Cells(zeile, 1)
End If
Next zeile
End With
USERFORM.Show
End Sub

MfG
Dieter
AW: Listbox
11.02.2004 16:47:53
Gerka
Hallo Dieter,
herzlichen Dank für Deine Hilfe. Ich habe Deinen Code jetzt so übernommen und er funktioniert einwandfrei! Du scheinst das ja hauptberuflich zu machen, ansonsten könnte ich mir Deine schnelle Antwort gar nicht erklären!!
Ich habe den Code jetzt unter
https://www.herber.de/bbs/user/3571.xls
hochgeladen - das ist meine Hauptdatei, in der ich arbeite. Wenn man sich diese Datei anschaut, kann man jetzt ganz einfach alle Namen exklusive der leeren Zellen ab den Zellen A15 bis Ax in der Listbox auflisten (einfach auf den Button klicken).
Meine Frage:
1.
Wenn man in der Datei auf den Button klickt, wird einem in dem Haupt-UF die Liste mit allen Namen (hier 2 St.) angezeigt. Wenn ich jetzt einen der Namen in der UF markiere (er wird blau) und auf einen der in diesem UF enthaltenen Buttons namens "Name des Elternteils ändern" klicke (diese UF ist auch bereits erstellt - alles in der Datei drin), soll er mir in der ersten Textbox (tb_NameAlt) dieser weiteren Sub-UF den Namen erneut anzeigen (bislang ist in der Datei diese TB noch leer). In der zweiten Textbox (tb_NameNeu) soll der Benutzer einen neuen Namen angeben können.
Und jetzt kommt's: Beim Klicken auf OK in dem Sub-UF (nun taucht wieder die ursprüngliche UF mit der Liste auf) soll der neu eingegebene Name (aus tb_NameNeu) zum einen parallel in der Listbox geändert werden (z.B. "Heinz" in "Thomas") als auch in der Hauptdatei (in diesem Fall: Zelle A19, wo "Heinz" steht, durch "Thomas" ersetzen). Wie schafft man es, dieses in der hochgeladenen Excel-Datei umzusetzen?
2.
Des Weiteren ist in der UF (wo die Hauptliste auch ist) ein weiterer Button namens "Ganz neues Elternteil erstellen". Beim KLicken hierdrauf öffnet sich bislang schon ein neues UF, wo man einfach einen weiteren Elternteilnamen angeben kann (ohne Kinder, die werden dann anderweitig ergänzt). Auch hier soll beim KLicken auf OK der neue Name sowohl in der Liste des Haupt-UF angezeigt werden als auch in der Excel-Datei in der A-Spalte ganz unten an: in diesem Fall in Zelle A22.
Wie kann man diese beiden Punkte umsetzen? Ich wäre sehr erfreut, jemand könnte mir die hochgeladene Datei editieren.
Ich weiß, daß dies viel Stoff zu lesen ist. Ich konnte es aber leider nicht komprimierter darstellen. Es handelt sich hierbei wahrscheinlich um ein sehr simples Problem, aber ich bemühe mich soviel wie möglich zu verstehen - was nicht immer klappt.
Daher vielen Dank im Voraus für Eure Hilfe!!!!
Gerka
Anzeige
AW: Listbox
11.02.2004 19:15:48
Dieter Klemke
Hallo Gerka,
ich benutze das Forum gern um ein bißchen VBA zu üben.
Aus diesem Grund habe ich auch deine weitergehenden Wünsche realisiert (hoffentlich).
Die Datei findet sich unter
https://www.herber.de/bbs/user/3579.xls
Falls noch Probleme auftauchen, melde dich bitte.
MfG
Dieter
AW: Listbox
12.02.2004 13:57:58
Gerka
Hallo Dieter,
da kann ich nur erneut herzlichen Dank für Deine Hilfe sagen! Der Code funktioniert super. Allerdings hat sich anscheinend ein kleiner Fehler eingeschlichen, welcher wie folgt reproduzierbar ist:
1. Öffnen Deiner Datei
2. Klick auf den Button "Eltern bearbeiten"
3. Markiere "Heinz"
4. Klick auf Button "Name des Elternteils ändern"
5. Gebe "123" ein
6. Bestätige mit "Ok"
7. Markiere nun in der Liste "Meier"
8. Klick auf den Button "Eltern bearbeiten"
9. Klick auf "Abbrechen"
10. Markiere "123" in der Liste
11. Nun zeigt er als "Alten Namen" nicht die 123 an, sondern den ersten: "Meier"
Er ändert zwar den richtigen, aber er zeigt den falschen an.
An welcher stelle des VBA Codes muß ich eine Änderung vornehmen, damit er die Namen immer richtig ausliest?
Vielen Dank im Voraus!!!!!!!!!!!
Gerka
Anzeige
HAT SICH ERLEDIGT
12.02.2004 14:25:09
Gerka
Hallo Dieter,
hat sich erledigt. Die Lösung ist simpel: Beim Aufruf von UFs aus UFs sollte man dieselben nach Abschluss der Aktionen mit "unload" entfernen, nicht nur mit "hide". D.h. beim erneuten Aufruf werden die aktuellen Daten wieder eingelesen und keine alten mehr angezeigt.
Viele Grüße,
Gerka

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige