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

Hilfe habs fast geschaft, Makro durch Zellinhalt

Hilfe habs fast geschaft, Makro durch Zellinhalt
06.07.2006 18:02:48
Peter
Hallo alle zusammen,
ich bastelle schon seit einiger Zeit an diesem Code und er läuft immer noch nicht perfekt.
Nachfolgender Code soll dazu dienen:
1. wenn in Zelle (E22) bzw (E28) bzw (E22 und E28) eine Zahl eingetragen wird sollen bestimmte Makros gestartet werden
2.und natürlich auch wenn ich in den jeweiligen Zellen über die "Entf" Taste den Inhalt wieder lösche.
Der 2. Teil lauft leider nicht.
Was ist da nicht in Ordnung.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If IsNumeric(Target) Then
Select Case Target.Address
Case "$E$22"
If Target.Value > 0 Or _
(Range("$E$22").Value > 0 And IsEmpty(Range("$E$28"))) Then Call Drehfeld11neu
If IsEmpty(Range("$E$22")) And Range("$E$28").Value > 0 Then Call Drehfeld125neu
If (Range("$E$22").Value > 0 And Range("$E$28").Value > 0) Or _
(IsEmpty(Range("$E$22")) And IsEmpty(Range("$E$28"))) Then Call Drehfeld126neu
Case "$E$28"
If Target.Value > 0 Or _
(IsEmpty(Range("$E$22")) And Range("$E$28").Value > 0) Then Call Drehfeld125neu
If Range("$E$22").Value > 0 And IsEmpty(Range("$E$28")) Then Call Drehfeld11neu
If Range("$E$22").Value > 0 And Range("$E$28").Value > 0 Or _
(IsEmpty(Range("$E$22")) And IsEmpty(Range("$E$28"))) Then Call Drehfeld126neu
Case Else
'do nothing
End Select
Else
MsgBox ("Nur Zahleneingaben sind zulässig!")
Target.Select
End If
End Sub

mfg Peter

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

Betreff
Datum
Anwender
Anzeige
AW: Hilfe habs fast geschaft, Makro durch Zellinhalt
06.07.2006 18:24:05
fcs
Hallo Peter,
da fehlen wohl nur noch 2 Klammern; hab ich wohl letztes mal selber vergessen :-(

Case "$E$28"
If Target.Value > 0 Or _
(IsEmpty(Range("$E$22")) And Range("$E$28").Value > 0) Then MsgBox "  Drehfeld125neu"
If Range("$E$22").Value > 0 And IsEmpty(Range("$E$28")) Then MsgBox "  Drehfeld11neu"
'Zusätzliche Klammern in der nächsten Zeile:
If (Range("$E$22").Value > 0 And Range("$E$28").Value > 0) Or _
(IsEmpty(Range("$E$22")) And IsEmpty(Range("$E$28"))) Then MsgBox "  Drehfeld126neu"

Gruß
Franz
AW: Hilfe habs fast geschaft, Makro durch Zellinhalt
06.07.2006 19:03:22
Peter
Hallo Franz,
tut mir leid aber funktioniert genauso wie vorher, in deinem Code ist auch keine Klammer dazugekommen (oder ich sehe sie nicht).
Nochmal zur Erklährung, zu dem was schon funktioniert soll follgendes noch kommen:
1.
- angenommen in E22 und E28 sind Zahlen
- ich entferne die Zahl aus E22
- dann soll das Makro für Zelle E28 also Drehfeld125neu starten
2.
- angenommen in E22 und E28 sind Zahlen
- ich entferne die Zahl aus E28
- dann soll das Makro für Zelle E22 also Drehfeld11neu sarten
3.
- angenommen in E22 und E28 sind Zahlen
- ich entferne die Zahl aus E28 und aus E22
- dann soll das Makro für Zelle E22 und E28 also Drehfeld126neu sarten
Danke
mfg Peter
Anzeige
AW: Hilfe habs fast geschaft, Makro durch Zellinha
06.07.2006 22:19:56
fcs
Hallo Peter,
ich hoffe so passt es endlich.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If IsNumeric(Target) Then
Select Case Target.Address
Case "$E$22"
'Ausgangssituation: Beide Zellen sind leer, Aktion: E22 wird ausgefüllt
If Range("$E$22").Value > 0 And IsEmpty(Range("$E$28")) Then Call Drehfeld11neu
'Ausgangssituation: Beide Zelle sind ausgefüllt, Aktion: Inhalt E22 wird entfernt
If IsEmpty(Range("$E$22")) And Range("$E$28").Value > 0 Then Call Drehfeld125neu
' Ausgangssituation: Zelle E28 ist ausgefüllt oder leer, Aktion: E22 wird ausgefüllt oder Inhalt gelöscht,
'anschließend sind beide Zellen leer oder ausgefüllt
If (Range("$E$22").Value > 0 And Range("$E$28").Value > 0) Or _
(IsEmpty(Range("$E$22")) And IsEmpty(Range("$E$28"))) Then Call Drehfeld126neu
Case "$E$28"
'Ausgangssituation: Beide Zellen sind leer, Aktion: E28 wird ausgefüllt
If IsEmpty(Range("$E$22")) And Range("$E$28").Value > 0 Then Call Drehfeld125neu
'Ausgangssituation: Beide Zelle sind ausgefüllt, Aktion: Inhalt E28 wird entfernt
If Range("$E$22").Value > 0 And IsEmpty(Range("$E$28")) Then Call Drehfeld11neu
' Ausgangssituation: Zelle E22 ist ausgefüllt oder leer, Aktion: E28 wird ausgefüllt oder Inhalt gelöscht
'anschließend sind beide Zellen leer oder ausgefüllt
If (Range("$E$22").Value > 0 And Range("$E$28").Value > 0) Or _
(IsEmpty(Range("$E$22")) And IsEmpty(Range("$E$28"))) Then Call Drehfeld126neu
Case Else
'do nothing
End Select
Else
MsgBox ("Nur Zahleneingaben sind zulässig!")
Target.Select
End If
End Sub

gruss Franz
Anzeige
AW: nochmals Korrektur
06.07.2006 23:13:30
fcs
HaAllo Peter,
Damit die Texteingabe in andere Zellen der TAbelle weiterhin möglich ist muß zunächst die Zellenadresse überprüft werden, bevor es an die Überprüfung der Zellinhalte geht.

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Address = "$E$22" Or Target.Address = "$E$28" Then
If IsNumeric(Target) Then
Select Case Target.Address
Case "$E$22"
'Ausgangssituation: Beide Zellen sind leer, Aktion: E22 wird ausgefüllt
If Range("$E$22").Value > 0 And IsEmpty(Range("$E$28")) Then Call Drehfeld11neu
'Ausgangssituation: Beide Zelle sind ausgefüllt, Aktion: Inhalt E22 wird entfernt
If IsEmpty(Range("$E$22")) And Range("$E$28").Value > 0 Then Call Drehfeld125neu
' Ausgangssituation: Zelle E28 ist ausgefüllt oder leer, Aktion: E22 wird ausgefüllt oder Inhalt gelöscht,
'anschließend sind beide Zellen leer oder ausgefüllt
If (Range("$E$22").Value > 0 And Range("$E$28").Value > 0) Or _
(IsEmpty(Range("$E$22")) And IsEmpty(Range("$E$28"))) Then Call Drehfeld126neu
Case "$E$28"
'Ausgangssituation: Beide Zellen sind leer, Aktion: E28 wird ausgefüllt
If IsEmpty(Range("$E$22")) And Range("$E$28").Value > 0 Then Call Drehfeld125neu
'Ausgangssituation: Beide Zelle sind ausgefüllt, Aktion: Inhalt E28 wird entfernt
If Range("$E$22").Value > 0 And IsEmpty(Range("$E$28")) Then Call Drehfeld11neu
' Ausgangssituation: Zelle E22 ist ausgefüllt oder leer, Aktion: E28 wird ausgefüllt oder Inhalt gelöscht
'anschließend sind beide Zellen leer oder ausgefüllt
If (Range("$E$22").Value > 0 And Range("$E$28").Value > 0) Or _
(IsEmpty(Range("$E$22")) And IsEmpty(Range("$E$28"))) Then Call Drehfeld126neu
Case Else
'do nothing
End Select
Else
MsgBox ("Nur Zahleneingaben sind zulässig!")
Target.Select
End If
End If
End Sub

gruss Franz
Anzeige
AW: läuft immer noch nicht
07.07.2006 10:22:22
Peter
Hallo Franz,
es tut mir unendlich leid, aber es läuft immer noch nicht.
Du hast die Ausgangssituationen und die Aktionen schon richtig verstanden.
Nach dem löschen der Zellen E22 oder E28 oder beiden wird jedoch kein Makro gestartet.
Vieleicht könntest du es erstmal bei dir testen.
mfg Peter
AW: ich habs geschafft
07.07.2006 10:50:56
Peter
Hallo Franz,
ich habs ganz anders gemacht.
1.
Ich habe 2 Hilfszellen R93 und R94 mit Wenn-Fkt. bestückt, die eine 1 erscheinen lassen wenn E22 oder E28 leer sind.
2.
Dann hab ich im Menü in Daten Gültigkeit den zugelassen Bereich der Zellen E22 und E28 festgelegt.
3.
Danach einen einfachen Code der außer den Zellen E22 E28 auch R93 und R94 mit einbezieht
und fertig!

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Range("$E$22").Value > 0 And Range("$R$94").Value > 0 Then Call Drehfeld11neu
If Range("$E$28").Value > 0 And Range("$R$93").Value > 0 Then Call Drehfeld125neu
If Range("$R$93").Value > 0 And Range("$R$94").Value > 0 Then Call Drehfeld126neu
If Range("$E$22").Value > 0 And Range("$E$28").Value > 0 Then Call Drehfeld126neu
If Range("$E$22").Value > 0 And Range("$R$94").Value > 0 Then Call Drehfeld11neu
If Range("$E$28").Value > 0 And Range("$R$93").Value > 0 Then Call Drehfeld125neu
If Range("$R$93").Value > 0 And Range("$R$94").Value > 0 Then Call Drehfeld126neu
If Range("$E$22").Value > 0 And Range("$E$28").Value > 0 Then Call Drehfeld126neu
End Sub

Danke trotzdem nochmal für deine Mühe und Ausdauer.
mfg Peter aus Berlin
Anzeige
AW: läuft immer noch nicht
07.07.2006 16:16:43
fcs
Hallo Peter,
so komplizierte Testbedingungen lasse ich doch nicht ungetest.
Hier meine Testdatei erstellt unter Excel 2003, hat aber auch unter Excel 97 funktioniert. Bei jeder Aktion in einer der beiden Zellen wird auch ein Makro ausgeführt. Ob Entfernen des Inhalts oder Ausfüllen, beides funktioniert!
https://www.herber.de/bbs/user/34924.xls
Gruß
Franz
AW: läuft immer noch nicht
07.07.2006 16:52:41
Peter
Hallo Franz,
ich hab deine Datei bei mir auf dem PC getestet und es funktioniert Tatsache alles.
Wenn ich deinen Code in meine Datei übernehme (wie schon die ganze Zeit) funktioniert besagter Teil nicht.
Kein Mensch weiss warum, ist aber nicht so schlimm, da ich ja, auch mit deiner Hilfe, besagte Lösung gefunden habe.
mfg Peter
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige