Hi Leute,
Um eins am Anfang klar zustellen: ich habe keine VB Kenntnisse, habe die Excelmakros von einem Kollegen übernommen und schon Stunden in Foren verbracht und leider keine Lösung gefunden
Das Makro was ich verwende wurde für Excel 97 aufgenommen und soll jetzt unter Excel 2003 laufen, was es an sich auch tut.
Es soll Daten aus externen Dateien lesen und eine Grafik ausgeben.
Dies geschiet über mehrere Aufrufe anderer Makros, bei denen nach dem wechsel auf Excel 2003 nun der Laufzeitfehler 1004 auftritt.
Durch diesen Laufzeitfehler schliesse ich das es das andere Makro nicht finden kann, was aber eigentlich nicht sein kann da sich nichts an der Ordnerstrucktur geändert hat und des Fehler erst mit dem Wechel der MS Office Version aufgetretten ist.
Mit Excel 97 funktioniert es auch noch ohne Probleme, aber ein downgrade auf die alte Version steht außer frage.
Ich habe die Syntax des Makros auch schon kontrolliert und mir als Leihe ist kein offensichtlicher Fehler aufgefallen.
Mein Frage ist nun wo liegt der Fehler und/oder gibt es inkompatibilitäten zwischen den VB Versionen die in Excel 97 bzw. Excel 2003 verwendet werden?
Hier ist der Fehlerhafte Code
Der Fehler tritt in Zeile 360 auf
360 Application.Run Macro:=AnwKurzMacroName & "!" & AnwenderSub, _
Arg1:=Ver_Datei
Ich bin für jede Hilfe dankbar.
Gruß
V&M
P.S. Ich Idiot hab doch glatt vergessen das das meine Betrieb noch kein Office 2007 sondern noch 2003. und Sorry nochmals für das falsche Thema
Um eins am Anfang klar zustellen: ich habe keine VB Kenntnisse, habe die Excelmakros von einem Kollegen übernommen und schon Stunden in Foren verbracht und leider keine Lösung gefunden
Das Makro was ich verwende wurde für Excel 97 aufgenommen und soll jetzt unter Excel 2003 laufen, was es an sich auch tut.
Es soll Daten aus externen Dateien lesen und eine Grafik ausgeben.
Dies geschiet über mehrere Aufrufe anderer Makros, bei denen nach dem wechsel auf Excel 2003 nun der Laufzeitfehler 1004 auftritt.
Durch diesen Laufzeitfehler schliesse ich das es das andere Makro nicht finden kann, was aber eigentlich nicht sein kann da sich nichts an der Ordnerstrucktur geändert hat und des Fehler erst mit dem Wechel der MS Office Version aufgetretten ist.
Mit Excel 97 funktioniert es auch noch ohne Probleme, aber ein downgrade auf die alte Version steht außer frage.
Ich habe die Syntax des Makros auch schon kontrolliert und mir als Leihe ist kein offensichtlicher Fehler aufgefallen.
Mein Frage ist nun wo liegt der Fehler und/oder gibt es inkompatibilitäten zwischen den VB Versionen die in Excel 97 bzw. Excel 2003 verwendet werden?
Hier ist der Fehlerhafte Code
Code:
Sub GrafikErzeugen(ByVal DruckMappe As String, ByVal Kpf_Datei As String)
'============================================'
' Message drucken und anschliesslich löschen '
'============================================'
Static ModulName As String
Dim Ver_Datei As String, _
Ve2_Datei As String, Kp2_Datei As String, _
Alt_Datei As String, Neu_Datei As String, _
ProcesName As String, LogoName As String, _
AnwenderSub As String, i As Integer, Anzahl_Charts As Integer, _
Anzahl_Charts_Totall As Integer
Dim MeldungText2 As String
Dim AnwKurzMacroName2 As String, Kurz_Ver_Datei2 As String
ModulName = "GrafikErzeugen"
1 On Error GoTo FehlerBehandlung
AnwKurzMacroName2 = Empty
Kurz_Ver_Datei2 = Empty
20 Ver_Datei = Left(Kpf_Datei, Len(Kpf_Datei) - 3) & "VER"
'-------------------------------------------
' KurzeName Ver_datei (ohne Pfad) ermitteln
'-------------------------------------------
170 i = [WWSTD.XLS].InZnFr(Ver_Datei, "\")
180 Kurz_Ver_Datei = Right(Ver_Datei, Len(Ver_Datei) - i)
190 Kurz_Ver_Datei = UCase(Kurz_Ver_Datei)
'------------------------------------------
' Anwendung-Macro aus Kopf-Datei ermitteln
'------------------------------------------
200 AnwenderMacroName = [WWSTD.XLS] _
.GetIniDaten(Kpf_Datei, Empty, "ANWENDER-MACRO")
210 If WWSTD_Fehler <> 0 Then
220 Error WWSTD_Fehler
230 End If
'------------------------------------------------------------------
' Physikalische-Name des AnwenderMacros aus GRFDRU.PAR Datei lesen
'------------------------------------------------------------------
240 AnwenderMacroName = [WWSTD.XLS].GetIniDaten(MyParamDataei, _
"Anwender-Macros", AnwenderMacroName)
290 i = InStr(AnwenderMacroName, " ")
300 AnwenderSub = Right(AnwenderMacroName, _
Len(AnwenderMacroName) - i)
310 AnwenderMacroName = Left(AnwenderMacroName, i - 1)
320 i = [WWSTD.XLS].InZnFr(AnwenderMacroName, "\")
330 AnwKurzMacroName = Right(AnwenderMacroName, _
Len(AnwenderMacroName) - i)
340 AnwKurzMacroName = UCase(AnwKurzMacroName)
'------------------------------------------------------------------
' Anwender-Macro aufrufen
' ( Grafik/Tabelle auf dem Bildschirm erzeugen (um sie zu drucken))
'------------------------------------------------------------------
350 Workbooks.Open FileName:=AnwenderMacroName
AnwKurzMacroName2 = AnwKurzMacroName
360 Application.Run Macro:=AnwKurzMacroName & "!" & AnwenderSub, _
Arg1:=Ver_Datei
' Bei Fehler im AnwKurzMacroName Sprung zur Fehler-Routine
380 If WWSTD_Fehler <> 0 Then
390 Error USER_MACRO_FEHLER
400 End If
'-------------------------------------------------------------------
' Alle Charts suchen (, die im Anwender-Macro erzeugt wurden) lesen
' und DruckMappe verschieben.
'-------------------------------------------------------------------
405 LogoName = [WWSTD.XLS].GetIniDaten(MyParamDataei, "Parameter", "Logo")
410 Anzahl_Charts = Workbooks(Kurz_Ver_Datei).Charts.Count
415 Anzahl_Charts_Totall = Workbooks(DruckMappe).Charts.Count
420 For i = 1 To Anzahl_Charts
423 Workbooks(Kurz_Ver_Datei).Charts(Anzahl_Charts - i + 1).Activate
424 Workbooks(Kurz_Ver_Datei).Charts(Anzahl_Charts - i + 1).Deselect
425 Workbooks(Kurz_Ver_Datei).Charts(Anzahl_Charts - i + 1).Select
' V&M-Loge hinzufügen
426 ActiveChart.Pictures.Insert(LogoName).Select
427 Selection.ShapeRange.ScaleWidth 0.09, True
428 Selection.ShapeRange.ScaleHeight 0.09, True
' V&M-Beschrieftug setzen
429 ActiveChart.TextBoxes.Add(17, 7, 50, 40).Select ' Datum
430 With Selection
431 .Placement = xlMoveAndSize
432 .Interior.ColorIndex = xlNone
433 .Characters.Text = "Vallourec & Mannesmann Tubes"
'540 .Font.FontStyle = "Fett"
434 .Font.Size = 5
435 .Font.ColorIndex = 16
436 .HorizontalAlignment = xlCenter
437 .VerticalAlignment = xlCenter
438 .AutoSize = True
439 End With
460 Workbooks(Kurz_Ver_Datei).Charts(Anzahl_Charts - i + 1).Move _
after:=Workbooks(DruckMappe).Sheets(Anzahl_Charts_Totall + i)
470 Workbooks(DruckMappe).Sheets(Anzahl_Charts_Totall + i + 1).Name = _
"Diagr." & Trim(Str(Anzahl_Charts_Totall + i))
Next i
'----------------------------------------------------------------------
' Die Mappe vom Usermacro schliessen. Seine Grafikblätter wurden schon
' in DruckMappe verschoben.
'----------------------------------------------------------------------
' Falls man die Daten Schlißt (*.VER), dann unverständlicherweise
' wird die X-Achsenbeschriftung im Diagramm zersört. Deswegen schließt
' man hier die *.Ver Tabelle nicht, sondern nach dem Drucken, was nicht
' so schön ist.(Excel Bug ?)
'--> Workbooks(Kurz_Ver_Datei).Close savechanges:=False
' User-Macro hat schon alles getan und wird geschlossen
620 Application.Windows(AnwKurzMacroName).Close _
savechanges:=False
Exit Sub ' Ende der Routine
'=============================================
' Hier kommt man automatisch im Fehler-Fall
'=============================================
FehlerBehandlung:
810 Select Case Err
Case USER_MACRO_FEHLER
820 MeldungText = "Fehler " & "AnwenderMacro_Err = " & WWSTD_Fehler & _
" im User-Macro " & AnwKurzMacroName & _
". Diagramm wurde nicht gedruckt !"
830 End Select
930 Reply_Code = 0
940 SetTrace (ModulName)
950 Err.Raise Err.Number
'-----------------------------------------------------
' Nach dem Fehler wird die nächste Message verarbeitet
'-----------------------------------------------------
870 If AnwKurzMacroName2 <> Empty Then
880 Application.Windows(AnwKurzMacroName).Close savechanges:=False
885 Application.Windows(Kurz_Ver_Datei).Close savechanges:=False
890 End If
End Sub
Der Fehler tritt in Zeile 360 auf
360 Application.Run Macro:=AnwKurzMacroName & "!" & AnwenderSub, _
Arg1:=Ver_Datei
Ich bin für jede Hilfe dankbar.
Gruß
V&M
P.S. Ich Idiot hab doch glatt vergessen das das meine Betrieb noch kein Office 2007 sondern noch 2003. und Sorry nochmals für das falsche Thema
