Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

trotz Dialogbox im Blatt bewegen?





Frage

N´abend werte Excelfreunde, wenn ich eine Dialogbox aufrufe, kann ich dort nicht raus, um z.B. im Blatt etwas nachzulesen, sondern erst, wenn der Dialog verlassen worden ist Läßt sich das umgehen in Excel97? Also, Dialogfenster bleibt im Aufruf, aber ich scrolle durch die Tabelle und gebe erst danach die Dialogantwort? MfG schnallgonz

Antwort 1 von Ahnan

Hallo,

entweder du nimmst eine UserForm u. Modeless. Bei Excel97 gibt es allerdings die vbModeless-Methode noch nicht. In Excel97 müsste dies so realisiert werden:

Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Private Declare Function EnableWindow Lib "user32" _
(ByVal hwnd As Long, ByVal bEnable As Long) As Long

Private Sub UserForm_Activate()
Dim hwndXL&
hwndXL = FindWindow("XLMAIN", Application.Caption)
If hwndXL <> 0 Then
EnableWindow hwndXL, 1
Application.CellDragAndDrop = False
End If
End Sub

Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
Application.CellDragAndDrop = True
End Sub


Ist übrigens von Michael Schwimmer u. du kannst Scrollen !

Oder du erzeugst ein zeitlich gebundenes Popupfenster(so wie MsgBox):

Sub MsgBox_und_Scrollen()
Dim WsShell
Dim intText As Integer
Set WsShell = CreateObject("WScript.Shell")
intText = WsShell.Popup("Ja oder Nein ?", 10, "Abfrage", vbYesNo + vbQuestion)
If intText = vbYes Then
MsgBox "Es wurde Ja gedrückt !"
Else
MsgBox "Es wurde Nein gedrückt !"
End If

End Sub


Die 10 bedeutet, dass das Fenster 10 sekunden aktiv bleibt. Danach wird es geschlossen. Diese Zeit kannst du ja noch oben verstellen. Während das Fenster "aktiv" ist, kann man scrollen.

Vielleicht hilfts

Gruss

Antwort 2 von schnallgonz

Hi Ahnan,
vielen Dank für die Antwort, ist ja nicht gerade leichte Kost.
Ich verwende in meinem Makro ein Dialogfenster mit mehreren Listboxes, ich habe die erste Lösung verwendet.

Einfach in den Code der UserForm, fettich :-))

Ich dachte, da muss ich mehr Gehirnschmalz einsetzen.
Motto:
Praxis = alles funzt, aber keiner weiß, warum.
Theorie = alles wissen, wie es geht , aber nichts funzt.

Also, der Code erschließt sich mir nicht, aber es klappt wunderbar, Danke.
MfG
schnallgonz