Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1036to1040
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
Inhaltsverzeichnis

Listbox löscht oberste Zeile (Beschriftung)

Listbox löscht oberste Zeile (Beschriftung)
08.01.2009 23:36:11
Lisa
Hi Leute
Habe ein problemchen.
Der untenstehende Code habe ich erweitert. So weit so gut.
Wenn ich die UF öffne und noch nicht in die Listbox klicke sondern direkt den Commandbutton Datensatz löschen betätige, löscht er mir die oberste Listenzeile also den Listindex. (Beschriftung der Spalten).
Wenn ich aber beim Oeffnen der UF zuerst in die Listbox mit der Maus gehe und dort einen Datensatz anklicke und danach den Commandbutton löschen betätige, löscht er wie es sein sollte diesen Datensatz.
Ist es möglich, daß der Cursor beim Datensatz eintragen per Commandbutton nicht immer wieder am Anfang der Listbox springt sondern dort bleibt wo ich den Datensatz eben neu eingetragen habe oder besser eine Zeile weiter unten.
Für Eure hilfe danke ich Euch.
Grüsschen
Lisa

Private Sub UserForm_Activate()
Dim rngSource As Object
Dim intColums As Integer
ListBox1.ColumnWidths = "3,4cm;5,9cm;0,8cm;1,4cm;6,0cm;2,0cm;2,0cm"
With Worksheets("Userform2")
Set rngSource = .Range("A1").CurrentRegion
Set rngSource = rngSource.Offset(1, 1).Resize(rngSource.Rows.Count - 1, rngSource. _
Columns.Count)
With Me.ListBox1
.ColumnCount = 7 'intColums
.ColumnHeads = True
.RowSource = "Userform2!" & rngSource.Address
End With
End With
Set rngSource = Nothing
End Sub



Private Sub ListBox1_Click()
' bei Klick in die Listbox werden die daten aus der Tabelle eingelesen
If ListBox1.Tag  "" Then Exit Sub
Dim Datensatz As Integer
Datensatz = UserForm1.ListBox1.ListIndex + 2
With UserForm1
.TextBox1.Text = Worksheets("Userform2").Cells(Datensatz, 1)
.TextBox2.Text = Worksheets("Userform2").Cells(Datensatz, 3)
.TextBox3.Text = Worksheets("Userform2").Cells(Datensatz, 4)
.TextBox4.Text = Worksheets("Userform2").Cells(Datensatz, 5)
.TextBox5.Text = Worksheets("Userform2").Cells(Datensatz, 6)
.TextBox6.Text = Worksheets("Userform2").Cells(Datensatz, 7)
.TextBox7.Text = Worksheets("Userform2").Cells(Datensatz, 8)
End With
End Sub



Private Sub CommandButton1_Click()
' Datensatz eintragen
Dim Datensatz As Integer
Datensatz = UserForm1.ListBox1.ListIndex + 2
ListBox1.Tag = 1
Worksheets("Userform2").Cells(Datensatz, 1) = TextBox1
Worksheets("Userform2").Cells(Datensatz, 3) = TextBox2
Worksheets("Userform2").Cells(Datensatz, 4) = TextBox3
Worksheets("Userform2").Cells(Datensatz, 5) = TextBox4
Worksheets("Userform2").Cells(Datensatz, 6) = TextBox5
Worksheets("Userform2").Cells(Datensatz, 7) = Me.TextBox6.Text ' * 1
Worksheets("Userform2").Cells(Datensatz, 8) = Me.TextBox7.Text ' * 1
ListBox1.Tag = ""
End Sub



Private Sub CommandButton2_Click()
' Datensatz löschen
Dim Datensatz As Integer
Datensatz = UserForm1.ListBox1.ListIndex + 2
ListBox1.Tag = 1
Worksheets("Userform2").Cells(Datensatz, 1) = TextBox1
Worksheets("Userform2").Cells(Datensatz, 3) = TextBox2
Worksheets("Userform2").Cells(Datensatz, 4) = TextBox3
Worksheets("Userform2").Cells(Datensatz, 5) = Delete
Worksheets("Userform2").Cells(Datensatz, 6) = Delete
Worksheets("Userform2").Cells(Datensatz, 7) = Delete
Worksheets("Userform2").Cells(Datensatz, 8) = Delete
ListBox1.Tag = ""
Unload UserForm1
UserForm1.Show
End Sub


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

Betreff
Datum
Anwender
Anzeige
AW: Listbox löscht oberste Zeile (Beschriftung)
08.01.2009 23:54:55
Ramses
Halllo

Private Sub CommandButton2_Click()
' Datensatz löschen
'Abbrechen wenn kein eintrag gewählt wurde
If Me.Listbox1.Listindex = -1 then Exit Sub
Dim Datensatz As Integer
Datensatz = UserForm1.ListBox1.ListIndex + 2
ListBox1.Tag = 1
Worksheets("Userform2").Cells(Datensatz, 1)= TextBox1
Worksheets("Userform2").Cells(Datensatz, 3) = TextBox2
Worksheets("Userform2").Cells(Datensatz, 4) = TextBox3
'Was bitte ist "Delete" ?
Worksheets("Userform2").Cells(Datensatz, 5) = Delete
Worksheets("Userform2").Cells(Datensatz, 6) = Delete
Worksheets("Userform2").Cells(Datensatz, 7) = Delete
Worksheets("Userform2").Cells(Datensatz, 8) = Delete
ListBox1.Tag = ""
Unload UserForm1
UserForm1.Show
End Sub


Gruss Rainer

Anzeige
AW: Listbox löscht oberste Zeile (Beschriftung)
09.01.2009 00:06:57
Lisa
Hi Rainer
Danke die Bezeichnungsspalte bleibt jetzt erhalten.
Delete?
Diese 4 Boxen wird der Inhalt gelöscht. Die oberen drei Boxen sind gesperrt.
Kannst Du mir sagen wieso beim Eintragen in einer Spalten weiter unten (Die Listbox hat ein Scrollbalken)
sofort der Anfang der Listbox gezeigt wird. D.h. ich immer wieder nach unten scrollen wo ich einst war.
Grüsschen
Lisa
AW: Listbox löscht oberste Zeile (Beschriftung)
09.01.2009 00:14:04
Ramses
Hallo
"...Diese 4 Boxen wird der Inhalt gelöscht...."
Welche Boxen denn ?
Du willst doch Zellen in der Tabelle löschen !?
Und nochmal: Was soll "Delete" sein ? In diesem Kontext ist das GAR NICHTS sondern wird als Variablenname erkannt/verwendet der bisher noch nicht gefüllt/dimensioniert ist, bzw. allenfalls unter extremen Goodwill vielleicht noch als Bezeichnung für eine Textbox durchgeht. Aber das erkennt EXCEL SO mit Sicherheit nicht
Zudem ist das ein geschützter Begriff, bzw. ein VBA-Commando uns sollte ABSOLUT nicht als Variablenname verwendet werden.
Zu deiner Frage:
Kann ich nicht beantworten weil ich keine Lust habe die Tabelle nachzubauen um zu sehen was da alles passiert :-)
Gruss Rainer
Gruss Rainer
Anzeige
AW: Listbox löscht oberste Zeile (Beschriftung)
09.01.2009 10:24:25
Lisa
Hi Rainer
Schlecht gelaunt?
Niemand hat gesagt, daß Du das nachbauen musst. War nur eine Frage ob Du evt. weisst, warum in einer Listbox die etwas länger ist (also mit einem Scrollbalken) beim Eintragen der Scrollbalken nicht in der gleichen Position bleibt sondern immer wieder in Anfangszustand hochgeht.
Trozdem einen schönen Tag
MFG
Lisa
AW: Listbox löscht oberste Zeile (Beschriftung)
09.01.2009 11:34:00
Daniel
Hi
nja, meistens weiss man es auch nicht so genau, und hat nur eine Idee, woran es liegen könnte.
diese Idee möchte man natürlich überprüfen, bevor man hier ne Antwort postet, schließlich will man ja eine korrekte und hilfreiche Antwort geben und nicht irgendwelchen Blödsinn schreiben.
Hierzu braucht man eine Datei, die den Fehler oder das Problem enthält, das kostet Zeit und mühe (insbesondere bei komplexen Aufgabenstellungen wie Userforms).
der Fragesteller hat aber diese Datei bereits vollständig vorliegen und bräuchte sie nur hochladen.
du darfst nicht vergessen, daß hier jeder freiwillig und unentgeltlich antwortet, von daher sollte man es als Fragesteller dem Antworter schon so leicht wie möglich machen.
Gruß, Daniel
Anzeige
AW: Listbox löscht oberste Zeile (Beschriftung)
09.01.2009 11:49:00
Lisa
Hi Daniel
Sorry. Will mich bei Rainer entschuldigen. Ist ein wenig heftig rüber gekommen.
https://www.herber.de/bbs/user/58211.xls
Habe mal die Datei hochgeladen.
Die Datei läuft jetzt super. Natürlich nicht mit den richtigen Daten.
Es geht darum, dass wenn ich in der Listbox ein wenig weiter unten bin und dort ein Eintrag mache springt die Listbox wieder auf den Urzustand d.h. scrollt ganz nach oben an den Anfang.
Für mich bedeutet dies, bei grossen Datenmengen immer wieder nach unten zu scrollen wo ich die letzte Eintragung gemacht habe.
Grüße
Lisa
Anzeige
AW: Listbox löscht oberste Zeile (Beschriftung)
09.01.2009 12:25:25
Daniel
Hi
ändere mal das Makro so ab, dann sollte es funktionieren:

Private Sub CommandButton1_Click()
' Datensatz eintragen
Dim Datensatz As Integer
Dim ScrollPos As Integer
ScrollPos = UserForm1.ListBox1.TopIndex
Datensatz = UserForm1.ListBox1.ListIndex + 2
ListBox1.Tag = 1
Worksheets("Userform2").Cells(Datensatz, 1) = TextBox1
Worksheets("Userform2").Cells(Datensatz, 3) = TextBox2
Worksheets("Userform2").Cells(Datensatz, 4) = TextBox3
Worksheets("Userform2").Cells(Datensatz, 5) = TextBox4
Worksheets("Userform2").Cells(Datensatz, 6) = TextBox5
Worksheets("Userform2").Cells(Datensatz, 7) = Me.TextBox6.Text
Worksheets("Userform2").Cells(Datensatz, 8) = Me.TextBox7.Text
ListBox1.Tag = ""
 ListBox1.TopIndex = ScrollPos
End Sub


Gruß, Daniel

Anzeige
AW: Listbox löscht oberste Zeile (Beschriftung)
09.01.2009 13:39:16
Lisa
Hi Daniel
Kleine Veränderung grosse Wirkung. Super, super, super
Cool wie Du das hingekriegt hast.
Vielen Dank nochmals
Herzliche Grüße
Lisa (aus München)

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige