Live-Forum - Die aktuellen Beiträge
Datum
Titel
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1288to1292
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
Inhaltsverzeichnis

Fehler #WERT! bei zwei Befehlen in Makro

Fehler #WERT! bei zwei Befehlen in Makro
12.12.2012 18:23:12
Stefan
Guten Tag!
Rufe in einer Wenn-Funktion eine vba-function auf. Übergebe dabei den Text für ein Popup. Geht so weit auch die Ausführung des Pop-ups, aber wenn ich außer dem pop-up zB eine Zelle via vba in der Tabelle ändern möchte, dann bekomme ich immer den Fehlerwert #WERT! in meiner Wenn-Funktions-Zelle und der Befehl zusätzlich zum popup wird nicht ausgeführt?
Public Function Hinweis(parametertext As String)
Call Hinweisausgeben(parametertext) 'Makro welches Popup macht
Hinweis = 9
End Function

Public Sub Hinweisausgeben(meldung)
MsgBox meldung, 48, "Hinweis1"
Range(20, 20).Clear  'AB DA GEHT NIX MEHR!! Wenn ich diese Zeile weglasse dann gehts!
End Sub
Bitte um Hilfe. Vielen Dank.
Stefan

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Fehler #WERT! bei zwei Befehlen in Makro
12.12.2012 18:33:01
Matze,Matthias
Hallo Stefan,
Range(20, 20) ? soll was sein ? eine Zelle ? 20te Zeile,20te Spalte ?
Cells(20,20).clear
Matze

Das ist noch nicht alles, ...
12.12.2012 19:37:36
Luc:-?
Matze,
denn Stefan ruft die udFkt ja in einer Fml, wohl als Argument eines WENN-Konstrukts, auf. Nach deiner Berichtigung wird die MsgBox (ist streng genommen kein PopUp, Stefan!) zwar erscheinen (das tat sie ja auch vorher), aber nichts wird gelöscht wdn, weil Fktt keine anderen Zellen als die eigene StandortZelle verändern und auch andere Objekte nur stark eingeschränkt handhaben können/dürfen.
Es nutzt dabei gar nichts, diesen Teil in eine Subroutine auszulagern, wenn diese von der udFkt direkt aufgerufen wird (also könnte die MsgBox auch in die udFkt integriert wdn). Es geht aber, wenn man den Aufruf physisch von der udFkt entkoppelt und ihn zB von einer Ereignisprozedur, die die StandortZellen der udFkt überwacht, erledigen lässt (zum Stichwort physische Entkopplung sollte auch im Archiv was zu finden sein, aber Vorsicht – nicht massenhaft einsetzen! Außerdem wird die AutoKalk durch MsgBox behindert).
Alternativ könnte/müsste man die WinAPI „vergewaltigen“, um so etwas zu ermöglichen.
Empfehlung an Stefan: Verzichte auf das Ganze!
Gruß Luc :-?

Anzeige
AW: Das ist noch nicht alles, ...
12.12.2012 20:16:56
Stefan
hallo,
danke für die schnellen Antworten.
Ja Range(20,20) ist einfach eine Zelle die zB gelöscht werden sollte. Aber wie Luc erkannt hat geht es nicht konkret um diesen befehl. schade ich dachte ich hab nur einen kleinen syntax-fehler, aber das mit dem entkoppeln klingt kompliziert. ich werde mal nachlesen.
vielen dank, Stefan

AW: Fehler #WERT! bei zwei Befehlen in Makro
13.12.2012 08:59:26
Tino
Hallo,
eine Function aus einer Zelle aufgerufen kann keine andere Zelle bearbeiten oder beeinflussen.
Du kannst aber einen Timer setzen und die Sub nach der Function aufrufen.
Beispiel:
Private Declare Function SetTimer Lib "user32.dll" ( _
ByVal hWnd As Long, _
ByVal nIDEvent As Long, _
ByVal uElapse As Long, _
ByVal lpTimerFunc As Long) As Long
Private Declare Function KillTimer Lib "user32.dll" ( _
ByVal hWnd As Long, _
ByVal nIDEvent As Long) As Long
Private hEvent&, Meldung$
Function Hinweis(ParameterText As String)
Hinweis = 9
Meldung = ParameterText
hEvent = SetTimer(0&, 0&, 100, AddressOf HinweisAusgeben)
End Function
Private Sub HinweisAusgeben()
KillTimer 0&, hEvent: hEvent = 0
MsgBox Meldung, 48, "Hinweis1"
Cells(20, 20).Clear
Meldung = ""
End Sub
Gruß Tino
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige