Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Benutzereingabe Maske in Excel mit Übertrag in Tabelle





Frage

Hallo, gibt es eine Möglichkeit oder eine Vorlage für eine Benutzereingabe-Maske? Ich weiß das man in Access so etwas machen kann. Also, ich hätte gerne eine Maske (in Excel,da kein anderes Prog. zur verfügung steht) in der drei Sachen abgefragt werden, und nach Eingabe, in die entsprechenden Felder, die Daten in eine Excel-Tabelle übertragen werden. 1. Datum 2. Alfanummerische Eingabe (z.B.Kfz-Kennzeichen) 3. Nummerische Eingabe (z.B. Anzahl) Ist das möglich?(wenn ja, wie geht?) Oder gibts da ne Vorlage ? Danke schon mal im Vorraus Gruß Benjae

Antwort 1 von Hajo_Zi

Hallo Nenjae,

benutze doch die Maske, da Du Deine Version Angegeben hast schaue mal hier unter Maske Maske in Excel 2007

Gruß Hajo

Antwort 2 von BenjaminM

Hallo Hajo,
ich hab leider nur Excel 97
Und noch keine Maske die ich verwenden kann.
Hab sowas nur mal bei Access gesehen das es solche Eingabe Masken gibt.

Ist das in Excel nicht möglich?

Gruß Benjae

Antwort 3 von Hajo_Zi

Hallo

eine Zelle in der Tabelle wählen und Daten, Maske.

Gruß Hajo

Antwort 4 von BenjaminM

Der Vorschlag sieht schon gut aus(Daten Maske), aber kann ich in eine Userform umwandeln?

Also ne Userform hab ich schon, kann sie jetzt nur nicht im Excel einbinden.
Habe mir in einem Tabellenblatt einen Command Button angelegt, weiß nur nicht was ich machen muss damit beim klicken darauf, auf die Userform zugegriffen wird.

Und die Userform ist soweit ganz gut, mir fehlt nur auch noch der Code dahinter.
Hab im Netz auch noch was gefunden, kann jedoch mit Excel97 die Beispieldatenen nicht öffnen.

@Hajo, hast du ne Beispieldaten oder nen Code denn du mir schreiben kannst?
Es existiert noch keine Tabelle, es sollen aber die drei Bereiche aus meiner Anfrage abgebildet werden mit dem Zusatz, das ich Punkt2 doppelt brauche.
Wenn das zu realisieren ist, wäre das sehr schön.

Danke

Gruß Benjae

Antwort 5 von fedjo

Hallo
ich hab dir mal ein ein
Beispiel erstellt.

Gruß
fedjo

Antwort 6 von BenjaminM

Hallo noch mal @All

So, ich hab jetzt meine Userform, mit 5 Textboxen, und 2 CommandButton.

Daten Übertrag funzt auch, jedoch brauche ich noch einige kleinigkeiten und ich kriegs einfach nicht.

1. Textbox1 soll das Datum erfassen...
Frage hierzu:
"Kann man da nicht auch irgendwie mit ="Heute()" arbeiten, so das die Textbox1 weg fällt,
man aber das Datum in der Userform sieht,
und dieses aber trotzdem am Ende Übergeben wird?

2. kann ich in meinen bestehenden Code noch eine TextBox Pflichtfeld Abfrage unterbringen, und wie sehe die aus?

Habe einiges gelesen, aber ich will nicht immer erst mir nem CommandButton die Textfelder prüfen, sonder am Ende auf OK klicken und wenn in einem Feld keine eingabe gemacht wurde, eine MsgBox ausgegeben bekommen.

3. Fornmatierung der Textboxen:
z.B. Alles Buchstaben GROß, und eine Kfz-Zeichen aufteilung in einer TextBox
z.B. "H-AH 234"

Hier noch der Code den ich bisher habe:
*********************************************************************************************
'*                                                                                           *
'*Aufgabenstellung: Es sollten über eine UserForm Daten in Textfelder eingegeben werden      *
'*                  können, die dann nach Betätigen einer Schaltfläche in die entsprechenden *
'*                  nächsten leeren Zellen übertragen werden sollten.                        *
'*                                                                                           *
'*                           Weitere Beispieldateien finden Sie auf                          *
'*                                                                                           *
'*          ########  ####      ####    #########  ########  ###                             *
'*          ########   ####    ####     #########  ########  ###                             *
'*          ###          #### ####      ###        ###       ###                             *
'*          ########      #######       ##         ########  ###                             *
'*          ########     #### ####      ##         ########  ###                             *
'*          ###         ####    ####    ###        ###       ###                             *
'*          ########   ####      ####   #########  ########  ########                        *
'*          ########  ####        ####  #########  ########  ########  beispiele.de          *
'*                                                                                           *
'*********************************************************************************************

Private Sub Abbrechen_Click()
'UserForm schließen
Unload UserForm1
End Sub
Private Sub OK_Click()
'Variable deklarieren
Dim letzte_Zeile As Long
'Die letzte beschrieben Zeile in Spalte A ermitteln
letzte_Zeile = Range("A65536").End(xlUp).Offset(1, 0).Row
'Eintrag aus TextBox1 (Datum) in erste freie Zelle übertragen
Cells(letzte_Zeile, 1) = TextBox1
'Eintrag aus TextBox2 (Lkw-Kennzeichen) in erste freie Zelle  übertragen
Cells(letzte_Zeile, 2) = TextBox2
'Eintrag aus TextBox3 (Brückennummer) in erste freie Zelle  übertragen
Cells(letzte_Zeile, 3) = TextBox3
'Eintrag aus TextBox4 (Pal.Anzahl) in erste freie Zelle  übertragen
Cells(letzte_Zeile, 4) = TextBox4
'Eintrag aus TextBox5 (User) in erste freie Zelle  übertragen
Cells(letzte_Zeile, 7) = TextBox5

    
'Die Sendkey Anweisung ersetzt das händische Betätigen der
'Tabtaste
SendKeys "{TAB}"
'Die Sendkey Anweisung ersetzt das händische Betätigen der
'Tabtaste
SendKeys "{TAB}"

'-------------------------------------
'TextBoxen Leeren
'TypeName =  Case Sensitiv !!
'Checkbox wird nicht erkannt
'CheckBox dagegen schon
Dim i As Integer
Dim cb As Control
i = 0
For Each cb In Me.Controls
    Debug.Print TypeName(cb)
    Select Case TypeName(cb)
        Case "TextBox"
            cb.Value = ""
    End Select
Next
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
'Fehlermeldung, wenn versucht wird, die UserForm über das rote
'Schließenkreuz oben rechts zu schließen
If CloseMode = 0 Then
    Cancel = 1
    MsgBox "Zu blöde, um auf Abbrechen zu drücken ?", _
        vbOKOnly + vbInformation, "Bitte Schaltfläche betätigen."
End If

End Sub


Wenn sich dem jemand annähme...

Danke Benjae

Antwort 7 von fedjo

Hallo Benjae,
es wäre einfacher wenn du deine Tabelle mal uploaden würdest.

Gruß fedjo

Antwort 8 von BenjaminM

Ich schau mir mal deine Datei an fedio,
die sieht einfacher aus.

Als ich meinen Beitrag schrieb und abgesendet habe hab ich deine Antwort nicht gesehen.

Ich schaue mal und melde mich dann falls noch Fragen auftauchen.
Danke erst mal.

Benjae

Antwort 9 von fedjo

Hallo Benjae,
hab mal das Datum und Großbuchstaben (KFZ) eingefügt.


Gruß fedjo

Beispiel

Antwort 10 von BenjaminM

Hallo Jedjo,

danke für deine Beispiele, konnte schon einiges umsetzen.(Codeklau...)

Hier mal meine Datei
Kannst du mal schauen, ich hab das Kennzeiche in 3 TextBoxen geteilt,
und es soll bei Textbox 2 & 3 die Abfrage auf Groß-Buchstaben gemacht werden, und bei TextBox4 auf Zahlen.

Jedoch sollen das keine Pflichtfelder sein!
Da ich noch eine weiter TextBox5 mit BrückenNr. habe und die Eingabe daher variiren kann.

Ist es möglich einen Code zu erstellen, der besagt das die Eingabe in einer der Boxen Pflicht ist?(also entweder TextBoxen 2,3&4 ODER TextBox5?)

Und jetzt noch ein Spezial,
Bisher werden die Daten in das Tabellenblatt geschrieben in dem auch das Formular aufgerufen wird.

Ich würde gerne die Daten in z.B. Tabelle2 schreiben.(verborgen)
Ist das in den Code einbaubar?

Danke für dein Angargement

Benjae

Antwort 11 von fedjo

Hallo Benjae,
dein Link "Datei" funktioniert nicht.


Gruß
fedio

Antwort 12 von BenjaminM

Und noch mal!
Sorry, aber dieser müsste jetzt!

Datei

Antwort 13 von BenjaminM

@all

Hallo noch mal,

Gibt es noch jemanden der sich der A10 annehmen kann?


Und ich hab da noch was,
nach der Datenübertragung aus den TextBoxen meine Userform
kann ich im Tabellenblatt die übertragenen Zahlen nicht addieren.

Mit Zellformatierung "Standart"und "Zahl" funktioniert es auch nicht!
Liegt das an der UserForm?
Oder was für ein Fehler liegt da vor?
Hier meine Datei bisher:
Datei

Wäre nett wenn das funzen würde, da ich die Addierten Pal.Anzahlen aus beiden Tabellen für eine Statistik brauche.

Danke im vorraus
Benjae

Antwort 14 von fedjo

Hallo Benjae,
habe die Datei nach deinen Angaben angepasst.
Stückzahl wird als Zahl übertragen!!

Gruß
fedjo

Datei

Antwort 15 von BenjaminM

Hallo Jedjo,

danke für deine Antwort und Mühe,

Aber kannst du mir sagen was du in der Datei geändert hast?
Ich finds nicht, und das mit dem Addieren klappt bei mir trotzdem nicht, liegt das an Excel97?

Oder sollte ich die ganze Sache noch mal in eine Neue Excel Datei schreiben?
Hatte schon 2 mal bei anderen Projekten, dass sich die gesamte Datei irgendwie aufgehängt hat, und nach dem kopieren in eine Neue Datei funzte es wieder.

Sag mal, kannst du die Anforderungen aus Antwort10 evtl. auch noch realisieren?


Danke und Gruß
Benjae

Antwort 16 von BenjaminM

Hallo Fedjo,

und noch mal.

Ich habe den Fehler gefunden warum ich die Zahlen im Tabellenblatt nicht Addierren kann.
Die Daten werden übertragen, auch abgebildet, sind aber in den Zellen nicht aktiv!

Das heisst, wenn ich eine beschriebene Zelle markiere, und oben in die Eingabezeile klicke, mit Enter bestätige, dann ist die Zahl in der Zelle aktiv und kann (mit in selber art bearbeiteten Zellen) adierrt werden.

Das soll aber nicht Sinn der Übung sein!
Gibts da ne Möglichkeit das über den Code abzufangen?

Gruß Benjae

Antwort 17 von fedjo

Hi Benjae,
ich den Code unter Excel 2000 erstellt, werde die Tabelle unter Excel 97 noch mal abspeichern, vielleicht kann deine Excel Version den Code nicht ganz umsetzen.

Änderungen:
Textbox 2 & 3 auf Groß-Buchstaben
Textbox 4 auf Zahlen
Wenn Textbox 5 leer ist muß in den Textboxen 2,3,4 eine Eingabe erfolgen.
Ist Textbox5 nicht leer, wird nur ihr Inhalt gespeichert.
In die Tabellenblätter Pal.Einang / Ausgang wird gespeichert, auch wenn sie ausgeblendet sind.
Der Button "Tabellen wieder einblenden" ist nur zur Überprüfung der Eingaben gedacht.
Palettenstückzahl wird im Zahlenformat "Pal. Eingang & Ausgang" übertragen, die bei mir durch Formel ohne Probleme addiert werden.
Bei den Spalten "B, D" ist die Schrift umgestellt auf Groß-Buchstaben umgestellt.


Gruß
fedjo

Datei

Antwort 18 von BenjaminM

Super!

Bei mir daheim Funzt es jetzt prima, ich hoffe auch im Excel97.
Teste ich morgen früh.
melde mich dann noch mal.

Danke dir fedjo!!!

Gruß Benjae

Antwort 19 von BenjaminM

Hallo Fedjo,

also die Datei Funzt hervoragend, auch nach ein paar Ergänzungen in den einzelnen Tabellen.

Ganz großes DANK dafür.

Nur ist mir jetzt die funktion des Großschreibens verloren gegangen!
Wie bekommt man das wieder hin?
Wo im Code muss ich den da was eintragen?

Und zum Verständnis:

Das Aktivieren des Zahlenformates für die Pal.Anzahl in TextBox6 hab ich geschnallt.(das wird ja mit dem CDblT erledigt.)

Aber wie hast du das gemacht, das er die Daten aus der Userform in die Tabellenblätter einträgt, ohne diese anzuzeigen?

Wird das mit diesem Code erledigt?
Application.ScreenUpdating = False
Sheets("Pal.Ausgang").Visible = True
Sheets("Pal.Ausgang").Select


Wäre schön wenn das mit dem GROßschreiben noch funzen würde.

Bis dahin Benjae

Antwort 20 von fedjo

Hi Benjae,
das mit dem Großschreibens ist ganz einfach, es wird nur die Schriftart geändert.
Spalten (B,D) z.B. Perpetua Titling MT
UserForm: TextBox1, rechte Mousetaste in die Eigenschaften, Font: Perpetua Titling MT

Die Tabelle wird immer kurz eingeblendet um Daten einzutragen wird aber nicht angezeigt.

Application.ScreenUpdating = False ' Tabellenwechsel wird unterbunden.
Sheets("Pal.Ausgang").Visible = True ' Tabelle wird eingeblendet.
Sheets("Pal.Ausgang").Select ' Tabelle wird ausgewählt (aktiv)
Sheets("Pal.Ausgang").Visible = False ' Tabelle wird ausgeblendet.

Gruß
fedjo

Antwort 21 von BenjaminM

Hallo Fedjo,

Danke fürs feedback, ich hab aber noch eien Elegantere lösung gefunden für die Großbuchstaben in TextBoxen.

Die Sache mit der Schriftart hatte ich auch schon, jedoch gefällt oft das Schriftbild nicht und es ist schon schöner eine Schriftart zu verwenden.

Also unter excel 97 funzt die Ucase funktion , wenn man dem Befehl ein Dollar Zeichen anhängt.
Bsp.
Private Sub TextBox2_Change()
TextBox2.Text = UCase$(TextBox2.Text)
End Sub


Noch mal Danke für deine Hilfe die Datei haut jetzt hin.

Gruß Benjae