Problem mit Excel 97 Makros unter Excel 2003

V&M

Grünschnabel
Hi Leute,

Ich habe mehrer miteinander arbeitende Excelmakros die unter Excel 97 ohne Probleme laufen. Nun habe ich Excel 2003 auf meinen Firmenrechner und die Makros funktionieren nicht mehr.:mad:

Bei der Auswertung der Errordatei bekam ich den Laufzeitfehler 1004 der besagt das ein anderes Makro nicht gefunden werden konnte. Da die Ordnerstrucktur sich nicht verändert hat und und die Makros unter Excel 97 funktionierten nehme ich an das es irgendeine Inkompatibilität zuwischen Excel 97 und 2003 geben muss.:confused:

Ich hab außerdem die VB Code der Makros mehrfach debugt und mich über Makroaufrufe unter VB in mehreren Foren informiert. Konnte aber mit meinen beschränkten VB Kenntnissen keinen Fehler finden.

hier ist mal der VB 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 die mit eingefügten Variablen so aussieht:

Application.Run "ZUGPRF32.XLS" & "!" & "ZugVersuche", _
Ver_Datei

Ich bin dankbar für jede Hilfe
 
Hi Leute,

nachdem ich Stunden über Stunden im Code rumgehackt habe und dann gar nix mehr funktionierte.
Habe ich das Orginal wieder verwendet und die Pfadangaben wieder an das aktuelle System angepasst und
Oh Wunder:ES LAUFT:suspekt:

Ich weiß zwar nicht warum aber ich halt das jetzt mal so:Never touch a runnig system.

Ich danke den Leuten die sich das Problem mal durchgelesen haben.
 
Zurück