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

Before_Save Frage

Before_Save Frage
19.09.2005 09:56:35
Michael
Guten Morgen!
Ich habe ein Arbeistblatt erstellt, indem einige Pflichtfelder auszufüllen sind!
Wenn man die Datei speichern will, wird ständig überprüft, ob die entsprechenden Felder ausgefüllt sind! Ist dies nicht der Fall wird eine MsgBox ausgegeben!
Nun zu meiner Frage: Wenn kann ich ein Pfeil (oder ähnliches) erzeugen, die das Feld markiert welches noch auszufüllen ist?
Mein Code lautet:
If Worksheets("Tabelle1").TextBox2 = "" Then
Cancel = True
MsgBox "Sie müssen noch Ihren Namen angeben!"
Exit Sub
End If
Für eure Hilfe bedanke ich mich voraus!
Gruß Michael

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Before_Save Frage
19.09.2005 11:20:34
Heiko
Hallo Michael,
was hälst du denn von einer Änderung der Hintergrundfarbe der entsprechenden Textbox, z.B. so.
If Worksheets("Tabelle2").TextBox1 = "" Then
Cancel = True
MsgBox "Sie müssen noch Ihren Namen angeben!"
' Rot
Worksheets("Tabelle2").TextBox1.BackColor = &HFF&
' Weiss
' Worksheets("Tabelle2").TextBox1.BackColor = &H80000005
Exit Sub
End If
Gruß Heiko

PS: Rückmeldung wäre nett !
AW: Before_Save Frage
19.09.2005 11:39:43
Michael
Hallo Heiko!
Keine schlechte Idee!
Aber das Feld müßte dann auch wieder weiß werden, wenn etwas drinsteht! Tut es jetzt nicht und ich weiß aber auch nicht wie das geht!
Weiterhin hab ich auch noch einige OptionButtons als Pflichtfelder, da könnte ich mit dieser Methode höchstens die jeweilige Zeile oder Zelle farbig markieren!
Alles in allem wäre es super, wenn du noch eine Idee für einen Code zur Erstellung von Pfeilen (oder anderen Symbolen) hättest!?
Gruß Michael
Anzeige
AW: Before_Save Frage
19.09.2005 12:03:32
Heiko
Hallo Michael,
dann z.B. so:

Sub Pfeil_Erzeugen()
Dim dblLeft As Double, dblTop As Double
' Diese erzeugt einen Pfeil in Tabelle2 links neben Textbox1, Sheets und Textbox müssen
' dann natürlich felxibel angepaßt werden
dblLeft = CDbl(Sheets("Tabelle2").TextBox1.Left) + CDbl(Sheets("Tabelle2").TextBox1.Width) + 10
dblTop = CDbl(Sheets("Tabelle2").TextBox1.Top) + 10
ActiveSheet.Shapes.AddShape(msoShapeLeftArrow, dblLeft, dblTop, 100#, 15#).Name = "HinweisPfeil001"
DoEvents
MsgBox "Noch is er da", vbInformation
ActiveSheet.Shapes("HinweisPfeil001").Delete
End Sub

Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: Before_Save Frage
19.09.2005 13:34:13
Michael
Hallo Heiko!
Dein code scheint zu funktionieren, aber ich kann nirgendwo den erzeugten Pfeil sehen!?
Hab den Code in "Diese Arbeitsmappe" geschrieben, ist doch richtig oder?
Gruß
AW: Before_Save Frage
19.09.2005 12:58:55
Heiko
Hallo Michael,
habe gerade noch ein bisschen gespielt und das ist dabei rausgekommen. Eine Flexible lösung. Vielleicht kannst du damit ja noch was anfangen

Sub MakeArrow(strSheetName As String, strTextBoxName As String)
' strSheetName = Name des Sheets in dem der Pfeil erscheinen soll.
' strTextBoxName = Name der TextBox oder Checkbox oder ... neben dem der Pfeil erscheinen soll.
' Aufruf z.B. so: MakeArrow "Tabelle2", "Textbox2"
' oder z.B.   so: MakeArrow "DatenBlatt", "OptionButton1"
Dim dblLeft As Double, dblTop As Double
' Wenn noch ein Hinweispfeil da ist, diesen erstmal löschen da es sonst Probleme gibt.
On Error Resume Next
If ActiveSheet.Shapes("HinweisPfeil001").Visible = True Then
ActiveSheet.Shapes("HinweisPfeil001").Delete
End If
On Error GoTo Errorhandler
dblLeft = CDbl(Sheets(strSheetName).OLEObjects(strTextBoxName).Left) + CDbl(Sheets(strSheetName).OLEObjects(strTextBoxName).Width) + 10
dblTop = CDbl(Sheets(strSheetName).OLEObjects(strTextBoxName).Top) + 10
ActiveSheet.Shapes.AddShape(msoShapeLeftArrow, dblLeft, dblTop, 100#, 15#).Name = "HinweisPfeil001"
ActiveSheet.Shapes("HinweisPfeil001").Fill.ForeColor.SchemeColor = 10
Exit Sub
Errorhandler:
MsgBox " Sheet oder Objekt (TextBox, CheckBox ...) konnte nicht gefunden werden !", vbCritical
End Sub


Sub Test()
MakeArrow "Tabelle2", "CommandButton1"
End Sub


Sub Löschen()
On Error Resume Next
If ActiveSheet.Shapes("HinweisPfeil001").Visible = True Then
ActiveSheet.Shapes("HinweisPfeil001").Delete
End If
End Sub

Gruß Heiko

PS: Rückmeldung wäre nett !
Anzeige
AW: Before_Save Frage
19.09.2005 13:56:57
Michael
Hallo Heiko!
Auch in diesem Falle läuft dein Code!
Aber ich sehe den erzeugten Pfeil nicht! Wo liegt mein Problem?
Gruß Michael
AW: Before_Save Frage
19.09.2005 14:33:36
Heiko
Hallo Michael,
hier nochmal ne neue Version zum anschauen. Damit kannst du nun auch mehrere Pfeile erzeugen und löschen. Siehe Tabelle 2.
https://www.herber.de/bbs/user/26737.xls
Gruß Heiko

PS: Rückmeldung wäre nett !

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige