Autor
|
Thema: 2003 -> 2010 Wechselproblem (6861 mal gelesen)
|
Wyndorps Ehrenmitglied V.I.P. h.c. Ingenieur
Beiträge: 4563 Registriert: 21.07.2005
|
erstellt am: 30. Nov. 2011 14:58 <-- editieren / zitieren --> Unities abgeben:
Hallo zusammen, ich habe eine Exceltabelle mit VBA-Programm, erstellt in EXCEL2003. Diese funktioniert unter EXCEL2010 nicht mehr. Speziell läuft der Aufruf Set objChartObject =...worksheets(1).ChartsObjects.Add(50,50,ActiveWindow.Width-100,ActiveWindow.Height-100) in die Fehlermeldung Laufzeitfehler '-2147417848 (80010108)' Die Methode 'Add' für das Object 'ChartObject' ist fehlgeschlagen.
In EXCEL 2003 läuft das Ganze problemlos. Hätte da zufällig jemand eine Idee? [Edit: Korrektur!!! Es lief in EXCEL 2000, nicht 2003!]
[Edit: Der Code im Zusammenhang] Public Sub prcCreateChart(tbl, ttl, ax, ay, Daten_ausgeben) Dim objChartObject As ChartObject Dim f As Integer Dim i As Integer Dim ll As Integer Set objChartObject = Worksheets(tbl).ChartObjects.Add(50, 50, ActiveWindow.Width - 100, ActiveWindow.Height - 100) ... ------------------ ----------------
"Ich stimme mit der Mathematik nicht überein. Ich meine, daß die Summe von Nullen eine gefährliche Zahl ist." (Stanislaw Jerzy Lec)
[Diese Nachricht wurde von Wyndorps am 30. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Dig15 Ehrenmitglied V.I.P. h.c. Dipl.-Ing. für Markscheidewesen und Geodäsie
Beiträge: 5833 Registriert: 27.02.2003 DWG TrueView 2014
|
erstellt am: 30. Nov. 2011 15:29 <-- editieren / zitieren --> Unities abgeben: Nur für Wyndorps
Hallo, ohne jetzt eine Lösung zu haben, wir hatten Probleme mit VBA Geschichten beim Wechsel von Office 200/2003 unter Win XP zu Office 2010 (64bit) unter Win7 64bit. Evtl. liegt der Fehler in dieser Richtung. ------------------ Viele Grüße Lutz Glück Auf! Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jester_Karbach Mitglied Im Wandel
Beiträge: 344 Registriert: 09.01.2006 Windows alle Leiden seit 3.1
|
erstellt am: 30. Nov. 2011 15:30 <-- editieren / zitieren --> Unities abgeben: Nur für Wyndorps
Es gibt ein paar VBA-Befehle die unter 2010 nihct laufen, unter der Online-Hilfe gibt es da einen Punkt wo die aufgelistet sind, ich werde, wenns noch nötig ist, morgen mal danach schaun, hab denlink noch irgendwo liegen. ------------------ Der nächste Urlaub kommt bestimmt ;-) Jestertur Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wyndorps Ehrenmitglied V.I.P. h.c. Ingenieur
Beiträge: 4563 Registriert: 21.07.2005
|
erstellt am: 30. Nov. 2011 15:58 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Dig15: Hallo, ...von Office 200/2003 unter Win XP zu Office 2010 (64bit) unter Win7 64bit. Evtl. liegt der Fehler in dieser Richtung.
Oh je, das kann natülich gut sein. Es lief alles zuletzt unter WIN2000 und XP mit Office 2003. Die aktuelle Maschine hat WIN7(64bit) und Office 2010. Das wäre aber äußerst unschön! Es muss dorch eine Lösung für die Chart-Funktionalität geben, die auf aktuellem Betreibssystem und Software funktioniert?
------------------ ---------------- "Ich stimme mit der Mathematik nicht überein. Ich meine, daß die Summe von Nullen eine gefährliche Zahl ist." (Stanislaw Jerzy Lec) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 394 Registriert: 11.08.2007
|
erstellt am: 30. Nov. 2011 15:58 <-- editieren / zitieren --> Unities abgeben: Nur für Wyndorps
Hi, dein Code läuft auf keiner Excelversion - auch auf der 2000er nicht, denn es muss richtig heißen: Code: Worksheets(1).ChartObjects.Add(50,50,ActiveWindow.Width-100,ActiveWindow.Height-100)
Es ist also ein "s" zuviel im Befehl. ------------------ Bis später, Karin [Diese Nachricht wurde von Beverly am 30. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wyndorps Ehrenmitglied V.I.P. h.c. Ingenieur
Beiträge: 4563 Registriert: 21.07.2005 Creo 8.0.1.0 Genius Tools 8.0 Windchill 12.0.2.0
|
erstellt am: 30. Nov. 2011 16:03 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Beverly: ... Es ist also ein "s" zuviel im Befehl. ...
Das ist mir leider beim Abschreiben passiert, da ich den Code von einem Rechner ohne Internetzugang "zu Fuß" holen musste. Im Edit habe ich dann den Code noch einmal per USB-Stick herübergeholt. An dem "s" zuviel liegt es leider nicht. ------------------ ---------------- "Ich stimme mit der Mathematik nicht überein. Ich meine, daß die Summe von Nullen eine gefährliche Zahl ist." (Stanislaw Jerzy Lec) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 30. Nov. 2011 16:07 <-- editieren / zitieren --> Unities abgeben: Nur für Wyndorps
Hi-Ho zusammen, das mit dem S ist in der vollständigen Sub richtig geschrieben, ich tippe hier auf einen Schreibfehler im thread. Aber mit Beverly ist ja schon genau die richtige hier (Auf Deine VBA-codeschnippsel hab ich übrigens auch schon per PM hingewiesen) Ich wollte nur mal kurz zum Thema Office64bit was loswerden: Lutz, warum habt ihr das als 64bit installiert? So große Dateien am Start? >> hier << mal (aus Faulheitgründen) ein link zum Inventorbrett mit weiterführenden links. ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Thomas Harmening Moderator Arbeiter ツ
Beiträge: 2897 Registriert: 06.07.2001 Das Innerste geäussert und aufs Äusserste verinnerlicht
|
erstellt am: 30. Nov. 2011 17:51 <-- editieren / zitieren --> Unities abgeben: Nur für Wyndorps
unter Excel 11 ( 2003) und Windows (32-bit) NT 5.01: Windows XP läuft Zitat: Sub test() Dim objChartObject As ChartObject Set objChartObject = Worksheets("Tabelle1").ChartObjects.Add(50, 50, ActiveWindow.Width - 100, ActiveWindow.Height - 100) End Sub
Zuhause hätte ich auf dem Familien-Pc Windows (64-bit) NT 7.00: Windows 7 (64 Bit) und Excel 2010: 13? - aber dazu müsste ich erst zuhause sein ;) *schnipp für zuhause ;)* Code: Sub ZeigeWindowsVersion() MsgBox "Bei Ihnen läuft Excel " & _ Application.Version & vbLf & _ "unter " & Application.OperatingSystem End Sub
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wyndorps Ehrenmitglied V.I.P. h.c. Ingenieur
Beiträge: 4563 Registriert: 21.07.2005
|
erstellt am: 30. Nov. 2011 18:31 <-- editieren / zitieren --> Unities abgeben:
Es läuft bei EXCEL 9.0 unter Windows (32-bit) NT 5.00, was eigentlich WIN 2000 SP4 ist. Es läuft nicht bei EXCEL 14.0 unter Windows (32-bit) NT 5.02, was aber eigentlich XP Prof 64bit ist. Es läuft nicht bei EXCEL 14.0 unter Windows (32-bit) NT 6.01, was aber eigentlich WIN 7 Home 64bit ist. Alles sehr suspekt! ------------------ ---------------- "Ich stimme mit der Mathematik nicht überein. Ich meine, daß die Summe von Nullen eine gefährliche Zahl ist." (Stanislaw Jerzy Lec) [Diese Nachricht wurde von Wyndorps am 30. Nov. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 394 Registriert: 11.08.2007
|
erstellt am: 30. Nov. 2011 18:58 <-- editieren / zitieren --> Unities abgeben: Nur für Wyndorps
ich habe getestet mit: Excel2000 / Win XP Pro 32 bit Excel2002 / Win XP Pro 32 bit Excel2003 / Win XP Pro 32 bit Excel2007 / Win XP Pro 32 bit Excel2010 32 bit / Win 7 Ultimate 64 bit Du solltest vielleicht mal mit dem Makrorekorder aufzeichnen, welche Befehle verwendet werden. Ich glaube zwar nicht, dass sich die bei der 64 bit Version unterschieden, aber wissen kann man ja nie. Bekannt ist, dass in Excel2010 32 bit so aufgezeichent wird:
Code: ActiveSheet.Shapes.AddChart.Select
Es wird also ein Shape erstellt, was bei den Versionen vor 2007 nicht der Fall ist - dort wird dies aufgezeichnet:
Code: Charts.Add
------------------ Bis später, Karin Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Wyndorps Ehrenmitglied V.I.P. h.c. Ingenieur
Beiträge: 4563 Registriert: 21.07.2005 Creo 8.0.1.0 Genius Tools 8.0 Windchill 12.0.2.0
|
erstellt am: 30. Nov. 2011 19:15 <-- editieren / zitieren --> Unities abgeben:
Hallo Katrin, herzlichen Dank für die Info. Das scheint die Ursache zu sein. Zumindest zeigt mir die Makroaufzeichnung genau den Funktionsunterschied. Demnach muss ich wahrscheinlich alle meine Programme für die neue EXCELVersion umschreiben. Ich hatte gehofft, dass so etwas die Konvertierungsfunktion von EXCEL selber schafft. Herzlichsten Dank!!! Liebe Grüße Paul ------------------ ---------------- "Ich stimme mit der Mathematik nicht überein. Ich meine, daß die Summe von Nullen eine gefährliche Zahl ist." (Stanislaw Jerzy Lec) Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
runkelruebe Moderator Straßen- / Tiefbau
Beiträge: 8075 Registriert: 09.03.2006 MS-Office 365 ProPlus x86 WIN7(x64)
|
erstellt am: 30. Nov. 2011 19:46 <-- editieren / zitieren --> Unities abgeben: Nur für Wyndorps
N'Abend, wenn ich von Code: Set objChartObject = Worksheets(tbl).ChartObjects.Add(50, 50, ActiveWindow.Width - 100, ActiveWindow.Height - 100) With objChartObject .Name = "Ttl"
umbaue auf Code: 'Set objChartObject = Worksheets(tbl).ChartObjects.Add(50, 50, ActiveWindow.Width - 100, ActiveWindow.Height - 100) With Worksheets(tbl).ChartObjects.Add(50, 50, ActiveWindow.Width - 100, ActiveWindow.Height - 100) .Name = "Ttl"
änder, läuft er auch durch, allerdings muß dafür vorher sichergestellt sein, dass auch die Anzahl tbl an worksheets vorhanden ist. Ob sonst noch was schief läuft, kann ich nicht beurteilen, umbauen wirst Du so wie's aussieht wohl eh müssen. Getestet unter WIN7-x64 mit Office2010-x86 ------------------ Gruß, runkelruebe Herr Kann-ich-nich wohnt in der Will-ich-nich-Straße... Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Beverly Mitglied Dipl.-Geologe (Rentner)
Beiträge: 394 Registriert: 11.08.2007
|
erstellt am: 01. Dez. 2011 07:47 <-- editieren / zitieren --> Unities abgeben: Nur für Wyndorps
@All, mit Win 7 (64 bit) /Excel2010 (32 bit) bit läuft sowohl
Code: Dim objChartObject As ChartObject Set objChartObject = Worksheets(1).ChartObjects.Add(50, 50, ActiveWindow.Width - 100, ActiveWindow.Height - 100) With objChartObject '.... End With
als auch
Code: With Worksheets(1).ChartObjects.Add(50, 50, ActiveWindow.Width - 100, ActiveWindow.Height - 100) ' .... End With
problemlos, wobei letzteres zu bevorzugen ist, weil es einfach eine "kompaktere" Schreibweise ist.------------------ Bis später, Karin [Diese Nachricht wurde von Beverly am 01. Dez. 2011 editiert.] [Diese Nachricht wurde von Beverly am 01. Dez. 2011 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Jester_Karbach Mitglied Im Wandel
Beiträge: 344 Registriert: 09.01.2006 Windows alle Leiden seit 3.1
|
erstellt am: 01. Dez. 2011 08:05 <-- editieren / zitieren --> Unities abgeben: Nur für Wyndorps
|
Chry007 Mitglied
Beiträge: 1 Registriert: 31.07.2013
|
erstellt am: 31. Jul. 2013 23:32 <-- editieren / zitieren --> Unities abgeben: Nur für Wyndorps
|