Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Daten in Tabelle mit Listbox ändern
20.12.2017 14:14:34
Sandro
Liebes Forum
Ich komme nicht mehr weiter und brauche Hilfe.
In einem UserForm möchte ich Daten aus der Tabelle "Zeiterfassung" in eine ListBox ziehen. Dort dann die gewünschte Zeile mit den gewünschten Daten selektieren und in TextBoxen darunter den Inhalt ergänzen. Dann per Klick auf "Erfassen" die Daten "Arbeitszeit Totel" wieder zurück in die Tabelle schreiben, natürlich zum richtigen Datensatz. Wenn die Checkbox "Tätigkeit abgeschlossen" markiert wird, soll Zusätzlich das Datum in der Spalte "Effektives Ende" eingetragen werden. Wenn auch noch die Checkbox "Auftrag abgeschlossen" angewählt wird, soll das Datum in der Tabelle "Projektüberwachung" beim entsprechenden Auftrag bei "Effektives Ende" eingefügt werden.
Solange ich keine Checkbox anwähle, klappt alles, doch sobald ich 2 Werte (Zeit & Datum) zurückschreiben will, schreibt der Code den ersten Wert an die richtige Stelle, den 2. aber in die Überschriftenzeile. Der Teil mit dem Datum in die Tabelle "Projektüberwachung" zu schreiben, scheint gar nicht zu funktionieren.
Zur Vereinfachung habe ich hier meine Datei: https://www.herber.de/bbs/user/118443.xlsm
Irgendwo hier muss ich einen Fehler drin haben:
Private Sub Erfassen_Click()
If Ende_Tätigkeit.Text = "" Or Arbeitszeit.Text = "" Then
MsgBox "Alle Pflichtfelder ausfüllen!" 'wenn eines der Felder leer ist dann Meldung
Else
Erfassen.Visible = False
End If
If Tätigkeit_Abgeschlossen Then
LetzteZeile = Sheets("Zeiterfassung").Cells(Rows.Count, 1).End(xlUp).Row
With Range("Zeiterfassung!A4:H" & LetzteZeile)
Me.Tag = "1"
.Cells(ListBox1.ListIndex + 1, 6).Value = (Ende_Tätigkeit.Text)
.Cells(ListBox1.ListIndex + 1, 8).Value = (Arbeitszeit_Total.Text)
Me.Tag = ""
End With
Else
LetzteZeile = Sheets("Zeiterfassung").Cells(Rows.Count, 1).End(xlUp).Row
With Range("Zeiterfassung!A4:H" & LetzteZeile)
Me.Tag = "1"
.Cells(ListBox1.ListIndex + 1, 8).Value = CDbl(Arbeitszeit_Total.Value)
Me.Tag = ""
End With
End If
If Auftrag_Abgeschlossen Then
Dim Zelle As Range
Dim Name As String
Name = ".List(.ListIndex, 0)"
iRow = Sheets("Projektüberwachung").Cells(Rows.Count, 1).End(xlUp).Row
If Name = "" Then Exit Sub
For Each Zelle In Worksheets("Projektüberwachung").Range("A5:A" & iRow)
If Zelle = Name Then
Zelle.Offset(0, 6).Value = Ende_Tätigkeit.Text
Exit Sub
End If
Next Zelle
Exit Sub
End If
End Sub

Kann mir jemand auf die Sprünge helfen?
Gruss
Sandro

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten in Tabelle mit Listbox ändern
20.12.2017 17:43:40
onur
Du solltest mal lernen, Code strukturiert zu schreiben - da kriegt man ja Kopfschmerzen.
Dim´s gehören ausserdem immer nach ganz oben.
  .Cells(ListBox1.ListIndex + 4, 6).Value = (Ende_Tätigkeit.Text)
.Cells(ListBox1.ListIndex + 4, 8).Value = (Arbeitszeit_Total.Text)

Listindex ist 0 beim 1. Wert, aber dieser steht in Zeile 4!
AW: Daten in Tabelle mit Listbox ändern
21.12.2017 06:46:11
Sandro
Hallo Onur
Da gebe ich dir vollkommen Recht, ich bekomme manchmal selbst Kopfschmerzen. Eine Schulung/ein Kurs ist bereits geplant.
Zurück zum Problem, deine Anpassung hat das Problem nicht behoben. Die Daten werden immer noch am falschen Ort geschrieben. Jetzt werden beide in der falschen Zeile zurückgegeben.
Anzeige
AW: Daten in Tabelle mit Listbox ändern
21.12.2017 06:52:34
Sandro
Hallo Onur
Da gebe ich dir vollkommen Recht, ich bekomme manchmal selbst Kopfschmerzen. Eine Schulung/ein Kurs ist bereits geplant.
Zurück zum Problem, deine Anpassung hat das Problem nicht behoben. Die Daten werden immer noch am falschen Ort geschrieben. Jetzt werden beide in der falschen Zeile zurückgegeben.
AW: Daten in Tabelle mit Listbox ändern
21.12.2017 07:04:49
onur
Hast du denn ALLE geändert oder nur die beiden von mir genannten ?
Schaue ich mir mal an, wen ich wieder zu Hause bin.
Du brauchst keine Schulung dafür, musst dir nur angewöhnen, alles was INNERHALB einer Schleife ist,. mit "Tab" eingerückt zu schreiben, egal ob For-Next, If-Then oder Do-While (usw).
Anzeige
AW: Daten in Tabelle mit Listbox ändern
21.12.2017 08:27:33
Sandro
Hallo Onur
Natürlich nur die beiden, die du genannt hast. Mehr als die 2 habe ich ja nicht. Hast du vielleicht übersehen, dass die Range der ListBox auch erst bei A4 beginnt oder spielt das keine Rolle?
Danke für den Hinweis, ich werde das auf jeden Fall in Zukunft beachten. :)
Gruss
Sandro
AW: Daten in Tabelle mit Listbox ändern
21.12.2017 17:10:13
onur
Paar zeilen tiefer war noch mal etwas mit listbox.listindex+1.
Der FÜLLbereich war ab zeile 4, heisst aber nicht, dass sie auch automatisch dorthin zurückgeschrieben werden.
AW: Daten in Tabelle mit Listbox ändern
21.12.2017 17:12:25
onur
Paar zeilen tiefer war noch mal etwas mit listbox.listindex+1.
Der FÜLLbereich war ab zeile 4, heisst aber nicht, dass sie auch automatisch dorthin zurückgeschrieben werden.
Anzeige

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige