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

Makro will nicht.... !!

Makro will nicht.... !!
26.07.2004 13:57:06
Dieter.K
Hallo Forum,
ich glaube heute stehe wieder einmal auf der Leitung.
Ich benutze folgenden Code in Tabelle2 damit sich in Tabelle2 eine UF öffnet, wenn in Tabelle1 in Zelle B48 der Wert 2 steht.
Option Explicit

Sub Warnung()
If Sheets("Tabelle1").Range("B48") = 2 Then
frmHinweis.Show
End If
End Sub

Der Code wird aber nicht automtisch ausgeführt, d.h. die UF blendet sich nicht ein wenn Zelle B48 = 2 ist.
Wenn ich über Extras / Makro / Makro ausführen das Makro aufrufe wird mir die UF eingeblendet. Hat jemand einen Tip für mich, oder findet einen Fehler in meinem Code?
Danke für Eure Hilfe
Gruß
Dieter.K

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

Betreff
Datum
Anwender
Anzeige
AW: Makro will nicht.... !!
P@ulchen
Hi Dieter,
wie kommt denn die "2" in die betreffende Zelle ?
Gruß aus Leipzig
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
AW: Makro will nicht.... !!
26.07.2004 14:37:51
Dieter.K
Hallo Paulchen,
die "2" kommt als Rückgabewert eines Kombinationsfeldes aus der Formularleiste in die betreffende Zelle. Ich denke, genau das ist das Problem.
Gruß
Dieter.K
AW: Makro will nicht.... !!
P@ulchen
Hi Dieter,
soll heißen, das Kombifeld befindet sich im Blatt 2, die Rückgabe erfolgt im Blatt 1 ?
Gruß aus Leipzig
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
Anzeige
AW: Makro will nicht.... !!
26.07.2004 15:01:53
Dieter.K
Hallo Paulchen,
genau so ist es. Liegt hier das Problem?
In einer anderen Mappe benutze ich den selben Code mit dem Unterschied, daß der Rückgabewert von einer Optionsschaltfläche aus der Formularleiste kommt. In dieser Mappe wird die UF automatisch eingeblendet.
Dafür gibt es bestimmt eine einfache Erklärung. Meine VBA-Kenntnisse reichen aber leider nicht so weit.
Ich sollte noch hinzufügen, daß in beiden Mappen noch eine Menge anderer UF zu Einsatz kommen. Nur, in der einen Mappe funktioniert es und in der anderen nicht.
Gruß
Dieter.K
AW: Makro will nicht.... !!
P@ulchen
Hi Dieter,
warum fragst Du nicht direkt das DropDown-Feld ab ? Wenn "B48" nur die Rückgabezelle des Menüs ist, dann könntest Du doch auch so verfahren:

Sub Warnung()
If Sheets("Tabelle2").Shapes("Drop Down 1").OLEFormat.Object.Value = "2" Then frmHinweis.Show
End Sub

Dieses Makro nur noch dem DropDown zuordnen...sollte funktionieren...
Gruß aus Leipzig
P@ulchen
Das Forum lebt auch von den Rückmeldungen !
Anzeige
AW: Makro will nicht.... !!
26.07.2004 16:54:12
Dieter.K
Hallo Paulchen,
erst einmal Danke für Deine Hilfe.
Leider ist der Code in meiner Mappe nur einmal gelaufen. Bei wiederholter Änderung des Dropdownfeldes passiert nichts mehr.
Trage ich Deinen Code in eine leere Mappe ein funktioniert er einwandfrei.
Ich denke, dass hängt mit dem übrigen Code in meiner Mappe zusammen.
Im Tabellenblatt steht allerdings ansonsten kein weiterer Code.
Vielleicht muß ich etwas weiter ausholen um den Sinn zu verdeutlichen der mit dem Code erzielt werden soll.
Ich habe verschiedene Dropdownfelder in dem Tabellenblatt.
Die einzublendende UF soll abhängig von der Auswahl in einem Dropdownfeld (hier Rückgabewert „2“) und einem Kontrollkästchen sein. Als Beispiel: der zweite Wert im Dropdownfeld ist „ROT“, über das Kontrollkästchen aktiviere ich die Auswahl „GLAS“. Wenn der Wert „ROT“ ist und das Kontrollkästchen aktiviert wird, soll die UF eingeblendet werden.
Da sich beide Teile (Dropdown und Kontrollkästchen) in einem Tabellenblatt befinden, soll natürlich in beide Richtungen geprüft werden (wenn erst Kontrollkästchen aktiviert wird und dann im Dropdownfeld auf „ROT“ geschaltet wird soll die UF ebenfalls eingeblendet werden). Das Kontrollkästchen muß in beiden Fällen nach schließen der UF (geschieht im Augenblick mit unload.me) deaktiviert werden.
Ich hoffe, ich nerve mit meiner Frage nicht zu sehr.
Gruß
Dieter.K
Anzeige
AW: Makro will nicht.... !!
26.07.2004 17:32:42
Dieter.K
Hallo Paulchen,
dank Deines Codes habe ich es, glaube ich, geschafft. Mit folgendem Code läuft es:
IM TABELLENBLATT
Sub Warnung()
If Sheets("Tabelle2").shapes("Drop Down 2").OLEFormat.Object.Value = "2" And Sheets("Tabelle2").shapes("Check Box 7").OLEFormat.Object.Value = "1" Then frmHinweis.Show
End Sub
IN UF frmHinweis

Private Sub CommandButton1_Click()
Unload Me
Sheets("Tabelle2").shapes("Check Box 7").OLEFormat.Object.Value = "0"
Range("C4").Select
End Sub

Nochmals besten Dank für Deine Hilfe.
Grüße von der Mosel
Dieter.K
Anzeige
AW: Makro will nicht.... !!
26.07.2004 14:07:56
Henry
Hallo Dieter,
Du musst das Worksheet_Change-Ereignis abfragen, damit Excel dann bei einer
entsprechenden Eingabe die gewünschte Aktion ausführt. Für Dein Beispiel könnte
es also in etwa so aussehen:

Sub Worksheet_Change(ByVal Target As Range)
Dim rngIsect As Range
Set rngIsect = Intersect(Target, Range("48"))
If rngIsect Is Nothing Then Exit Sub
If rngIsect = "2" Then
frmHinweis.Show
End if
End Sub

Grüße
Henry
AW: Ups, Tippfehler!
Henry
Es muss natürlich heißen
Set rngIsect = Intersect(Target, Range("B48"))
Ich hatte das "B" unterschlagen.
Das ganze musst Du dann in das Worksheet_Change-Ereignis der Tabelle1 eintragen.
Also denne
Anzeige
AW: Ups, Tippfehler!
26.07.2004 15:06:43
Dieter.K
Hallo Henry,
leider funktioniert Dein Code bei mir nicht. Auch nicht in einer komplett leeren Mappe.
Ich weiß nicht woran es liegen könnte.
Trotzdem besten Dank für Deine Hilfe.
Gruß.
Dieter.K
AW: Makro will nicht.... !!
26.07.2004 14:10:37
Harald
Hallo Dieter,
Du musst den Code in das Codeblatt des Tabellenblattes eingeben. Dazu öffnmest Du das Codeblat, indem Du den Tabellenreiter am unteren Rand der tabelle mit der rechten Maustaste anklickst und "Code anzeigen" klickst.
Dann im VBA-Editor den Code eingeben:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Worksheet.Name = "Tabelle1" And_
Target.Column = 2 And_
Target.Row = 48 Then
MsgBox "Änderung in Tabelle1!B48"
End If
End Sub

Gruß Harald
Anzeige
AW: Makro will nicht.... !!
26.07.2004 15:07:57
Dieter.K
Hallo Harald,
leider funktioniert auch Dein Code bei mir nicht.
Auch nicht in einer komplett leeren Mappe.
Ich weiß nicht woran es liegen könnte.
Trotzdem besten Dank für Deine Hilfe.
Gruß
Dieter.K

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige