Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
928to932
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
928to932
928to932
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Eingabemaske in einert Excel Tabelle?

Eingabemaske in einert Excel Tabelle?
25.11.2007 15:07:59
Park
Guten Tag,
ich habe hier eine Tabelle mit 10 Spalten, in den ich täglich Eingaben vornehmen möchte. Wenn man so will, eine Art Haushaltsbuch.
Nun frage ich mich, ob ich diese Eingaben nicht über eine Art Datenmaske vornehmen kann. Das wäre schneller und übersichlicher.
Da ich aber kein Profi bin, frage ich Euch, wie man das realisieren kann.
Vielen Dank für Eure Hilfe.

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

Betreff
Datum
Anwender
Anzeige
AW: Eingabemaske in einert Excel Tabelle?
25.11.2007 15:23:00
Park
Danke für den Hinweis.
Doch ich suche eher etwas, das dem einer Access Eingabe näher kommt.
Also praktisch eine Maske, die vor dieser Tabelle steht und in der ich die Eingaben zu dem jeweiligen Datum machen kann.
Vielleicht drücke ich mich auch falsch aus, hoffe aber auf Eure Hilfe. Vielen Dank.

AW: Eingabemaske in einert Excel Tabelle?
25.11.2007 15:25:24
Hajo_Zi
Hallo Nick,
Du hast die Maske schon aufgerufen? Die sieht wie eine Userform aus. Falls Dir das nicht gefällt musst Du Dir eine eigene erstellen. Aber in der Maske ist das ja schon fertig und die kann benutzt werden bis paar über 30 Spalten.
Gruß Hajo

Anzeige
AW: Eingabemaske in einert Excel Tabelle?
25.11.2007 15:29:28
Park
Hallo Hajo,
ja, ich habe sie aufgerufen. Doch man muss ja dazu immer erst die Spaltenüberschriften markieren.
Und was ist, wenn ich die Daten zuz einem ganz bestimmten Tag eingeben will und Tage zuvor ausser acht lassen möchte?
Ich schaue noch einmal.
Wie man eine eigene erstellt, wüsste ich gerne, dich habe ich leider keine großen Excel Erfahrungen, was große Programmierung anbelangt.
Gruß
Park

AW: Eingabemaske in einert Excel Tabelle?
25.11.2007 15:30:00
Hajo_Zi
Hallo Nick,
es muss nur eine Zelle in der Tabelle aktiv sein.
Gruß Hajo

Anzeige
AW: Eingabemaske in einert Excel Tabelle?
25.11.2007 15:37:28
Park
Hallo Hajo,
irgendwie gefällt mir diese Maske nicht so sehr.
Wie kann man diese flexibler gestalten und z.B. auf der ersten Seite der Tabelle fest verankern um diese immer wieder direkt aufzurufen und darin zu dem entsprechenden Datum die jeweiligen Eingaben zu tätigen?
Danke für einen Hinweis.
Gruß
Park

Datenmaske
25.11.2007 20:12:00
Beate
Hallo,
zur Datenmaske unter Excel siehe diesen Beitrag, der sicher einen Teil deiner Fragen beantwortet:
Datenmaske
Die Datenmaske kannst du aber auch per VBA ansteuern, ich habe dazu mal nachstehenden Beitrag geschrieben, der nicht veröffentlich wurde, vielleicht findest du da was für dich Nützliches.
Gruß,
Beate
---------------------------------------------------------------
Datenmaske - VBA
Ergänzend zum Beitrag Datenmaske möchte ich Ihnen hier nützlichen Code vorstellen, der das Arbeiten mit der Datenmaske komfortabler gestaltet oder bestimmte Probleme löst. Die Tabelle, für die diese Beispiele hier entwickelt sind, ist hier zu sehen. Gegebenenfalls müssen Sie Tabellennamen und Zellbezug für Ihren Code anpassen. Manche Codes benötigen den definierten Namen Datenbank. Wie Sie den definieren ist hier erklärt.
Aufruf der Datenmaske
Der Code kann aus jedem Blatt der Tabelle aufgerufen werden, zu Makrobeginn wird das Tabellenblatt, welches die Datenbank enthält sowie eine Zelle der Datenbank selektiert. Das ist ein Muss! Passen Sie Tabellenblattnamen und die Zelle Ihren Bedürfnissen an:
Sub Maskenaufruf()
Application.Goto Worksheets("Tabelle1").Range("A1"), True
CommandBars.FindControl(ID:=860).Execute
End Sub


Dieser Code hat gegenüber dem bekannteren Aufruf mit ShowDataForm den Vorteil, dass er auch in der Maske Daten im europäischen Format darstellt.
Aufruf der Datenmaske für verschiedene Blätter


Private Sub CommandButton1_Click()
Application.Goto Worksheets("Datenbank").Range("A1"), True
ActiveSheet.Range("A1").CurrentRegion.Name = "database"
CommandBars.FindControl(ID:=860).Execute
End Sub



Private Sub CommandButton2_Click()
Application.Goto Worksheets("Kundenkartei").Range("A1"), True
ActiveSheet.Range("A1").CurrentRegion.Name = "database"
CommandBars.FindControl(ID:=860).Execute
End Sub


Es funktioniert also, wenn jedesmal der Name "Database" (=Datenbank) passend definiert wird.
Aufruf der Datenmaske zur Erfassung eines neuen Datensatzes
Um direkt zur Neuerfassung zu gelangen ergänzen Sie obigen Code um eine Zeile - ansonsten gilt das dort Gesagte:
Sub Maskenaufruf_Neuerfassung()
Application.Goto Worksheets("Tabelle1").Range("A1"), True
SendKeys "%n"
CommandBars.FindControl(ID:=860).Execute
End Sub


Es sind immer die auf den Buttons unterstrichenen Buchstaben mit Sendkeys zu kombinieren, um die Maske im entsprechenden Modus zu starten.
Aufruf der Datenmaske zum Suchen und Finden
Um die Maske direkt im Suchmodus aufzurufen, ist das der Code - dadurch können umgehend die Suchkriterien in die Felder eingegeben werden:
Sub Maskenaufruf_Suche()
Application.Goto Worksheets("Tabelle1").Range("A1"), True
SendKeys "%k"
CommandBars.FindControl(ID:=860).Execute
End Sub


Es sind immer die auf den Buttons unterstrichenen Buchstaben mit Sendkeys zu kombinieren, um die Maske im entsprechenden Modus zu starten.
Um die Maske direkt mit dem Datensatz eines bestimmten Zellwerts zu öffnen, ist das der Code - hier steht der gesuchte Wert in Zelle G1, durchsucht wird Spalte B = Feld 2. Durch die Zelleingabe ist das eine recht dynamische Suche. Die Maske springt nun mit dem ersten zutreffenden Datensatz auf:
Sub Maskenaufruf_Suche_Zellwert()
Application.Goto Worksheets("Tabelle1").Range("A1"), True
SendKeys "%k{tab}" & Worksheets("Tabelle1").Range("G1").Text & "{tab}"
SendKeys "%t"
CommandBars.FindControl(ID:=860).Execute
End Sub


Sie können natürlich in anderen Feldern suchen, in mehreren Feldern gleichzeitig oder die Kriterien bereits im Code vorgeben. Was da alles kombinierbar ist, können Sie sich anhand dieser Beispiele selbst entwickeln: Aufruf zur Erfassung mit vorbelegten Feldern.
Aufruf der Datenmaske, beim Schließen der Maske werden Daten neu sortiert
Der Code kann aus jedem Blatt der Tabelle aufgerufen werden, zu Makrobeginn wird das Tabellenblatt, welches die Datenbank enthält sowie eine Zelle der Datenbank selektiert. Das ist ein Muss! Passen Sie Tabellenblattnamen und die Zelle Ihren Bedürfnissen an. Definieren Sie für den Datenbankbereich den Namen Datenmaske, weil dieser Bereich im Code sortiert wird.
Sub Maskenaufruf_mit_Sortierung()
Application.Goto Worksheets("Tabelle1").Range("A1"), True
CommandBars.FindControl(ID:=860).Execute
Range("Datenbank").Sort Key1:=Range("C1"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub


Dieser Code sortiert beim Schließen der Maske nach Spalte C (die Daten) aufsteigend. Welche Spalte(n) sie sortieren möchten, können Sie anpassen und ebenfalls, ob es sich um Auf- oder Absteigende Sortierung handelt. Die Überschriftenzeile wird bei der Sortierung berücksichtigt.
Fehlerprüfung
Während der Datenbearbeitung in der Maske ist keine Überprüfung der Datengültigkeit sinnvoll möglich. Hier mehr dazu. Neben der dort erläuterten Kontrolle in der Tabelle über bedingte Formatierung können Sie aber auch zusätzlich ein Makro über Ihre Tabellendaten laufen lassen, um herauszufinden, ob es Probleme gibt.
In folgendem Beispiel wird geprüft, ob Daten > Heute in Spalte C liegen und ob in Spalte D Werte Sub Fehlerprüfung()
If [COUNTIF(C:C,">"&TODAY())] = 0 Then
MsgBox "Es liegen in Spalte C keine Fehler vor"
Else
MsgBox ["Spalte C: "&COUNTIF(C:C,">"&TODAY())&" Fehler. Bitte korrigieren!"]
End If
If [SUM(COUNTIF(D:D,{" MsgBox "Es liegen in Spalte D keine Fehler vor"
Else
MsgBox ["Spalte D: " &SUM(COUNTIF(D:D,{" End If
End Sub


Welche/wieviele Spalten und Bedingungen Sie prüfen, das müssen Sie anpassen.
Aufruf zur Erfassung mit vorbelegten Feldern
Sie möchten einen Code haben, der direkt die Maske zur Neuerfassung von Datensätzen startet, dabei sollen gewisse Felder direkt vorbelegt sein, weil deren Inhalt immer so sein soll. Die Tabellenstruktur wäre dreispaltig so:
A B C
1 Name Datum Nettowert
2 Name1 15.02.2005 55,42 €
3 Name2 13.03.2005 66,78 €
4 Name3 08.04.2005 72,17 €
Zum Verständnis zunächst ein Beispiel, alle Felder sollen mit 0 belegt werden:
Sub NullVorbelegen()
Application.Goto Worksheets("Tabelle1").Range("A1"), True
SendKeys "%n{0}{tab}{0}{tab}{0}"
CommandBars.FindControl(ID:=860).Execute
End Sub


Sie sehen die 3 eingegebenen Nullen im Code und den Weitersprung von Feld zu Feld mit {tab}.
Das dritte Feld soll mit einem Wert belegt werden:
Sub ZahlVorbelegen()
Application.Goto Worksheets("Tabelle1").Range("A1"), True
SendKeys "%n{tab}{tab}3.500,00"
CommandBars.FindControl(ID:=860).Execute
End Sub


Da die ersten beiden Felder leer bleiben sollen zur Befüllung in der Maske, sind im Code dafür keine Werte hinterlegt, es wird nur per (tab) ins dritte Feld gesprungen und dort der Wert vorgegeben.
Das erste Feld soll mit einem Text belegt werden:
Sub WörterVorbelegen()
Application.Goto Worksheets("Tabelle1").Range("A1"), True
SendKeys "%nJochen{tab}"
CommandBars.FindControl(ID:=860).Execute
End Sub


Durch einmaliges (tab) nach dem Text im Code wird erreicht, dass das zweite Feld das aktive Feld ist.
Das zweite Feld soll mit dem aktuellen Datum belegt werden:
Sub HeuteVorbelegen()
Application.Goto Worksheets("Tabelle1").Range("A1"), True
SendKeys "%n{tab}" & Format(Date, "dd.mm.yyyy") & "{tab}"
CommandBars.FindControl(ID:=860).Execute
End Sub


Das erste Feld soll mit einem Zellwert (hier aus D1) belegt werden:
Sub ZellwertVorbelegen()
Application.Goto Worksheets("Tabelle1").Range("A1"), True
SendKeys "%n" & Worksheets("Tabelle1").Range("D1").Text & "{tab}"
CommandBars.FindControl(ID:=860).Execute
End Sub


Durch einmaliges (tab) nach dem Zellbezug im Code wird erreicht, dass das zweite Feld das aktive Feld ist.

Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige