Live-Forum - Die aktuellen Beiträge
Datum
Titel
02.12.2024 13:15:39
02.12.2024 12:41:41
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender Navigationstipps
Inhaltsverzeichnis

Absturz nach DoEvents...

Absturz nach DoEvents...
08.03.2005 15:25:06
Wieland
Hallo Excel-Fachleute,
ich habe da ein Problem mit DoEvents:
Nachdem ich die Steuerung an das Betriebssystem übergeben habe, um während des Makrolaufs das Blatt zu wechseln, stürzt mir Excel ab. Dies tritt ein, sobald ich ein anderes Blatt aktivieren möchte, während zwei Mappen geöffnet sind. Ist dagegen nur eine Mappe geöffnet funktioniert das ganze einwandfrei und ich kann problemlos innerhalb Excel navigieren.
Hat jemand eine Idee, wie man den Absturz vermeiden kann? In meinem Fall müssen zwei Mappen gleichzeitig geöffnet sein.
Vielen Dank
Wieland

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

Betreff
Datum
Anwender
Anzeige
AW: Absturz nach DoEvents...
08.03.2005 16:30:20
Josef
Hallo Wieland!
Warum musst du (VBA gut) ein Blatt aktivieren?
Wahrscheinlich versuchst du ein Blatt der nicht aktiven Mappe zu aktivieren.
Ohne den Code ist das aber nur geraten!
Gruß Sepp
P.S.: Rückmeldung nicht vergessen!


AW: Absturz nach DoEvents...
08.03.2005 17:01:50
Wieland
Hallo Josef, vielen Dank für die Antwort.
So gut sind meine VBA-Kenntnisse nun auch nicht, aber ich komme doch einigermaßen klar. Man betritt einfach immer wieder Neuland, wo es dann hapert. Zu meinem Problem:
Ich möchte aus einer Mappe heraus, von der aus ich Module kopiere etc. auch Tabellenblätter austauschen. Diese möchte ich aber vorher sehen, daher die Aktivierung des Blattes. Dies ist auch der Grund, weshalb zwei Mappen aktiv sind, wobei es dann zum Absturz kommt. Ich möchte quasi "dialogunterstützt" sehen, welches Blatt ich gerade in welcher Mappe austausche. Ich weiß, dass man das ganze auch in Excel ohne VBA lösen könnte, aber wenn man mal mehrere Mappen zu bearbeiten hat ist man mit VBA einfach besser dran. Anbei ein Teil des noch unvollständigen Kodes.
Gruß Wieland
Private Declare

Function GetAsyncKeyState Lib "user32" _
(ByVal vKey As Long) As Integer
Option Explicit

Sub Blätter_tauschen()
'Version vom 8-3-05
Dim Ok As Variant
Dim Blatt, Mappe1, Pfad1, Datname1, Mappe2, Pfad2, Datname2 As String
Application.EnableEvents = False 'Makros ausschalten, auch Auto_open !
'Auswahl der Mappe:
ChDrive "H:\Wartung"
Mappe1 = Application.GetOpenFilename("Excel-Arbeitsmappen (*.xls),*.xls", 1, "   Welche Excel-Mappe soll geändert werden ?")
If Mappe1 = False Then Exit Sub
Pfad1 = Left(Mappe1, InStrRev(Mappe1, "\"))
Datname1 = Right(Mappe1, Len(Mappe1) - InStrRev(Mappe1, "\"))
Workbooks.Open Filename:=Mappe1, UpdateLinks:=0
Ok = MsgBox(" Bitte das Blatt auswählen, das getauscht werden soll . . ." & vbLf & vbLf & " Weiter mit < ENTER >", vbOKOnly, _
"   Blätter tauschen")
'Unterbrechen der Programmausführung
Do
DoEvents
If (GetAsyncKeyState(&HD)) <> 0 Then Exit Do 'Hexadezimalcodeeingabe ist erforderlich!
Loop
'*************Absturz********************
Blatt = ActiveSheet.Name
ActiveSheet.Delete
End Sub

Anzeige
AW: Absturz nach DoEvents...
11.03.2005 07:39:26
Wieland
Hallo Matthias,
danke für den Tipp, habe deinen Vorschlag aufgenommen und eine Liste aller Blätter in einem separaten Blatt erstellt. Bei nur einer aktiven Arbeitsmappe funktioniert DoEvents auch ganz prima. Gruß Wieland
Anzeige

25 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige