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

Forumthread: Userform in Zellen schreiben

Userform in Zellen schreiben
24.07.2016 13:37:26
chris58
Hallo !
Kann mir bitte einer hier sagen, wie ich das machen soll, damit die einzelnen Felder der Userform (Datum, Zahl, Eurobetrag) in die richtigen Felder der Datei geschrieben werden und das Formular geschlossen wird. Wenn ich die Userform wieder aufrufe, die Daten die in den Feldern der Datei stehen, auch in der Userform vorhanden sind.
Die neuen Daten sollen immer die alten überschreiben, also immer die gleichen Felder.
Danke für Eure Hilfe
chris
https://www.herber.de/bbs/user/107204.xls
Anzeige

15
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Userform in Zellen schreiben
24.07.2016 13:42:23
Hajo_Zi
Hallo Chris,
Private Sub UserForm_Activate()
Arbeitsmappe("Kalender").Range("A6") = UserForm1.Value
Arbeitsmappe("Kalender").Range("B6") = UserForm1.textfeld.Value
End Sub
Private Sub UserForm_Terminate()
Arbeitsmappe("Kalender").Range("A6") = UserForm1.Value
Arbeitsmappe("Kalender").Range("B6") = UserForm1.textfeld.Value
End Sub

Anzeige
AW: Userform in Zellen schreiben
24.07.2016 13:44:05
Hajo_Zi
Halo Chris
Fehler bei Activate muss links und rechts getauscht werden.
Gruß Hajo
AW: Userform in Zellen schreiben
24.07.2016 14:34:44
chris58
Hallo Hajo !
Keine Ahnung was ich genau tauschen soll........
Die ersten Daten sind "Datums".....kein Text und keine Summen
Wenn du mir schreiben könntest, was ich einsetzen muß, damit ich ein Datum bekomme (z.B. 21.05.2016)
und wie ich einen Eurobetrag bekommen, dann versuch ich es selbst hinzubekommen.
Danke
chris
Anzeige
AW: Userform in Zellen schreiben
24.07.2016 14:36:38
Hajo_Zi
Hallo Chris,
den Teil vor und nach "="
Gruß Hajo
AW: Userform in Zellen schreiben
24.07.2016 16:06:50
chris58
Hallo Hajo !
Ja danke erstmals...........aber........keine Ahnung was du meinst........habe das vor dem = hinten rangestellt, das ander vorne...........da passiert nur, das ich einen Fehler bekomme...
Danke jedenfalls für Deine Zeit.....ich komm einfach nicht dahinter
chris
Anzeige
AW: Userform in Zellen schreiben
24.07.2016 16:16:05
Hajo_Zi
ich habe mich an Deinen Code gehalten, da ich davon ausgegangen bin, das der geht
UserForm1.Value = Arbeitsmappe("Kalender").Range("A6")
UserForm1.textfeld.Value = Arbeitsmappe("Kalender").Range("B6")
Was ist UserrForm.Value
es gibt kein Steuerelement Textfeld
Da solltest Du schon vorhandene Steuerelemente eintragen.
Es macht sich immer gut wenn man Datweien hochlädt, das man vorher Debbugen, komplilieren macht, damit kein Fehler drin ist.
Gruß Hajo
Anzeige
AW: Userform in Zellen schreiben
24.07.2016 16:27:28
chris58
Hallo Hajo !
Ich habe die Datei reingestellt. Den Code, den hab ich gefunden, dachte der ist in Ordnung.
Wollte damit nur komentieren, das ich mir Gedanke gemacht habe, jedoch ohne Erfolg meinerseits.
Ich werde es für meine Kollegen so lassen, das sie die Daten nicht über die Userform eingeben, sondern direkt in die Tabelle.
Danke jedenfalls für deine Zeit
chris
Anzeige
AW: Userform in Zellen schreiben
24.07.2016 17:59:57
Werner
Hallo Chris,
ich habe dir das mal für zwei Zellen geschrieben. Der Rest kriegst du wohl selbst hin.
Inhalt TextBox in Zelle:
Private Sub CommandButton1_Click()
Sheets("Kalender").Range("A6") = TextBox1.Value
Sheets("Kalender").Range("B6") = TextBox2.Value
Unload Me
End Sub
https://www.herber.de/bbs/user/107209.xlsm
Gruß Werner
Zellinhalt in TextBox bei Start der Userform:
Private Sub UserForm_Initialize()
TextBox1.Value = Sheets("Kalender").Range("A6").Value
TextBox2.Value = Sheets("Kalender").Range("B6").Value
End Sub

Anzeige
Eingabe Datum in Userform ohne......
24.07.2016 20:42:13
chris58
Hallo !
Danke, ich habe das nun mit Hilfe von Werner hinbekommen. Danke
Hier die Datei.......
Eines wäre noch: Kann ich bei der Eingabe in der Userform auf den Punkt verzichten (z.B.: 30092010 statt 30.9.2010) ?
Danke
chris
https://www.herber.de/bbs/user/107212.xls
Anzeige
AW: Eingabe Datum in Userform ohne......
24.07.2016 21:01:46
Daniel
Hi
ich denke mal, dass du die Userform darauf einrichten solltest, dass der Anwender das Datum in verschieden Formen eingibt.
möglich sein sollten folgende Formen:
- 01.02.2016
- 1.2.2016
- 01.02
- 1.2
- 01022016
- 010116
das kannst du so erreichen:
1. schreibe folgende benuzterdefinierte Funktion in ein allgemeines Modul oder ins Modul der Userform:
Function TextInDatum(txt as string) as variant
if isdate(txt) then
TextInDatum = CDate(txt)
Elseif Isnumeric(txt) then
if isdate(format(clng(txt), "00"".""00"".""00")) then
TextInDatum = CDate(format(clng(txt), "00"".""00"".""00"))
elseif isDate(format(clng(txt), "00"".""00"".""0000")) then
TextInDatum = CDate(format(clng(txt), "00"".""00"".""0000"))
Else
TextInDatum = "#Datum"
end if
Else
TextInDatum = "#Datum"
end if
End Function

2. schreibe dann die Datumswerte mit Hilfe dieser benutzerdefinierten Funktion, welche deine Texte in ein Datum wandelt, in die Zellen:
Sheets("Kalender").range("A6").Value = TextInDatum(Textbox1.Value)
Gruß Daniel
Anzeige
AW: Eingabe Datum in Userform ohne......
24.07.2016 21:01:47
Daniel
Hi
ich denke mal, dass du die Userform darauf einrichten solltest, dass der Anwender das Datum in verschieden Formen eingibt.
möglich sein sollten folgende Formen:
- 01.02.2016
- 1.2.2016
- 01.02
- 1.2
- 01022016
- 010116
das kannst du so erreichen:
1. schreibe folgende benuzterdefinierte Funktion in ein allgemeines Modul oder ins Modul der Userform:
Function TextInDatum(txt as string) as variant
if isdate(txt) then
TextInDatum = CDate(txt)
Elseif Isnumeric(txt) then
if isdate(format(clng(txt), "00"".""00"".""00")) then
TextInDatum = CDate(format(clng(txt), "00"".""00"".""00"))
elseif isDate(format(clng(txt), "00"".""00"".""0000")) then
TextInDatum = CDate(format(clng(txt), "00"".""00"".""0000"))
Else
TextInDatum = "#Datum"
end if
Else
TextInDatum = "#Datum"
end if
End Function

2. schreibe dann die Datumswerte mit Hilfe dieser benutzerdefinierten Funktion, welche deine Texte in ein Datum wandelt, in die Zellen:
Sheets("Kalender").range("A6").Value = TextInDatum(Textbox1.Value)
Gruß Daniel
Anzeige
AW: Eingabe Datum in Userform ohne......
24.07.2016 21:29:33
Werner
Hallo Daniel,
war gerade dabei etwas zu basteln um bei der Eingabe in die Textbox nur Zahlen ohne Punkte zuzulassen. Deine Funktion ist natürlich die Profi Version.
Kann ich sicher auch mal brauchen - Danke.
Gruß Werner
AW: Eingabe Datum in Userform ohne......
25.07.2016 12:15:37
Daniel
Hi
sinnvoll wäres es natürlich, beide Methoden zu kombinieren, denn auch wenn du nur Ziffern in der TextBox zulässt, kannst du immer noch Werte eingeben, die sich nicht in ein Datum wandeln lassen.
allerdings wird das hier aufgrund der Anzahl der TextBoxen aufwendig, weil du dann für jede TextBox ein entsprechendes Eventmakro erstellen musst, bzw das ganze über Klassenprogrammierung lösen musst.
Gruß Daniel
Anzeige
AW: Userform in Zellen schreiben
25.07.2016 14:15:52
snb
@werner:
Private Sub CommandButton1_Click()
Sheets("Kalender").Range("A6:B6") = array(TextBox1,TextBox2)
End Sub

;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Userform-Daten in Excel-Zellen speichern


Schritt-für-Schritt-Anleitung

  1. Öffne deine Excel-Datei und gehe in den VBA-Editor (Alt + F11).

  2. Füge eine Userform hinzu, indem du mit der rechten Maustaste auf "VBAProject" klickst und "Einfügen" > "UserForm" wählst.

  3. Füge TextBoxen für Datum und Eurobetrag sowie einen CommandButton hinzu.

  4. Definiere das Code-Element für den CommandButton, um die Werte in die entsprechenden Zellen zu schreiben:

    Private Sub CommandButton1_Click()
       Sheets("Kalender").Range("A6") = TextBox1.Value
       Sheets("Kalender").Range("B6") = TextBox2.Value
       Unload Me
    End Sub
  5. Um die Userform mit den bestehenden Werten zu füllen, verwende den folgenden Code in der UserForm_Initialize:

    Private Sub UserForm_Initialize()
       TextBox1.Value = Sheets("Kalender").Range("A6").Value
       TextBox2.Value = Sheets("Kalender").Range("B6").Value
    End Sub
  6. Speichere deine Änderungen und teste die Userform.


Häufige Fehler und Lösungen

  • Fehler: "Typ nicht unterstützt"

    • Überprüfe, ob die Werte in den TextBoxen korrekt sind und ob du das richtige Format verwendest, z.B. für Datumsangaben.
  • Fehler: Userform zeigt keine Daten an

    • Stelle sicher, dass du den Code in UserForm_Initialize richtig platziert hast und dass die Zellen im Arbeitsblatt korrekt referenziert werden.

Alternative Methoden

  • Anstatt eine Userform zu verwenden, könntest du auch direkt Eingabefelder in einem Excel-Arbeitsblatt erstellen. Dies ermöglicht eine einfachere Eingabe, ohne VBA zu verwenden.

  • Eine weitere Methode ist die Verwendung von Datenvalidierung, um sicherzustellen, dass die Eingaben in einem bestimmten Format erfolgen.


Praktische Beispiele

Hier ist ein Beispielcode, der es ermöglicht, ein Datum in verschiedenen Formaten einzugeben:

Function TextInDatum(txt As String) As Variant
    If IsDate(txt) Then
        TextInDatum = CDate(txt)
    ElseIf IsNumeric(txt) Then
        If IsDate(Format(CLng(txt), "00"".""00"".""00")) Then
            TextInDatum = CDate(Format(CLng(txt), "00"".""00"".""00"))
        ElseIf IsDate(Format(CLng(txt), "00"".""00"".""0000")) Then
            TextInDatum = CDate(Format(CLng(txt), "00"".""00"".""0000"))
        Else
            TextInDatum = "#Datum"
        End If
    Else
        TextInDatum = "#Datum"
    End If
End Function

Du kannst diese Funktion aufrufen, wenn der Benutzer Daten in eine TextBox eingibt und die Werte in die Zellen schreibst.


Tipps für Profis

  • Verwende die Unload Me Anweisung immer, um die Userform nach der Eingabe zu schließen und die Ressourcen freizugeben.

  • Teste deinen Code in verschiedenen Excel-Versionen, um die Kompatibilität sicherzustellen.

  • Füge Fehlerbehandlungsroutinen hinzu, um die Benutzerfreundlichkeit zu verbessern und unerwartete Fehler zu vermeiden.


FAQ: Häufige Fragen

1. Wie kann ich sicherstellen, dass das Datum im richtigen Format eingegeben wird?
Du kannst eine benutzerdefinierte Funktion verwenden, um verschiedene Datumsformate zu akzeptieren, wie im Abschnitt "Praktische Beispiele" beschrieben.

2. Wie kann ich verhindern, dass Benutzer ungültige Daten eingeben?
Nutze die Datenvalidierung in Excel, um sicherzustellen, dass nur bestimmte Werte akzeptiert werden. Alternativ kannst du auch VBA verwenden, um Eingaben zu prüfen.

3. Kann ich die Userform für mehrere Eingaben verwenden?
Ja, du kannst die Userform so anpassen, dass sie mehrere Zeilen in deinem Arbeitsblatt behandelt, indem du den Code entsprechend erweiterst.

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