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

Infopopup ohne ok Bestätig.für Dauer d.Ausführung

Infopopup ohne ok Bestätig.für Dauer d.Ausführung
28.02.2005 10:20:28
DonFiala
Hallo,
brauche ein Infopopup (MsgBox), das, sobald mein Makro ausgeführt wird, anstatt der Sanduhr solange zu sehen ist, bis das Makro fertig ist und sich dann wieder dezent verdrückt! Da das Makro je nach Auswahl unterschiedlich lang läuft, ist ein festgelegter "Countdown" nicht so ideal! Wer weiss Rat?
Vielen Dank, Gruss michi
Anbei mein Makro:

Sub SpeichernManuell()
ActiveSheet.Copy
ActiveSheet.Unprotect "Password"
HIER DENKE ICH MÜSSTE DAS POPUPREIN!
Dim Zelle As Range
'erste Verknüpfung finden
Set Zelle = Cells.Find(What:="]", LookIn:=xlFormulas)
If Not Zelle Is Nothing Then
Do
Zelle = Zelle.Value
Set Zelle = Cells.FindNext(Zelle)
Loop While Not Zelle Is Nothing
End If
' Speicherprogramm
Dim DName As String, Dateiname As String, Pfad As String
Pfad = Range("U2")
DName = Range("R2")
Dateiname = Pfad & "\" & DName & Format(Range("G7"), "YYYY.MMM") & ".xls"
' Tagesdatum als "Jahr.Monat.Tag" wegen Exploreransicht!
ActiveWorkbook.SaveAs Filename:=Dateiname
MsgBox "Datei wurde erfolgreich unter dem Namen " & ActiveWorkbook.Name & " gespeichert."
ActiveWorkbook.Close
End Sub

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Infopopup ohne ok Bestätig.für Dauer d.Ausführ
28.02.2005 10:27:25
Matthias
Hallo DonFiala,
erstelle ein Userform mit der nötigen Info drin und der Eigenschaft ShowModal=False.
Dann, um das UF anzuzeigen:
UserForm1.Show
DoEvents
Um es auszublenden
Unload UserForm1
Um das Schließen mit dem X oben rechts zu verhindern, noch diesen Code ins Userform-Modul:
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
If CloseMode = 0 Then Cancel = True
End Sub
Gruß Matthias
AW: Infopopup ohne ok Bestätig.für Dauer d.Ausführ
28.02.2005 10:53:01
DonFiala
Hallo
Wie erstell ich denn ein Userform,
wie gesagt bin in VBA sehr schwach und suche mir alles immer nur sehr mühsam zusammen!
Gruss michi
Anzeige
auch ohne UserForm möglich...
UweD
Hallo
hier ein Beispiel ohne Userform.

Sub ZeitMsgbox()
Dim WsShell, Rück%
Set WsShell = CreateObject("WScript.Shell")
Rück = WsShell.Popup("Dieser Text verschwindet selbst !!!", 5 _
, "Überschrift ...")
' Die 5 in der letzten Zeile gibt die Dauer der Öffnung an.
' Rück ist -1 wenn keine Taste gedrückt wurde
' Rück ist 1 wenn OK gedrückt wurde
End Sub

Gruß UweD
AW: auch ohne UserForm möglich...
28.02.2005 13:21:13
DonFiala
Hallo Uwe,
das Makro klappt ganz gut, es verwindet von selbst!
Allerdings einen kleinen Schönheitsfehler hat das ganze. Bin mir relativ sicher, das während des Popups mein anderes Makro ruht, d.h. das Pop Up verscwhindet und dann dauert es noch ne ganze Zeit lang bis das Makro fertig ist, d.h. die Anweisungen werden nacheinander abgearbeitet. Ich wollte es urspünglich so, das das Infopopup verschwindet sobald die Berechnung durchgefüht ist... Hab ich evtl. nen Fehler in der Reihenfolge?
Vielen Dank aber schonmal! Gruss michi
Anzeige
AW: auch ohne UserForm möglich...
28.02.2005 14:18:56
DonFiala
Hallo Uwe,
das Makro klappt ganz gut, es verwindet von selbst!
Allerdings einen kleinen Schönheitsfehler hat das ganze. Bin mir relativ sicher, das während des Popups mein anderes Makro ruht, d.h. das Pop Up verscwhindet und dann dauert es noch ne ganze Zeit lang bis das Makro fertig ist, d.h. die Anweisungen werden nacheinander abgearbeitet. Ich wollte es urspünglich so, das das Infopopup verschwindet sobald die Berechnung durchgefüht ist... Hab ich evtl. nen Fehler in der Reihenfolge?
Vielen Dank aber schonmal! Gruss michi
AW: auch ohne UserForm möglich...
28.02.2005 21:22:43
Matthias
Hallo DonFiola,
...womit wir wieder beim nichtmodalen Userform wären. Das ist einfach zu handhaben und sieht auch gut aus, wenn man die Titelleiste mit diesem Code im Userform ausblendet:
Option Explicit
' Userform mit einem CommandButton (CoEnde), um die Userform
' zu schließen. Mit rechtsklick auf die Maus in der Userform
' wird diese ebenfalls geschlossen. Abschnitt:
' "Unload Speichermeldung ' Zum schließen, beim ausprobieren."
' von GraFri
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, _
ByVal wCmd As Long) As Long
Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As _
Long, lpRect As RECT) As Long
Private Declare Function ReleaseCapture Lib "user32" () As Long
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
(ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lparam As Any) As Long
Private Declare Function CreateRectRgn Lib "gdi32" (ByVal X1 As Long, _
ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hwnd As Long, _
ByVal hRgn As Long, ByVal bRedraw As Boolean) As Long
Private FensterRegion&, Region&
Private Hauptfensternummer&, Clientfensternummer&
Private dummy As Long
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Const GW_CHILD = 5
Private Const WM_NCLBUTTONDOWN = &HA1
Private Const HTCAPTION = 2
Private Sub UserForm_Initialize()
Call FensterOhneKopf
End Sub
Sub FensterOhneKopf()
Dim Abmessung  As RECT
Dim Abmessung1 As RECT
Dim Pos1x&, Pos1y&, Pos2x&, Pos2y&
If FensterRegion <> 0 Then Exit Sub
SpeicherMeldung.BorderStyle = fmBorderStyleNone
Call Fensternummer(SpeicherMeldung, Abmessung, Abmessung1)
Pos1x = 0
Pos1y = (Abmessung1.Top - Abmessung.Top)
Pos2x = Abmessung.Right - Abmessung.Left
Pos2y = Abmessung.Bottom - Abmessung.Top
Region = CreateRectRgn(Pos1x, Pos1y, Pos2x, Pos2y)
FensterRegion = SetWindowRgn(Hauptfensternummer, Region, True)
End Sub
'Fensterhandles und Infos über Fenster holen
Private Sub Fensternummer(Form As Object, Abmessung As RECT, Abmessung1 As RECT)
Dim Fenstername$, Suchstring$
Suchstring = "UserForm ohne Titelzeile"
Fenstername = Form.Caption
Form.Caption = Suchstring
Hauptfensternummer = FindWindow(vbNullString, Suchstring)
Form.Caption = Fenstername
Clientfensternummer = GetWindow(Hauptfensternummer, GW_CHILD)
dummy = GetWindowRect(Hauptfensternummer, Abmessung)
dummy = GetWindowRect(Clientfensternummer, Abmessung1)
End Sub
Private Sub UserForm_Activate()
Label1.Caption = "Bitte warten..."
DoEvents
End Sub

(Der Code ist nicht von mir, den hab' ich hier aus dem Forum.)
Gruß Matthias
Anzeige

33 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige