Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Eingabemaske mit Eingabe, Bearbeiten und Löschen

Forumthread: Eingabemaske mit Eingabe, Bearbeiten und Löschen

Eingabemaske mit Eingabe, Bearbeiten und Löschen
27.08.2024 14:23:08
Grimrogg
Hallo,

ich habe eine Datei erstellt und eine entsprechende UserForm definiert über die ich neue Einträge erstelle.
Mein Problem ist, ich möchte bestehende Einträge aufrufen und ggf. bearbeiten und/oder löschen können.

Meine Beispieldatei: https://www.herber.de/bbs/user/171849.xlsm

Könnt ihr mir hierbei bitte helfen.

Vielen Dank im Voraus.
Anzeige

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

Betreff
Datum
Anwender
Anzeige
AW: Eingabemaske mit Eingabe, Bearbeiten und Löschen
27.08.2024 15:05:45
Alwin Weisangler
Hallo,

die Variante, welche du auf das Tabellenblatt gebaut haben wolltest, hast du verworfen? Da haben ja nur noch wenige Sachen gefehlt.

Ich habe mal schnell deine ursprüngliche Anfrage nebst Eintrag löschen, Listbox scrollen, spaltenweise sortieren und filtern noch zu Ende gebaut.

Große Teile meiner Vorgehensweise, so wie ich es dir gebaut habe, kannst du mit erforderlichen Anpassungen für die Userform verwenden.

Versuche ruhig mal, ob du dies mit etwas Eigeninitiative + Geduld selbst hinbekommst.
Wenn du was nicht verstehst kannst du hier nachfragen und es wird dir erklärt.

https://www.herber.de/bbs/user/171850.xlsm


Gruß Uwe
Anzeige
AW: Eingabemaske mit Eingabe, Bearbeiten und Löschen
27.08.2024 15:58:10
Grimrogg
Danke für deine Hilfe.

Wie kann ich im Tabellenreiter "input" die Header der Box anpassen, dass die Spalte Wer und mit Wem noch angezeigt wird?
Und wo ändere ich das Feld Status, dass ich ein Dropdown für die verschieden Stati einstelle?
AW: Eingabemaske mit Eingabe, Bearbeiten und Löschen
27.08.2024 18:54:32
ralf_b
im Makro listboxladen ist die Zeile .ColumnWidths = "0;60;50;100;250;140;0;0;0;0" Hier werden die Spalten sichtbar wert > 0 oder eben wert =0 unsichtbar gemacht.

dazu mußt du dann noch die Textfelder für die Überschriften neu anordnen.

ein Dropdown für den Satus ist doch eigentlich nicht nötig, da der Status durch eine Formel anhand der Kategorie festgelegt wird.
Anzeige
AW: Eingabemaske mit Eingabe, Bearbeiten und Löschen
27.08.2024 20:45:23
Alwin Weisangler
Hallo,

als Ergänzung zu Ralfs Erläuterungen:
Dem neu hinzugefügten Kopflabel kannst du adäquat zu den MouseDown Ereignisprozeduren der bereits Vorhanden Spaltenlabels die Sortierfunktion zuweisen (Maus Rechtsklick/Linksklick).
Um die Formel bei einem neuen Datensatz mitzugeben tausche diese Prozedur aus:


Sub NeuerDatensatz()
Dim lz&, i&, arrDaten(1 To 1, 1 To 9), arr(): arr = Array("C4", "C6", "C8", "C10", "C13", "G13", "K13", "N13", "Q13")
For i = 0 To UBound(arr)
arrDaten(1, i + 1) = Tabelle1.Range(arr(i)).Value
If i = 1 Then arrDaten(1, i + 1) = Replace(arrDaten(1, i + 1), ",", "" & vbCrLf & "")
Tabelle1.Range(arr(i)) = ""
Next i
With Tabelle2
lz = .Cells(Rows.Count, 3).End(xlUp).Row
.Range("H" & .Cells(Rows.Count, 3).End(xlUp).Row).Copy .Range("H" & .Cells(Rows.Count, 3).End(xlUp).Row + 1)
.Range("I" & .Cells(Rows.Count, 3).End(xlUp).Row).AutoFill Destination:=.Range("I" & .Cells(Rows.Count, 3).End(xlUp).Row & ":I" & .Cells(Rows.Count, 3).End(xlUp).Row + 1), Type:=xlFillDefault
.Range("A" & .Cells(Rows.Count, 3).End(xlUp).Row + 1).Resize(UBound(arrDaten, 1), UBound(arrDaten, 2) - 1) = arrDaten
End With
ListboxLaden
ListboxFiltern
End Sub


Gruß Uwe
Anzeige
@ uwe: warum nutzt du "lz" nicht owt
27.08.2024 21:03:34
ralf_b
AW: @ uwe: warum nutzt du "lz" nicht owt
27.08.2024 21:42:55
Alwin Weisangler
Hallo Ralf,

die Variable war nur zur Fehlersuche drin.
korrigiert so:


Sub NeuerDatensatz()
Dim i&, arrDaten(1 To 1, 1 To 9), arr(): arr = Array("C4", "C6", "C8", "C10", "C13", "G13", "K13", "N13", "Q13")
For i = 0 To UBound(arr)
arrDaten(1, i + 1) = Tabelle1.Range(arr(i)).Value
If i = 1 Then arrDaten(1, i + 1) = Replace(arrDaten(1, i + 1), ",", "" & vbCrLf & "")
Tabelle1.Range(arr(i)) = ""
Next i
With Tabelle2
.Range("H" & .Cells(Rows.Count, 3).End(xlUp).Row).Copy .Range("H" & .Cells(Rows.Count, 3).End(xlUp).Row + 1)
.Range("I" & .Cells(Rows.Count, 3).End(xlUp).Row).AutoFill Destination:=.Range("I" & .Cells(Rows.Count, 3).End(xlUp).Row & ":I" & .Cells(Rows.Count, 3).End(xlUp).Row + 1), Type:=xlFillDefault
.Range("A" & .Cells(Rows.Count, 3).End(xlUp).Row + 1).Resize(UBound(arrDaten, 1), UBound(arrDaten, 2) - 1) = arrDaten
End With
ListboxLaden
ListboxFiltern
End Sub

Das passiert, wenn man zu lang vor dem Kasten hockt.

Gruß Uwe

Anzeige
AW: @ uwe: warum nutzt du "lz" nicht
28.08.2024 06:40:11
ralf_b
naja bei 6 Mal würde sich eine Variable doch anbieten. Oder hast du da irgendwelche Performancegedanken?
AW: @ uwe: warum nutzt du "lz" nicht
28.08.2024 08:59:35
Alwin Weisangler
Hallo Ralf,

ja das stimmt natürlich auch.

Auf die Performance achte ich so gut es geht immer, was aber an dieser Stelle nicht der Grund war.

Wenn ich merke, dass ich über übliche/gängige Sachen plötzlich nachdenken muss, schreibe ich die lieber paar Mal aus damit es wieder besser abrufbar ist.
Das ist wohl eher altersbedingt zu betrachten.

So wie es jetzt ist, sollte das Ganze sich eigentlich gut nutzen lassen und es ist eben mal ohne Userform angelegt.
Meine eigenen Sachen habe ich, so es sich praktikabel umsetzen lässt, ins Ribbon gepackt. Da ist auch viel machbar und es überdeckt kein Tabellenblatt.

Gruß Uwe
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige