Excel Eingabe erzwingen

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
UserForm TextBox InputBox MsgBox
Bild

Betrifft: Excel Eingabe erzwingen
von: Sebastian
Geschrieben am: 04.07.2015 12:28:20

Hallo zusammen,
ich bin gerade dabei eine Auftragübersicht zu erstellen und muss die Eingabe in bestimmten Zellen per Drop Down (bereits über Gültigkeitsregeln erstellt) für bestimmte Zellen erzwingen. Nach einiger Recherche ist mir klar geworden das sowas nur mit vba makro realisierbar ist. Leider habe ich davon überhaupt keine große Ahnung. Vielleicht kann mir jemand dabei Helfen...
Folgendes:
Wenn in einer Reihe der Spalte C eine Auftragsnummer angelegt wurde, sollen die Eingaben in der gleichen Reihe ab der Spalte D bis W erzwungen werden. In der Spalte G und H wird ein Endtermin/Liefer KW per Kalender (Makro bereits vorhanden) ausgewählt. In eingen Zellen ist die Eingabe per Drop Down erstellt. In anderen wiederrum müssen werte eingegeben werden die begrenzt wurden.
Nach erfolgter Eingabe in C soll automatisch zur nächsten Zelle gesprungen werden um dort eine Eingabe zu machen. Ein verlassen der Zelle, wechsel des Tabellenblattes oder Schließen der Datei ist ohne vorherige Eingabe nicht möglich. Es soll ein Hinweisfenster erscheinen das erst ein Wert eingetragen werden muss und die jeweilige Zelle für die Eingabe immer markiert werden.
Nachdem alle Eingaben abgeschlossen wurden, kann man sich wieder frei in der Tabelle "bewegen". Wenn ein Wert in den besagten Zellen geändert wird soll gefragt werden ob die Änderung richtig ist und der alte sowie neue Wert angezeigt werden. Erst nach bestätigung kann der Wert geändert werden.
Eine Änderung des bereits eingegeben Datums muss begründet werden und de Begründung in einer Textbox eingegeben sowie angezeigt werden. Auch das Anfangsdatum sollte dann noch ersichtlich sein.
Eine Eingabe in den Spalten D bis W ist erst nach Eingabe der der Auftragsummer in Spalte C möglich.
Ich würde mich sehr freuen und wäre dankbar wenn mir an dieser Stelle jemand helfen und einen Ansatz liefern kann. Ich hoffe meine Vorstellungen sind überhaupt realisierbar... Ich muss für die Erstellung einer Statistik die richtigen Eingaben durch andere Mitarbeiter gewährleisten können.
Mit freundlichen Grüßen
Sebastian

Bild

Betrifft: AW: Excel Eingabe erzwingen
von: Sepp
Geschrieben am: 04.07.2015 12:45:38
Hallo Sebastian,
erstens, in Excel ist nichts sicher, was wenn einer die Datei mit deaktiviertem VBA öffnet?
Zweitens kling das nach Auftragsprogrammierung, jedenfalls zu Umfangreich für ein Forum.
Und drittens würde ich die Eingaben per UserForm vornehmen, das ist einfacher zu kontrollieren, als direkt in der Tabelle.

Gruß Sepp


Bild

Betrifft: AW: Excel Eingabe erzwingen
von: KlausF
Geschrieben am: 04.07.2015 13:12:55
Hallo Sebastian,
nur mal so als Gedankenspiel:
[Ein verlassen der Zelle .... ist ohne vorherige Eingabe nicht möglich]
So würde man kaum programmieren. Wenn ich die vorige Zelle mit Enter verlasse und danach
feststelle, dass ich einen Fehler in meiner Eingabe getätigt habe, ist der natürliche Weg sofort
zurück zu gehen um die Eingabe zu korrigieren. Bei Deiner Vorgabe müsste ich erst alle anderen
Zellen abarbeiten. Das halte ich für praxisfremd ...
Gruß
Klaus

Bild

Betrifft: AW: Excel Eingabe erzwingen
von: Frank
Geschrieben am: 04.07.2015 14:52:17
Hallo Sebastian,
1. Zustimmung zu Sepp (irgendwer findet sich aber meistens, was dann zu ellenlangen Threads ausartet, weil immer noch was dazukommt)
2. Zustimmung zu Klaus
3. Prüfung auf Einhaltung der Kriterien bei Change-Ereignis/SelectionChange-Ereignis. Da kann man dann auch den Cursor an der Stelle plazieren, wo's hakt (klappt - wie von Sepp geschrieben - natürlich nicht bei deaktiviertem VBA).
4. Beispieltabelle hilft
Grüsse,
Frank

Bild

Betrifft: AW: Excel Eingabe erzwingen
von: Sebastian
Geschrieben am: 04.07.2015 16:36:19
Hallo zusammen,
erstmal vielen Dank für die schnellen Rückanworten. Ja ich denke auch das die Aufgabenstellung vllt. zu umfangreich für ein Forum ist... Ist mir als ich fertig war auch aufgefallen :-) Natürlich bin ich auch für Alterntive Vorschläge dankbar. Ich habe bereits ein paar Ansätze gefunden womit man durchaus schon was anfangen kann. Anbei habe ich ein "abgespecktes" Beispiel inkl. Makro angehängt.
Tabelle:

G/ I Auftragsnummer NR. Stadium Option Endtermin Liefer KW Kunde Typ usw...
Makro:

Sub Worksheet_Change(ByVal Target As Range)
'G/I
   If Target.Column = 2 Then
       If Not Target = "" Then
'Auftragsnumer
           Cells(Target.Row, 3).Select
           If Cells(Target.Row, 3) = "" Then
               Cells(Target.Row, 3) = InputBox("geben sie eine Auftragsnummer ein", "Eingabe  _
Auftragsnummer")
               Do Until Cells(Target.Row, 3) <> ""
                   MsgBox "Ein leeres Eingabefeld ist nicht zulässig"
                   Cells(Target.Row, 3) = InputBox("geben sie eine Auftragsnummer ein", " _
Eingabe Auftragsnummer")
               Loop
           Else
               Cells(Target.Row, 3) = InputBox("Stimmt die Auftragsnummer noch?", "Eingabe  _
Auftragsnummer", Cells(Target.Row, 3))
               Do Until Cells(Target.Row, 3) <> ""
                   MsgBox "Eine leeres Eingabefeld ist nicht zulässig"
                   Cells(Target.Row, 3) = InputBox("geben sie eine Auftragsnummer ein", " _
Eingabe Auftragsnummer")
                   
'Nr
               Loop
           End If
           Cells(Target.Row, 4).Select
           If Cells(Target.Row, 4) = "" Then
               Cells(Target.Row, 4) = InputBox("geben sie eine Nr. ein", "Eingabe Nr.")
               Do Until Cells(Target.Row, 4) <> ""
                   MsgBox "Eine leeres Eingabefeld ist nicht zulässig"
                   Cells(Target.Row, 4) = InputBox("geben sie eine Nr. ein", "Eingabe Nr.")
               Loop
           Else
               Cells(Target.Row, 4) = InputBox("Stimmt die Nr. noch?", "Eingabe Nr", Cells( _
Target.Row, 4))
               Do Until Cells(Target.Row, 4) <> ""
                   MsgBox "Eine leeres Eingabefeld ist nicht zulässig"
                   Cells(Target.Row, 4) = InputBox("geben sie eine Nr. ein", "Eingabe Nr.")
                   
'Stadium
                Loop
           End If
           Cells(Target.Row, 5).Select
           If Cells(Target.Row, 5) = "" Then
               Cells(Target.Row, 5) = InputBox("geben sie das Stadium ein", "Eingabe Stadium")
               Do Until Cells(Target.Row, 5) <> ""
                   MsgBox "Eine leeres Eingabefeld ist nicht zulässig"
                   Cells(Target.Row, 5) = InputBox("geben sie das Stadium ein", "Eingabe  _
Stadium")
               Loop
           Else
               Cells(Target.Row, 5) = InputBox("Stimmt das Stadium noch ?", "Eingabe Stadium",  _
Cells(Target.Row, 5))
               Do Until Cells(Target.Row, 5) <> ""
                   MsgBox "Eine leeres Eingabefeld ist nicht zulässig"
                   Cells(Target.Row, 5) = InputBox("geben sie das Stadium ein", "Eingabe  _
Stadium")
                   
'Option
                Loop
           End If
           Cells(Target.Row, 6).Select
           If Cells(Target.Row, 6) = "" Then
               Cells(Target.Row, 6) = InputBox("geben sie die Option ein", "Eingabe Option")
               Do Until Cells(Target.Row, 6) <> ""
                   MsgBox "Eine leeres Eingabefeld ist nicht zulässig"
                   Cells(Target.Row, 6) = InputBox("geben sie die Option ein", "Eingabe Option") _
               Loop
           Else
               Cells(Target.Row, 6) = InputBox("Stimmt die Option noch ?", "Eingabe Option",  _
Cells(Target.Row, 6))
               Do Until Cells(Target.Row, 6) <> ""
                   MsgBox "Eine leeres Eingabefeld ist nicht zulässig"
                   Cells(Target.Row, 6) = InputBox("geben sie die Option ein", "Eingabe Option") _
                   
               Loop
           End If
       Else
           Cells(Target.Row, 3).Clear
           Cells(Target.Row, 4).Clear
           Cells(Target.Row, 5).Clear
           Cells(Target.Row, 6).Clear
       End If
   End If
End Sub

Hier ist das Problem durch die Eingabe in der Textbox wird die Datenüberprüfung außer Kraft gesetzt. Am besten wäre die "erzwungene" Eingabe über das vordefenierte Drop Down Menü. Man sollte auch nach falscher Eingabe den vorherigen Wert noch korrigieren können. Allerdings dann alle anderen Eingaben weiter durchführen müssen... Kann jemand was mit dem Makro anfangen und vllt etwas ableiten?

Bild

Betrifft: AW: Excel Eingabe erzwingen
von: Herbert Grom
Geschrieben am: 05.07.2015 12:07:55
Hallo Sebastian,
falls Dir hier niemand helfen kann, aufgrund des Umfanges der Aufgabe, kann ich Dir meine Hilfe bzgl. Auftragsprogrammierung anbieten. Bei Interesse, sende mir eine eMail: hagrom at gmail.com und am besten gleich mit einer Beispieldatei, die möglichst exakt der späteren Benutzerdatei gleicht, da ich sonst fast immer alles doppelt machen muss. ;o)=)
Servus

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Excel Eingabe erzwingen"