ich bin wieder am verzweifeln... Für meine Kalkulation Mappe habe ich eine kleine Datenbank angelegt in einen Extra Sheet " Personaldaten" befinden Sich 5 Spalten. Per userform sollen Personalkosten & Umsatzdaten in Textboxen eingegeben werden und zeilen weise in dieser Tabelle gespeichert werden. In Einer List box wird dann das eingetragene Jahr/ Monat als Verweis hinterlegt. Wenn ich dann in der Listbox die Zeile Markiere füllen sich die Textboxen auch wieder mit den Daten. Wie eine kleine Datenbank eben... Soweit klappt auch alles sehr gut...
1.Aber Zwei Dinge bekomme ich nicht hin ich möchte das in der Listbox nicht nur das Jahr.Welche in Spalte 1 gespeichert wird sondern auch der Monat der sich in spalte Zwei Speichert als Name in der Listbox Hinterlegt wird für die Übersicht und weiß nicht wie... 2. Als Zweites möchte ich das wenn ich eine Zeile in der Listbox Markiere,das ich sie auch per Kommando Button Löschen kann. Und dann die richtige zeile gelöscht wird von A bis E. ( Bis E weil sich da noch eine weitere Hilfs spalte befindet. wo die Formel nicht gelöscht werden darf)
'Löschen Schaltfläche Ereignisroutine Private Sub CommandButton2_Click() Dim LZeile As Long
If ListBox1.ListIndex = -1 Then Exit Sub
Do While Trim(CStr(Sheets("Personalkosten").Cells(LZeile, 1).Value)) <> ""
If ListBox1.Text = Trim(CStr(Sheets("Personalkosten").Cells(LZeile, 1).Value)) Then
Sheets("Personalkosten").Rows(CStr(LZeile & ":" & LZeile)).Delete Er Markiert mir immer diese Zeile bei dem versuch den gewählten Beitrag zu Löschen
Call UserForm_Initialize If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
Exit Do
End If
LZeile = LZeile + 1 Loop
End Sub
Im Anhang ist die Kalkulation Mappe / die Userform heißt Personal erfassung.
Vielleicht könnt Ihr mir ja wieder aus der Patsche Helfen, ich hoffe das es verständlich war und freue mich auf eure Kreativen Köpfe.
Hättest du jetzt noch eine Idee für die erste Frage?
Zitat:"1.Aber Zwei Dinge bekomme ich nicht hin ich möchte das in der Listbox nicht nur das Jahr.Welche in Spalte 1 gespeichert wird sondern auch der Monat der sich in spalte Zwei Speichert als Name in der Listbox Hinterlegt wird für die Übersicht und weiß nicht wie..."
hmm wenn ich in der Userform einen Eintrag Schreibe und Ihn dann Speicher, Zeigt er in der Listbox das Jahr an was in der Userform eingetragen wurde , ich würde gerne das er als name in der List das Angegebene Jahr und den Angegebenen Monat in der Listbox einträgt.
Beispiel: wenn ich in der Userform Das Jahr 2015 und den Monat Januar eingebe und Ihn dann Speicher zeigt er nur das Jahr in der Listbox, jetzt noch mit dem Angegebenen Monat da neben wäre Super.
18.09.2018, 19:33 (Dieser Beitrag wurde zuletzt bearbeitet: 18.09.2018, 19:44 von WillWissen.
Bearbeitungsgrund: Codetags
)
Das mit den namen in der Listbox konnte ich jetzt hinbekommen. Ich habe eine weitere spalte A mit einer formel versehen wo er aus den beiden Spalten B & C den namen dann generiert und diese in der Listbox ausgibt. Nur leider Funktioniert es jetzt nicht mehr richtig mit dem Löschen Button..
Wenn ich jetzt einen Markierten Eintrag Löschen möchte, löscht er Ihn korrekt aus der Zeile raus.. aber wenn ich gleich einen Neuen Eintrag Hinzufügen möchte. Setzt er mir die Daten in die eigentliche Leere Zeile, als auch eine Zeile weiter.. ( Siehe Bild im Anhang)
Und wenn er was Löscht, Zeigt dann auch in der ersten Spalte der den Namen aus B & C generiert =WENNFEHLER((#BEZUG!&" "BEZUG!);"")
Ich hoffe du kannst mir nochmal helfen......
Hier der Komplette Code:
Code:
Option Explicit Option Compare Text Private Sub CommandButton1_Click() ' Neuer Eintrag Button Dim LZeile As Long
LZeile = 2 Do While Trim(CStr(Sheets("Personalkosten").Cells(LZeile, 2).Value)) <> "" LZeile = LZeile + 1 'Nächste Zeile bearbeiten Loop
End Sub 'Löschen Schaltfläche Ereignisroutine Private Sub CommandButton2_Click() Dim LZeile As Long
If ListBox1.ListIndex = -1 Then Exit Sub
LZeile = 2 Do While Trim(CStr(Sheets("Personalkosten").Cells(LZeile, 1).Value)) <> ""
If ListBox1.Text = Trim(CStr(Sheets("Personalkosten").Cells(LZeile, 1).Value)) Then Worksheets("Personalkosten").ListObjects("Personalkosten").ListRows(LZeile - 1).Delete Call UserForm_Initialize If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0
Exit Do
End If
LZeile = LZeile + 1 Loop
End Sub
Private Sub CommandButton3_Click() 'Speichern
Dim LZeile As Long
If ListBox1.ListIndex = -1 Then Exit Sub
If Trim(CStr(Box1.Text)) = "" Then
MsgBox "Sie müssen das Jahr eingeben!", vbCritical + vbOKOnly, "FEHLER!"
Exit Sub End If
LZeile = 2 Do While Trim(CStr(Sheets("Personalkosten").Cells(LZeile, 2).Value)) <> ""
If ListBox1.Text = Trim(CStr(Sheets("Personalkosten").Cells(LZeile, 2).Value)) Then
End Sub Private Sub UserForm_Activate() If ListBox1.ListCount > 0 Then ListBox1.ListIndex = 0 End Sub Private Sub UserForm_Initialize() Dim LZeile As Long
(18.09.2018, 19:33)toto18 schrieb: Das mit den namen in der Listbox konnte ich jetzt hinbekommen. Ich habe eine weitere spalte A mit einer formel versehen wo er aus den beiden Spalten B & C den namen dann generiert und diese in der Listbox ausgibt. Nur leider Funktioniert es jetzt nicht mehr richtig mit dem Löschen Button..
ich hatte das ein wenig anders gemacht.
Code:
Private Sub UserForm_Initialize() Dim LZeile As Long
habe es eben mal geändert leider, bleibt das Problem bestehen ich finde nur den Fehler nicht.. Nach dem Löschen und wenn ich wieder einen Neuen Eintrag hinzufüge.. schreibt er es immer noch Zeilen versetzt von einander... Ich habe das gefühl das es vielleicht an der Formel in der ersten spalte Liegt oder vielleicht am Button der den Neuen Eintrag hinzufügt. Im Anhang ist noch mal die Aktuelle Datei... Vielleicht hast du ja nochmal ein paar Minuten über :20: