ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
3796
3796
EMPFEHLEN
-
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 2007 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 2007 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 2007 verwendet werden?
Hier ist der Fehlerhafte Code
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
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
Ich bin für jede Hilfe dankbar.
Gruß
V&M
-
Oh vergessen der Fehler tritt bin Zeile 360 auf.
360 Application.Run Macro:=AnwKurzMacroName & "!" & AnwenderSub, _
Arg1:=Ver_Datei
Gruß
V&M
-
21.07.08 13:02 #3
- Registriert seit
- Jul 2008
- Ort
- Hinter dem Mond gleich links
- Beiträge
- 735
Zwei Dinge sind unendlich: Die menschliche Dummheit und das Universum, nur bei letzterem bin ich mir noch nicht sicher. - Albert Einstein
Code vb:1
If Beitrag.Hilfreich=True Then Bewertung.Send("Positiv")
-
28.06.10 10:14 #4Alx80 Tutorials.de Gastzugang
Hallo,
sorry dass ich auf deine Frage nicht antworten kann. Ich habe aber ein sehr ähnliches Problem und hoffe das die Antworten beider Fragen vielleicht auch sehr ähnlich sind. Ich bin von Excel 2003 auf Excel 2007 umgestiegen. Leider funktioniert jetzt die eingebunde dll-Datei nicht mehr. Ich bekomme ein Laufzeitfehler '53' - Datei nicht gefunden als Fehler. Unter Excel 2003 läuft die xls-Datei einwandfrei mit der dll-Datei zusammen.
VBA Code:
Option Explicit
Public Declare Function CrankNicolson "C:\Users\Alx\Desktop\Version5.1\Debug\PDEsolver.dll" (ByRef solution As Double) As Double
Der Pfad stimmt, die Datei ist vorhanden.
Wäre um jede Hilfe dankbar!
Grüße,
Alx
Ähnliche Themen
-
» Excel Laufzeitfehler 9 bei programmierten Excel-Makro
Von WING83 im Forum Office-AnwendungenAntworten: 7Letzter Beitrag: 25.10.10, 16:27 -
[Excel 2007] Makro mit variablen Zellen
Von Darko82 im Forum Office-AnwendungenAntworten: 6Letzter Beitrag: 24.01.10, 17:18 -
Excel 2007 Makro über Hyperlink aufrufen
Von janomerico im Forum Office-AnwendungenAntworten: 5Letzter Beitrag: 28.10.08, 15:05 -
Excel 97 VB Makro hat Laufzeitfehler unter Excel 2003
Von V&M im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 23.07.08, 11:16 -
Excel 2007 + Makro + rauschreiben als Excel 1997 - 2003
Von Herli im Forum Office-AnwendungenAntworten: 2Letzter Beitrag: 10.08.07, 11:09





Zitieren
Login





