Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
856to860
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
856to860
856to860
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Pflichteinträge

Pflichteinträge
22.03.2007 22:17:00
Lenhard
Moin Moin!
Mein Problem: Wenn in Zelle A1 etwas eingetragen wurde, dann müssen in den Zellen A2 und A3 (...oder auch mehr, aber kein Muss!) weitere Einträge gemacht werden.
Das Ganze spielt sich in einer Zeile ab.
Wenn die Zeile verlassen wird und keine Einträge in A2 und A3 (...oder auch mehr) gemacht werden, dann soll eine Message Box erscheinen und den Pflichteintrag melden.
Nach dem Bestätigen der Meldung wäre es von großem Vorteil, wenn die 1. noch nicht ausgefüllte Zelle (hier A2) automatisch angesteuert wird ...oder es wird A3 angesteuert, wenn in A2 ein Eintrag besteht.
Dann soll es aber in der Zeile 2 weiter gehen. Wenn in Zelle B1 etwas eingetragen wurde, dann müssen in den Zellen B2 und B3 (...oder auch mehr, aber kein Muss!) weitere Einträge gemacht ...usw. usw. usw.
Ich bin offen für VBA. Aber vielleicht ist es auch möglich via "Bedingte Formatierung" und oder "Gültigkeit". Meine Versuche ergaben aber bis jetzt keine Ergebnisse....
Gruß
Lenhard
PS ....war hier im Forum nicht bereits so eine Anfrage?! ...ich bin mir nicht sicher. Jedenfalls finde ich via "Suche" nix... ..."aber mir war da so..."

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Pflichteinträge
23.03.2007 02:52:00
fcs
Hallo Lenhard,
per bedingter Formatierung kann man schon Musszellen farblich markieren.
Beispiel für Zelle B1, wobei für die bedingte Formatierung eine Fornel eingegben wird.
=WENN(UND(NICHT( ISTLEER(A1));ISTLEER(B1));WAHR;FALSCH)
Mit dieser Bedingung wird die Zelle B1 gemäß Bedingung formatiert sobald in Zelle A1 ein Wert eingegeben wird. Sobald in B1 ein Wert eingetragen, wird B1 wieder normal dargestellt.
Mit Datengültigkeit kann man Musseingaben nicht abfangen, da entsprechende Prüfungen erst nach der Dateneingabe in der jeweiligen Zelle erfolgen.
Das automatische Selektieren der nächsten Musseingabe-Zelle läßt sich nur via VBA erreichen.
Gruß
Franz
Anzeige
AW: Pflichteinträge
23.03.2007 12:18:00
Lenhard
Moin Franz!!
Ja das habe ich mir schon gedacht! ...dass das Ganze nur über ein VBA-Skript geht und ich hoffe ja auf Antworten hier im Forum.
Deine Idee (...an die ich auch dachte) ist gut, hat nur den entscheidenden Nachteil, das sie in der Zelle steht, in die ja ein Eintrag erfolgen soll bzw. muss.
"Bedingte Formatierung" und/oder "Gültigkeit" - wenn auch verschachtelt über ausgeblendete Nebenzellen - empfinde ich als nicht allzu elegant. Ganz zu Schweigen von dem Datenaufkommen welches mir wieder mal eine Excel-Datei "aufbläht" ...ach was rede/schreibe ich denn: Es geht vermutlich überhaupt nicht.
VBA-"mäßig" kann ich mir ja die Grundstruktur denken: Wenn ZelleA1 Text dann mussODERerwartet ZelleA2, ZelleA3 Text usw. usw.
...so fange ich ja an zu denken, habe aber leider die Logik-Codes noch nicht drauf. Ich suche in meinen Büchern , in der VBA-Hilfe (die in mir wirklich ambilvalente Gefühle auslöst) und durchforste das Internet und Foren nach Lösungen...
Also: "Pflichteinträge" wer kann mir helfen oder hat den entscheidenden Tip, wo so etwas bereits schon mal im Forum "durchdacht" wurde....
Vielen Dank! ...noch mal, Franz!
Gruß
Lenhard
Anzeige
AW: Pflichteinträge
24.03.2007 00:39:00
fcs
Hallo Andy,
ich hab in der hochgeladenen Datei mal für 2 Blätter eine Eingabeüberwachung per VBA-Code reingebastelt. Überwacht werden die Spalten A bis C als Muss-Eingaben, die Spalten D bis F als Kann-Eingaben. In Spalte B werden zusätzlich zulässige Eingabewerte überwacht.
Im Blatt 1 ist die Überwachung rigoros, d.h. eine Zelle mit Musseingabe kann solange nicht verlassen werden, bis ein Wert eingegeben ist.
Im Blatt 2 sind die Prozeduren etwas einfacher gehalten, die Überwachung ist die gleiche und die nachste nicht ausgefüllten Musseingabe wird selektiert. Jedoch wird danach nicht geprüft, ob eine Eingabe auch tatsächlich gemacht wurde.
Die Eingabeüberwachung ist wesentlich komplizierter geworden als gedacht, um alle möglichen Sonderfälle abzudecken.
https://www.herber.de/bbs/user/41345.xls
Gruß
Franz
Anzeige
AW: Pflichteinträge
24.03.2007 01:31:59
Lenhard
Moin Franz!
Vielen Dank für Deine Antwort! Ich schaue sie mir morgen genauer an und melde mich dann noch mal!
Es ist nun Spät in der Nacht und ich wünsche allen einen geruhsamen Schlaf mit netten Träumen!
Gruß
Lenhard
PS ...wie kommst Du auf "Andy"? Macht nix, ich schmunzel darüber!
AW: Pflichteinträge
24.03.2007 12:37:49
Lenhard
Moin Moin Franz!
Also wie Du das in der "Tab1" mit dem VBA-Skript gelöst hast, so habe ich es auch in den Grundzügen gemeint. Echt KLASSE! Vielen Dank!
Seit Stunden bin ich nun dabei, dieses Skript auf mein xls-Projekt zu übertragen... ...es kommen aber immer wieder Fehlermeldungen! Ich verstehe die Zusammenhänge noch zu wenig!
Mein xls-Projekt:
Spalte E Musseintrag wenn Einträge in die Spalten F, G und I / Spalte J Kann-Eintrag
Wenn in Spalte E ein Eintrag ist, dann weitere Musseinträge in die Spalten F, G und I
Erst wenn die Spalten E, F, G und I Einträge haben, geht es in die nächste Zeile
Das Ganze beginnt in der Zeile 9 und endet in der Zeile 48 (falls das noch wichtig ist).
Darf ich Dich da noch mal um Deine Mithilfe bitten?!
Gruß
Lenhard
Anzeige
AW: Pflichteinträge
24.03.2007 22:28:36
fcs
Hallo Lenhard,
ich hab das Makro nochmals gründlich überarbeitet, so dass die Anpassung an die zu prüfenden Spalten jetzt sehr einfach ist.
Die zu prüfenden Spalten (Muss und Kann) werden jetzt in 2 Arrays als Parameter an die Subroutine übergeben.
Falls du zusätzlich die Gültigkeit der Eingabewerte prüfen möchtest, dann kannst du dies via Daten--Gültigkeit machen. In der Beispieldatei hab ich es für 2 Spalten eingebaut.
https://www.herber.de/bbs/user/41375.xls
Gruß
Franz
AW: Pflichteinträge
24.03.2007 23:09:00
Lenhard
Moin Franz!!
...ich war und bin gerade dabei mich mit Deinem älteren Skript auseinander zu setzen und mir ist da auch so einiges gelungen!!! ...aber da waren noch einige Fragezeichen. Da dachte ich mir, schau mal ob Franz sich wieder gemeldet hat.
Vielen Dank Franz, für Deine erneute Mühe!! So was schüttelst Du also mal eben aus dem Handgelenk... ...für mich irgendwie frustrierend! Aber ich gebe nicht auf!!
Ich setze mich mit Deinem neuen Skript erst einmal auseinander. Aber ich glaube: Es ist unglaublich gut!
Den "VBA-Beep" konnte ich schon mal abstellen... ;-))
Das mit den zulässigen Einträgen A,B oder C in der Spalte J hätte mich auch fast aus der Bahn geworfen (erinnernd an Dein älteres Skript, wo Du so etwas in den VBA-Text mit rein geschrieben geschrieben hattest) ...und nun der alte Trick mit der "Gültigkeit". Nun sitz ich hier und schmunzel! :-))
Ich melde mich noch mal, ob ich damit nun klar komme! Bis dann!
Gruß
Lenhard
Anzeige
AW: Pflichteinträge
25.03.2007 00:06:00
Lenhard
So Franz! ...ich habe mir Dein Skript genauer angesehen: Es funktioniert in Deiner Excel-Datei so, wie ich es mir für meine Datei wünsche!!
Bei dem Versuch Dein Skript nun in das VBA meines betreffenden Tabellenblattes einzufügen gibt es allerdings Schwierigkeiten.
Es gibt Probleme mit der Zeile "Private Sub Worksheet_Change(ByVal Target As Range)". Diese ist bereits für ein anderes Skript im Tabellenblatt belegt.
Darf ich Dich nochmals um Hilfe bitten. Was von Deinem Skript kommt wo genau hin?
Auch bin ich ein wenig verwirrt. Gehört das ganz unten stehende "Private Function SpalteBuchstaben(Spalte As Integer) As String" überhaupt mit dazu?
Vielen Dank für Deine Mühe!
Gruß
Lenhard
Anzeige
AW: Pflichteinträge
25.03.2007 20:52:00
fcs
Hallo Lenhard,
wenn du bereits eine Prozedur "Private Sub Worksheet_Change(ByVal Target As Range)" im Code des Blattes hast, dann muss du meinen und den bereits vorhanden Code zusammenführen.
Etwa so:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'Dein vorhandenen Code Anfang
'Dein vorhandenen Code Ende (ohne Zeile End Sub)
'Überprüfung der Eingabe in Zellen in Zeilen 9 bis 48
'Prüfung arbeitet nur wenn einzelne Zellen geändert werden.
'Beim kopieren mehrer Zellen etc. wird die Prüfung übersprungen
If Target.Cells.Count = 1 And Target.Row >= 9 And Target.Row 

Du muss allerdings sicherstellen, dass bei der zusammengeführten Prozedur auch die If-Bedingungen für die Target-Zelle immer korrekt abgearbeitet werden. Ohne Kenntnis deiner vorhandenen Prozedur kann ich keine genauen Infos geben.
Die Function wird zum Erzeugen des Ausgabetextes für eine MsgBox verwendet in der Zeile
        If MsgBox("Inhalt in Spalte wurde gelöscht!" & vbLf & vbLf _
& "Soll der Inhalt in allen Eingabe-Zellen der Zeile gelöscht werden?", _
vbquesten + vbYesNo, "Eingabeprüfung Spalte " & SpalteBuchstaben(Zelle.Column)) =  _
vbYes Then

der Prüfprozedur.
Wenn du das " & SpalteBuchstaben(Zelle.Column)" löscht, dann kannst du die Function auch weglassen.
Gruß
Franz
Anzeige
AW: Pflichteinträge
25.03.2007 22:03:55
Lenhard
Ja Moin Franz!!
Vielen Dank für Deine Hilfe und Antworten! Ich glaube, nicht nur ich als "VBA-Noch-Wenig-Wisser" hat hier viel gelernt, sondern auch alle anderen, die unseren Dialog - mit Deinen Konstruktiven Vorschlägen - verfolgt haben!!
Es läuft nun alles rund!!
Vielen vielen Dank noch mal!
Gruß
Lenhard
AW: Pflichteinträge
25.03.2007 11:15:15
Lenhard
Moin Moin Franz!
Ich glaube, ich bin auf dem richtigen Weg ....hoffe ich zumindestens. Ich glaube nämlich, Dein Skript richtig "eingebaut" zu haben, erhalte jedoch noch folgende MessageBox-Meldung:
Microsoft Visual Basic, Laufzeitfehler '424': Objekt erforderlich
....im folgenden ist dann die 4.Zeile im gelb unterlegt.....
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
'Überprüfung ob leere Musszelle ausgefüllt wurde
Application.EnableEvents = False
If Not ZelleL Is Nothing Then '''========DIESE ZEILE IST DANN GELB UNTERLEGT
If IsEmpty(ZelleL) Then
ZelleL.Select
' MsgBox "In diese Zelle muss ein Wert eingetragen werden"
' VBA.Beep
Application.StatusBar = "In diese Zelle muss ein Wert eingetragen werden"
Else
Set ZelleL = Nothing
Application.StatusBar = False
End If
Else
Application.StatusBar = False
End If
--------------------------------
Prüft Dein Skript eigentlich nur den Bereich Spalte F, G und I / Spalte J, Zeile 9 bis 48?
...oder auch den Ganzen anderen Bereich des Tabellenblattes?
Wenn ich mich nämlich in einem anderen Bereich als angegeben etwas eingeben will, kann ich es nicht, da es immer wieder in den einzugebenden Bereich "springt" (....puuhhh, ich hoffe, mich richtig auszudrücken).
Kann man den zu prüfenden Bereich nicht nur auf den oben beschriebenen beschränken? Ich glaube nämlich, das es - unter anderen - ein Konflikt mit meiner Spalte C ist, Zeile 7 und 9 bis 48.
Gruß
Lenhard
Anzeige
AW: Pflichteinträge
25.03.2007 20:02:58
Lenhard
Moin Franz! ....ich glaube, es begriffen zu haben: Es hat etwas mit "Hirarchie" zu tun.
Ich bin von ganz vorne angefangen. Ich habe das kpl. alte VBA-Skript für meine betreffende Tabelle gelöscht und dann erst mal Dein "Pflichteinträge"-Skript eingefügt. Es lief alles total rund und richtig gut!
Dann habe ich meine alten Einträge die nicht unter der Überschrift PrivateSubWorksheet_Change(ByVal Target As Range) vermerkt waren "unter" Deinem Skript eingefügt (CommandButton usw. usw.).
Zu guter letzt habe ich alle meinen alten Einträge, die unter PrivateSubWorksheet_Change(ByVal Target As Range) liefen in Dein Skript mit der - fast - gleichen Überschrift mit rein gesetzt... ...und zwar ganz nach unten vor dem "EndSub".
Das wars!! ...nun läuft alles!!!
Dafür nun erst mal meinen allerherzlichsten Dank an Dich! Einfach Toll!!!!
Nur noch eine Frage: Folgendes Unter-Skript, welches bei Deinem mit dabei war, verstehe ich nicht so ganz...

Private Function SpalteBuchstaben(Spalte As Integer) As String
'Spaltennummer in Buchstaben umwandeln
Select Case Spalte
Case 0
SpalteBuchstaben = "Upps, Fehler"
Case Is 
Magst Du mir das bitte noch mal ein wenig erklären?! Vielen Dank!
Gruß
Lenhard ....und nochmals Vielen Dank!!
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige