Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

VBA - Eingabemaske, Eingabe in freie Zeile speiche

Forumthread: VBA - Eingabemaske, Eingabe in freie Zeile speiche

VBA - Eingabemaske, Eingabe in freie Zeile speiche
06.11.2013 10:46:38
Blaich
Hallo Excel-Kollegen,
für eine Projektstatistik haben wir eine Excel-Tabelle entworfen.
Die Eingabe erfolgt über eine Eingabemaske durch vba.
Wenn die Eingabemasken Felder ausgefüllt sind (müssen nicht alle ausgefüllt sein) sollen die eingegebenen Daten beim Drücken des Buttons "speichern" in die nächste freie Zeile in dem Excelsheet geschrieben werden.
Nun meine Frage, da ich mich mit VBA sehr schlecht auskenne, wie kann ich den Button formatieren, dass die Eingabedaten in die nächste freie Zeile geschrieben wird und keine Daten überschrieben werden?
Hier die Excel-Datei
https://www.herber.de/bbs/user/87959.xlsm
Vielen Dank für eure Hilfe.
Grüße

Anzeige

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA - Eingabemaske, Eingabe in freie Zeile speiche
06.11.2013 10:50:53
Hajo_Zi
das geht nicht über Format nur Code.
Private Sub speichernButton_Click()
Dim LoLetzte As Long
LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows. _
Count) + 1
Cells(LoLetzte, 1) = KdnrBox
End Sub

Anzeige
AW: VBA - Eingabemaske, Eingabe in freie Zeile speiche
06.11.2013 11:23:31
Blaich
In Spalte A wird die Kdnr. übernommen, wie kann ich den Code schreiben, dass die Spalten B-K auch übernommen werden?
Vielen Dank

AW: VBA - Eingabemaske, Eingabe in freie Zeile speiche
06.11.2013 11:29:46
Hajo_Zi
einfach die Zeile
Cells(LoLetzte, 1) = KdnrBox
kopieren und Spalte und TextBox anpassen.
Ich würde noch eine Prüfung einbauen ob KDNrBox""
Gruß Hajo

Anzeige
AW: VBA - Eingabemaske, Eingabe in freie Zeile speiche
06.11.2013 12:11:28
Blaich
Hi,
vielen Dank für deine Hilfe.
Habe alle Spalten nun drin ;)
Wie erstelle ich diese Prüfung mit VBA?
Und noch was anderes, wenn ich die Steuerbox Formular öffne, sollen alle Textboxen leer sein. Weißt du hierfür den Code als VBA?
Vielen Dank
Grüße

AW: VBA - Eingabemaske, Eingabe in freie Zeile speiche
06.11.2013 12:13:29
Hajo_Zi
If kdnrBox"" then
Trage nichts in VBA Editor in die Userform ein
Arbeite mit Unload Me
Gruß Hajo

Anzeige
AW: VBA - Eingabemaske, Eingabe in freie Zeile speiche
06.11.2013 12:22:38
Blaich
wo muss unload me eingetragen werden?
Danke.

AW: VBA - Eingabemaske, Eingabe in freie Zeile speiche
06.11.2013 12:26:57
Blaich
Wenn ich die Eingabemaske vollständig ausgefüllt habe und auf speichern gehe, schließt sich nicht die Eingabemaske. Kann mir jemand helfen, wie der Code geht, dass beim Drücken des Buttons Speichern die Eingabemaske schließt?
Danke

Anzeige
AW: VBA - Eingabemaske, Eingabe in freie Zeile speiche
06.11.2013 12:32:23
Hajo_Zi

Private Sub speichernButton_Click()
Unload Me
End Sub
Gruß Hajo

AW: VBA - Eingabemaske, Eingabe in freie Zeile speiche
06.11.2013 13:11:49
Blaich
Vielen Dank, funktioniert einwandfrei.
Ist es möglich, wenn man speichern gedrückt hat, dass noch ein Feld mit "Vielen Dank." aufgeht?

Anzeige
AW: VBA - Eingabemaske, Eingabe in freie Zeile speiche
06.11.2013 13:13:55
Hajo_Zi
ja
Bezieht sich auf diese Nachricht:
Private Sub speichernButton_Click()
Msgbox "Vielen Dank"
Unload Me
End if
End Sub
Gruß Hajo

AW: VBA - Eingabemaske, Eingabe in freie Zeile speiche
06.11.2013 12:20:02
Blaich
Hi, vielen Dank für deine Info. Hat alles funktioniert.
Wie kann ich die Prüfung in VBA einbauen?
Noch was anderes, wenn ich über die Schaltfläche Formular die Eingabemaske öffne, sind alle vorherige Daten in den Textfeldern. Ist es möglich, dass beim Öffnen der Eingabemaske die Textfelder leer sind? Wie lautet der Code?
Vielen Dank.
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Eingabemaske in Excel mit VBA erstellen und nutzen


Schritt-für-Schritt-Anleitung

  1. Eingabemaske erstellen:

    • Öffne Excel und gehe zu Entwicklertools > Visual Basic.
    • Erstelle ein neues UserForm durch einen Rechtsklick im Projektfenster und wähle Einfügen > UserForm.
  2. Steuerelemente hinzufügen:

    • Füge TextBoxen für die Eingabe deiner Daten hinzu (z.B. KdnrBox, NameBox).
    • Setze einen Button (SpeichernButton), der beim Klicken die Eingaben speichern soll.
  3. VBA-Code hinzufügen:

    • Klicke doppelt auf den Button und füge folgenden Code ein:
    Private Sub speichernButton_Click()
       Dim LoLetzte As Long
       LoLetzte = IIf(IsEmpty(Cells(Rows.Count, 1)), Cells(Rows.Count, 1).End(xlUp).Row, Rows.Count) + 1
       Cells(LoLetzte, 1) = KdnrBox
       ' Weitere Spalten hinzufügen
       Cells(LoLetzte, 2) = NameBox ' Beispiel für Spalte B
       Unload Me ' Schließt die Eingabemaske
    End Sub
  4. Leeren der TextBoxen beim Öffnen:

    • Um sicherzustellen, dass die TextBoxen leer sind, füge folgenden Code in den UserForm_Initialize-Ereignis ein:
    Private Sub UserForm_Initialize()
       KdnrBox = ""
       NameBox = ""
    End Sub
  5. Speichern und Testen:

    • Speichere das Projekt und teste die Eingabemaske, indem Du sie öffnest und Daten eingibst.

Häufige Fehler und Lösungen

  • Fehler: Daten werden überschrieben:

    • Stelle sicher, dass der Code zur Ermittlung der letzten freien Zeile korrekt ist. Verwende Cells(Rows.Count, 1).End(xlUp).Row für die korrekte Zeilenbestimmung.
  • Fehler: Eingabemaske schließt nicht:

    • Überprüfe, ob Unload Me im Button-Klick-Ereignis korrekt platziert ist.
  • Fehler: TextBoxen zeigen alte Daten:

    • Füge den UserForm_Initialize-Code hinzu, um die TextBoxen beim Öffnen zu leeren.

Alternative Methoden

Falls Du eine Google Sheets Eingabemaske verwenden möchtest, kannst Du die Google Apps Script-Funktion nutzen, um Eingaben zu speichern. Der grundlegende Code sieht ähnlich aus, erfordert jedoch Anpassungen für Google Sheets.


Praktische Beispiele

Hier ist ein Beispielcode, der mehrere Spalten speichert:

Private Sub speichernButton_Click()
    Dim LoLetzte As Long
    LoLetzte = Cells(Rows.Count, 1).End(xlUp).Row + 1
    Cells(LoLetzte, 1) = KdnrBox
    Cells(LoLetzte, 2) = NameBox
    ' Füge weitere Spalten nach Bedarf hinzu
    MsgBox "Vielen Dank"
    Unload Me
End Sub

Dieser Code speichert die Daten in den nächsten freien Zeilen und zeigt eine Bestätigungsnachricht an.


Tipps für Profis

  • Verwende If-Anweisungen, um sicherzustellen, dass nicht leere TextBoxen gespeichert werden.

    If KdnrBox <> "" Then
      Cells(LoLetzte, 1) = KdnrBox
    End If
  • Um die Benutzererfahrung zu verbessern, füge weitere Validierungsprüfungen hinzu, bevor die Daten gespeichert werden.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass alle Felder ausgefüllt sind? Füge vor dem Speichern eine Überprüfung hinzu, die sicherstellt, dass die TextBoxen nicht leer sind.

2. Ist es möglich, die Eingabemaske in einer bestimmten Excel-Version zu verwenden? Ja, dieser VBA-Code funktioniert in Excel 2010 und späteren Versionen. Achte darauf, dass die Entwicklertools aktiviert sind.

3. Kann ich die Eingabemaske auch in Google Sheets verwenden? Ja, dazu musst Du Google Apps Script verwenden, um eine ähnliche Funktionalität zu erstellen.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige