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

Unterprozedur läuft nicht durch

Unterprozedur läuft nicht durch
28.01.2004 10:49:54
Jürgen
Guten Morgen,
ich hatte mir eine Prozedur erstellt, um Daten in einer Excel-Tabelle mit einer Wordtabelle abzugleichen und zu aktualisieren.
Bisher lief diese Prozedur auch korrekt (habe den Code auch nicht verändert).
Als ich die Prozedur heute erneut aufgerufen habe, merkte ich am Ergebnis, dass sie nicht vollständig abgearbeitet wurde. Im Einzelschrittmodus stellte ich fest, dass die aufgerufene Unterprozedur an der im nachstehenden Code gekennzeichneten Stelle die Codezeile noch ausführt und dann die gesamte Prozedur beendet wird.
Habe auch die On-Error-Anweisung auskommentiert, um zu sehen, ob vielleicht ein Fehler auftritt - aber nichts.


Sub Daten_Aktualisieren()
'Bildschirmaktualisierung ausschalten
Application.ScreenUpdating = False
   
On Error Resume Next
... (weiterer Code)
'Prozedur zum Kopieren der Word-Tabelle aufrufen
Call WordTabelle_In_Excel_Importieren(dName, bl_IstWordAktiv)
... (weiterer Code)
End Sub
________________________________________________________________________________________
Private Sub WordTabelle_In_Excel_Importieren(Datei As String, AnwendungAktiv As Boolean)
  Dim wdDok As Object
  Dim mydata As DataObject
  Application.ScreenUpdating = False
  
  Set wdDok = GetObject(Datei)
  wdDok.Tables(1).Range.Copy
  Cells(1, 1).Activate
  '*********************************************************************
  'die nachstehende Codezeile wird ausgeführt und dann beendet Excel die
  'weitere Code-Ausführung  
  ActiveSheet.Paste
  '*********************************************************************  
  'Leerstring in Zwischenablage setzen, um Fehlermeldung zu unterbinden
  'bei wdDok.Parent.Quit
  Set mydata = New DataObject
  mydata.SetText ""
  mydata.PutInClipboard
  
  Application.DisplayAlerts = False
  wdDok.Quit
  Application.DisplayAlerts = True
  
  Set wdDok = Nothing
  
  Application.ScreenUpdating = True
  
End Sub

     Code eingefügt mit Syntaxhighlighter 2.5

Wäre nett, wenn mir jemand bei der Fehlersuche weiterhelfen könnte.
Danke.
Jürgen

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Unterprozedur läuft nicht durch
28.01.2004 11:39:29
Alex K.
Hallo Jürgen,
erst einmal würde ich
Application.ScreenUpdating = True
setzen, damit du siehst, was Excel macht. Vielleicht kommt ja auch ein Excel-Fehler bei "Application.Paste", wenn die Daten aus der Zwischenablage nicht "sauber" sind.
Auf jeden Fall über "On Error REsume Next" Fehler abfangen, in dem du nach den Anweisungen
wdDok.Tables(1).Range.Copy
und
ActiveSheet.Paste
ein Fehlerhandling einsetzt:

If Err.Number <> 0 Then
Msgbox Err.Number & ": " & Err.Description
err.clear
end If

AW: Unterprozedur läuft nicht durch
28.01.2004 12:32:24
Jürgen
Hallo Alex,
vielen Dank für den Hinweis. Ich werde es gleich 'mal ausprobieren.
Gruß
Jürgen
Anzeige
Unterprozedur läuft immer noch nicht
28.01.2004 15:24:15
Jürgen
Hallo,
ich habe den Tipp von Alex umgesetzt und im Code die Err.Number abgefragt. Nach einigem Hin- und Herprobieren habe ich den Code wie folgt umgeschrieben, um den Fehler noch weiter eingrenzen zu können:


Private Sub WordTabelle_In_Excel_Importieren(Datei As String, AnwendungAktiv As Boolean)
  Dim wdDok As Object
  Dim myTable As Table
  Dim myRange As Object
  
Application.ScreenUpdating = True
On Error Resume Next
Set wdDok = GetObject(Datei)
Set myTable = wdDok.Tables(1)
  If Err.Number <> 0 Then
   MsgBox Err.Number & ": " & Err.Description
   Err.Clear
  End If
Set myRange = myTable.Range
  If Err.Number <> 0 Then
   MsgBox Err.Number & ": " & Err.Description
   Err.Clear
  End If
  
myRange.Copy
Cells(1, 1).Activate
On Error Resume Next
ActiveSheet.Paste
  If Err.Number <> 0 Then
   MsgBox Err.Number & ": " & Err.Description
   Err.Clear
  End If
... (weiterer Code)

     Code eingefügt mit Syntaxhighlighter 2.5

Die Prozedur läuft fehlerfrei bis zur Zeile ActiveSheet.Paste und endet dann; in die Folgezeile läuft die Prozedur erst gar nicht mehr, um einen evtl. Fehler anzuzeigen (geprüft im Einzelschrittmodus!).
Dadurch, dass die Zeile ActiveSheet.Paste noch ausgeführt wird, wird die Wordtabelle zwar in Excel eingefügt, aber der nachfolgende Code, mit dem z.B. die Exceltabelle formatiert werden soll, kann gar nicht mehr ablaufen.
Jetzt weiß ich nicht, wo der Fehler liegen könnte.
Hat vielleicht jemand noch einen Tipp?
Für's Grübeln schon vorab vielen Dank.
Gruß
Jürgen
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige