Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1256to1260
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

Eingabemaske - Datenzeile behalten

Eingabemaske - Datenzeile behalten
EarnyToLearny
Hallo Excel-Profis,
ich habe hier im Forum eine ausreichende Eingabemaske gefunden. Jedoch haben alle Masken die gleichen Fuktionen "Neu" und "Löschen" und "Ändern".
Beim Punkt "Löschen" wird der Datensatz oder die Datenzeile komplett gelöscht. Dieser Punkt müße bei mir heißen "Entfernen", jedoch soll der Datensatz erhalten bleiben und mit einer bedingten Formatierung andersfarbig dargestellt werden.
Dazu wäre eine Hilfszeile nötig, bei der der Wert "1" erscheint, sobald auf "NEU" gedrückt wird und eben eine "0" wenn auf "Entfernen" gedrückt wird. Das wäre machbar, aber ich bekomme es nicht hin, dass der Datensatz erhalten bleibt. Gleichzetig soll jeder neue Datensatz eine fortlaufende Nummer bekommen.
Hat hierfür jemand eine Lösung? Vielen Dank.
Werner
https://www.herber.de/bbs/user/79536.xls

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

Betreff
Benutzer
Anzeige
AW: Eingabemaske - Datenzeile behalten
24.03.2012 05:38:04
fcs
Hallo Earny,
prüfe doch mal den Link mit der Datei, die du hochgeladen hast.
Der Inhalt passt nicht zu deinen Fragen.
Ansonsten:
Hinter den Schaltflächen des Userforms verbergen sich ja die Makros.
Das vorhandene Löschen-Makro muss eine Zeile haben mit etwas wie "Rows(ZeilenNummer).Delete" enthalten.
Diese Zeile muss du Löschen und durch etwas wie "Cells(ZeilenNummer, Spalte01) = 0" ersetzen
Bei einer neuen Zeile muss dann zusätzlich eine Zeile eingefügt werden. Etwa so
Cells(ZeilenNummer, Spalte01) = 1
Fortlaufende Datensatznummer:
NummerNeu = Application.Worksheetfunction.Max(Columns(SpalteLfdNr)) + 1
Cells(ZeilenNummer,SpalteLfdNr) = NummerNeu
Gruß
Franz
Anzeige
AW: Eingabemaske - Datenzeile behalten
24.03.2012 10:25:49
EarnyToLearny
Hallo Franz,
herzlichen Dank für Deine schnelle Antwort. Sorry, war die falsche Tabelle. Anbei die richtige.
Das "Delete" habe ich schon gefunden und auch So wie Du es beschrieben hast, auch geändert. Dann ging gar nix mehr. Sicher habe ich das falsch gesetzt.
Das mit der fortlaufenden Datensatznummer verstehe ich zwar, jedoch weiß ich nicht, wo das hin muss.
Kannst Du nochmal einen Blick darauf werfen. Die Tabelle ist jetzt soweit vorbereitet.
Gruß Werner
https://www.herber.de/bbs/user/79538.xls
AW: Eingabemaske - Datenzeile behalten
25.03.2012 18:02:54
fcs
Hallo Werner,
durch das Einfügen der Spalte mit den laufenden Nummern stimmte beim Einlesen und Zurückschreiben der Daten ins bzw. aus dem Userform vieles nicht mehr.
Im Code gab es auch noch eine Checkbox1, die im Userform fehlte, was direkt zum Fehler führte. Ich hab die Checkbox1 wieder eingebaut zur Anzeige des Ausgeschieden-Status. Wenn du die Checkbox nicht benötigst, dann deren Eigenschaft "Visible" auf False setzen.
Mehrere OptionButtons auszuwerten erfordert mehr Programmier-Aufwand, wenn deren Werte gesetzt, ausgewertet und/oder zurückgesetzt werden sollen, als eine entsprechende Listbox. Das hab ich umgestellt.
https://www.herber.de/bbs/user/79551.xls
Gruß
Franz
Anzeige
AW: Eingabemaske - Datenzeile behalten
25.03.2012 18:27:13
EarnyToLearny
Hallo Franz,
ich sags ja immer - gute Leute müssen im Forum sein. Alles Bestens, danke.
Ich habe in der Zwischenzeit versucht, es doch noch hinzubekommen. War gar nicht so weit weg, nur das mit den Optionsbuttons hätte ich nie hinbekommen.
Gruß Werner
AW: Eingabemaske - Datenzeile behalten
26.03.2012 21:32:15
EarnyToLearny
Hallo Franz,
nun habe ich ein kleines Problemchen. In einer der Eingabeboxen stehen nun lauter kleine " " Anführungszeichen. Deshalb scheint die Listbox gefüllt, obwohl sie leer ist und zählt damit nicht weiter.
Formatierung habe ich überprüft und den Code habe ich nicht angerührt. Habe es mit Deiner Musterdatei verglichen - komm aber nicht drauf. Kannst Du bitte nochmals einen Blick drauf werfen.
Vielen herzlichen Dank.
Gruß Werner
https://www.herber.de/bbs/user/79565.xls
Anzeige
AW: Eingabemaske - Datenzeile behalten
26.03.2012 23:42:37
fcs
Hallo Werner
du hast im Blatt "Liste" in Spalte A in Zeile 351 "Ende der Liste" eingetragen. Dadurch wurden dann auch die laufenden Nummern unterhalb dieser Zeile eingetragen.
Das stört bei der gewählten Methode wie die letzte Zeile mit einem Personeneintrag ermittelt wird.
Lösche diese Einträge ab Zeile 251.
oder Lösche alle Zahlen ab Zeile 252 abwärts und passe die mit "'geändert fcs 20120326" markierten Zeilen im Code an (1 durch 2 erstzen).
Private Sub ResetUserform()
Dim aRow, i As Long
Application.EnableEvents = False
ComboBox1.Clear
With wksData
aRow = .Cells(.Rows.Count, 2).End(xlUp).Row                  'geändert fcs 20120326
ComboBox1.AddItem "neue Person hinzufügen"
Private Sub CommandButton2_Click()
'Daten Übernehmen
Dim xZeile As Long
If TextBox1 = "" Then
MsgBox "Es wurde noch kein Name eingegeben!"
Exit Sub
End If
With wksData
If ComboBox1.ListIndex = 0 Then
'Neue Person anlegen
xZeile = .Cells(.Rows.Count, 2).End(xlUp).Row + 1             geändert fcs 20120326
.Cells(xZeile, 1) = Application.WorksheetFunction.Max(.Columns(1)) + 1 'nächste lfd. Nr.
Else
'Existierenden Datensatz ändern
xZeile = ComboBox1.ListIndex + 1
End If
.Cells(xZeile, 2) = TextBox1
.Cells(xZeile, 3) = TextBox2
If IsDate(TextBox3) Then
.Cells(xZeile, 4) = CDate(TextBox3)         'Geburtstag
Else
MsgBox "Für Geburtstag ist kein zulässiger Datumswert eingetragen, Zelle bleibt leer!"
.Cells(xZeile, 4).ClearContents
End If
.Cells(xZeile, 5) = TextBox4
.Cells(xZeile, 6) = Date                      'Änderungsdatum
If Me.ListBox1.ListIndex  -1 Then
.Cells(xZeile, 7) = Me.ListBox1.Value 'Gruppe
End If
'Staus-ausgeschieden eintragen
If Me.CheckBox1 = True Then
.Cells(xZeile, 8) = 0
Else
.Cells(xZeile, 8) = 1
End If
If .Cells(.Rows.Count, 2).End(xlUp).Row > 2 Then                 'geändert fcs 20120326
'Spalten B bis H nach Name / Vorname sortieren - laufende Nr wird nicht mit sortiert
With .Columns("B:H")
.Sort Key1:=.Range("A1"), Order1:=xlAscending, _
Key2:=.Range("B1"), Order2:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End With
End If
Call ResetUserform
End With
End Sub

Es macht nicht unbedingt Sinn, eine Datei mit Formeln zuzupflastern.
Die Listen für aktuelle und ausgeschiedenen Mitarbeiter kann man sehr schön auch per Makro aktualisieren. Ich hab in der Datei die Makros so ingerichtet, dass die Tabellen automatisch aktualisiert werden, wenn das jeweilige Blatt aktiviert wird.
Andere Auswertungen kann man als Pivottabellenberichte anlegen, z.B. die Gruppen-Auswertungen.
https://www.herber.de/bbs/user/79567.xls
Gruß
Franz
Anzeige
AW: Eingabemaske - Datenzeile behalten
27.03.2012 19:12:32
EarnyToLearny
Hallo Franz,
da sage ich mal vielen Dank und Hut ab.
Ich gebe Dir Recht, dass man nicht alles mit Formeln zupflastern soll. Aber manchmal bleibt mir keine andere Möglichkeit (außer solche Profis wie Du helfen) und da komme ich mit solchen Mitteln auch schon weit.
Wenn ich mir Dein Ergebnis anschaue, ist alles ganz logisch. Nur das mit dem "Pivot" das habe ich noch nie kapiert wie das geht (was es bewirkt schon) und schon gar nicht als VBA.
Nochmals herzlichen Dank. Ich bin ja mehr der Grafikfreak (eigene Buttons und toll aufgemacht) und dies auch für PDF's und Skins aller Art.
Gruß Werner
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige