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

Arbeitsblatt scrollen, trotz Msgbox

Arbeitsblatt scrollen, trotz Msgbox
Robert
Hallo zusammen,
ich stehe wieder vor einem scheinbar unlösbaren Problem.
Laut Forum, kann man per UserForm durch ein Dokument scrollen, leider weiß ich nicht wie man eine UserForm erstellt.
Zum Problem:
Ich habe eine Excel Datei die per Makro eine Word Datei öffnet, in der Daten aus Excel verknüpft sind.
Gleichzeit mit dem Öffnen der Word Datei erscheint in Word die Abfrage (MsgBox), ob die Daten korrekt sind.
Leider kann man dies aber nicht kontrollieren, da man in der Word Datei nicht scrollen kann, während die MsgBox erscheint.
Gibt es einen VBA Befehl, der das Scrollen im Hintergrund aktiviert? Oder eine andere Lösung, wie ich eine Abfrage erstelle und gleichzeitiges Scrollen ermögliche?
Mit diesem Befehl erstelle ich die MsgBox in Word:
objWord.WordBasic.MsgBox "Bitte Daten prüfen!", vbOK + vbExclamation
Vielen Dank vorab für Hilfe und Vorschläge!
Robert
AW: Arbeitsblatt scrollen, trotz Msgbox
17.06.2010 19:20:53
Oberschlumpf
Hi Robert
Erstelle in Word im VBE ein Userform
- Öffne in Word den VBE mit Alt-F11
- such im linken Bereich den Eintrag "ThisDocument", klick mit rechte Maustaste drauf, wähle Einfügen + Userform aus
- gestalte das Userform so, wie du es haben möchtest (dass es aussieht, wie deine MsgBox)
- such im linken Bereich wieder den Eintrag "ThisDocument", klick doppelt drauf
- wähle oberhalb des größten Fensters aus der linken Combobox ("Allgemein" steht drin) den Eintrag "Document" aus
- wähle oberhalb des größten Fensters aus der rechten Combobox ("New" steht drin) den Eintrag "Open" aus
- trag nun im großen Fenster unterhalb der Comboboxen zwischen den schon zwei bestehenden Befehlen diesen Befehl ein:
Userform1.Show 0
Fertig (denke ich)
Jedes Mal,wenn nun die Word-Datei geöffnet wird, erscheint automatisch das Userform.
Hilft das?
Wenn nicht, zeig uns ne Bsp-Datei.
Ciao
Thorsten
Anzeige
AW: Arbeitsblatt scrollen, trotz Msgbox
18.06.2010 13:11:03
Robert
Hi Thorsten,
vielen Dank für Deinen Tipp, aber leider funktioniert es noch nicht, wie gewünscht.
Ich vermute es liegt daran, dass mit Öffnen der Word Datei automatisch der Druckdialog per Makro gestartet wird und anschließen der "Speicher Dialog" gefolgt von "Word schließen", was das Öffnen der Userform scheinbar verhindert.
Hier ist mein Makro aus Excel was zum Öffnen, Drucken, Speichern und Schließen der Datei führt:
'Word Datei öffnen
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Open("C:\Rechnungen\Automatische Rechnungsvorlagen\Q-Rechnung Test.doc", ReadOnly:=True)
objWord.Visible = True
'Drucken
objWord.Dialogs(wdDialogFilePrint).Show
'Speichern
Set objWord = objDoc.Parent
objWord.Activate
objDoc.Fields.Unlink
With objWord.FileDialog(msoFileDialogSaveAs)
.InitialFileName = "C:\Rechnungen\Automatische Rechnungsvorlagen\Test Nr. " & Renu & "-" _
& ThisWorkbook.Sheets("Export Rechnung").Range("B5").Value & ".doc"
If .Show = -1 Then
'es wurde ein Dateiname gewählt
vFilename = .SelectedItems(1)
objDoc.SaveAs Filename:=vFilename
Else
'es wurde der Auswahlvorgang abgebrochen
End If
End With
'Word schließen
objWord.Documents.Close savechanges:=0
objWord.Quit
Set objWord = Nothing
Set objDoc = Nothing
Das Scrollen im Hintergrund des Druckdialogs zu ermöglichen geht nicht?!
Wie könnte ich das Öffnen der UserForm, vor Öffnen des Druckdialogs erwzingen?
Besten Dank und viele Grüße
Robert
Anzeige
hmm.....
18.06.2010 13:19:38
Oberschlumpf
Hi Robert
...Hilft das?
Wenn nicht, zeig uns ne Bsp-Datei....

Hast du das nicht gelesen?
Ich weiß nich, wie Andere denken, aber ich mag weder deine, noch die Dateien von wem anders nachbauen, da du deine Datei doch schon vorliegen hast!
Wo is das Problem, dass du von deiner Datei eine Bsp-Datei erstellst, und sie uns zeigst?
Ciao
Thorsten
AW: hmm.....
18.06.2010 16:03:15
Robert
Hi Thorsten...
sorry, habe das noch nie gemacht mit einem File Upload.
Anbei findest Du die Datei inkl. Makros.
Vielleicht ist ja so auf den ersten Blick eine Lösung zu erkennen?!
Viele Grüße
Robert
https://www.herber.de/bbs/user/70143.xls
Anzeige
nur Teillösung...vllt jemand anders?
18.06.2010 16:42:38
Oberschlumpf
Hi Robert
Hier mein Versuch
https://www.herber.de/bbs/user/70146.zip
...der aber leider noch nicht ricthig funktioniert.
Es geht nun:
Die Word-Datei wird geöffnet, und dank nachgebauter MsgBox kannst du nun innerhalb der Word-Datei scrollen
Es geht nicht:
der ganze Code in der Excel-Datei, der nach Klick auf OK der alten MsgBox ausgeführt wird, muss nun in dem Userform (nachgenaute MsgBox) im Klick-Ereignis des OK-Buttons stehen.
Ich habe den Code zwar von Excel nach Word gebracht, aber der Code funktioniert so in Word noch nicht.
Da ich von Word-VBA nicht soo viel Ahnung habe, müsstest du die ganzen Befehle in Word-VBA umwandeln.
Der Code in Excel, der die Excel-Datei schließt, darf auch erst ausgeführt werden, nachdem die Word-Datei geschlossen wurde - wie das geht, weiß ich leider auch nicht.
Ich lasse den Thread mal offen.
Ciao
Thorsten
Anzeige
AW: nur Teillösung...vllt jemand anders?
23.06.2010 10:39:16
Robert
Hallo Thorsten,
kam erst heute dazu, mir Deinn Beitrag anzusehen!
1000 Dank für die Hilfe.
Ich denke damit kann ich dann übr Word VBA zu einer Lösung kommen!
Viele Grüße
Robert
AW: nur Teillösung...vllt jemand anders?
23.06.2010 12:17:43
Robert
Hey Thorsten,
habe nun einiges im Word Makro angepasst, aber stoße dann auf das Problem,
dass ich nicht mehr automatisch den Dateinamen zum Abspeichern auswählen kann, den ich ja aus der Excel Datei ziehe.
Gibt es denn nicht eine Möglichkeit, dass ich per Excel Makro eine UserForm starte, die direkt mit Öffnen der Word Datei aufpoppt? Und nach bestätign dann zum Fortsetzen des Excel Makoros führt?
Beste Grüße
Robert
Anzeige
vielleicht so, mit API u. WshShell.Popup
18.06.2010 17:34:18
Tino
Hallo,
hier mal eine Version die bei ersten Tests sehr vielversprechend aussieht.
Option Explicit
 
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 SetWindowPos Lib "user32" _
  (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, _
   ByVal X As Long, ByVal Y As Long, ByVal cx As Long, _
   ByVal cy As Long, ByVal wFlags As Long) As Long
   
Private Declare Function KillTimer Lib "user32.dll" ( _
  ByVal hwnd As Long, _
  ByVal nIDEvent As Long) As Long
  
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long

Const FLAGS = 2 Or 1
Const HWND_TOPMOST = -1

Dim strMSG_Titel$, lngTimer&

Sub Msg_Foreground()
Dim L_hWnd As Long

L_hWnd = FindWindow(vbNullString, strMSG_Titel)
If L_hWnd <> 0 Then _
    KillTimer 0&, lngTimer: _
    SetWindowPos L_hWnd, HWND_TOPMOST, 0, 0, 0, 0, FLAGS

End Sub
 
Sub test()
Dim WshShell As Object
Dim intMSGBOX As Integer

lngTimer = SetTimer(0&, 0&, 50, AddressOf Msg_Foreground)
Set WshShell = CreateObject("WScript.Shell")

strMSG_Titel = "Test MSGB" 'Titel der Msgbox 

'************************************************************** 
'Syntax  Popup(Text,[Timer in Sekunden],[Titel],[Value Button]) 
intMSGBOX = WshShell.Popup("Test Nachricht", 0, strMSG_Titel, 64)

'Value Button 
    '0 OK 
    '1 OK , Cancel 
    '2 Abort , Ignore, Retry 
    '3 Yes , No, Cancel 
    '4 Yes , No 
    '5 Retry , Cancel 
    '16 Critical 
    '32 Question 
    '48 Exclamation 
    '64 Information 
'************************************************************** 

KillTimer 0&, lngTimer

strMSG_Titel$ = "": lngTimer = 0
End Sub
Gruß Tino
Anzeige
AW: hier noch ein ausgebautes Beispiel.
23.06.2010 10:40:57
Robert
Hey Tino!
Vielen Dank für Deinen Vorschlag.
Ich muss mal versuchen, ob sich das ganze so in Word einbauen lässt.
Habe gerade noch Mühen, Dein Programmiertes nachzuvollziehen, da ich nicht ganz so fit bin in VBA. ;)
Besten Dank nochmal!
Robert
AW: hier noch ein ausgebautes Beispiel.
23.06.2010 10:46:33
Robert
Hey Tino!
Vielen Dank für Deinen Vorschlag.
Ich muss mal versuchen, ob sich das ganze so in Word einbauen lässt.
Habe gerade noch Mühen, Dein Programmiertes nachzuvollziehen, da ich nicht ganz so fit bin in VBA. ;)
Besten Dank nochmal!
Robert
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige