Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1492to1496
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
Inhaltsverzeichnis

Anwendungs- Objektdefinierter Fehler

Anwendungs- Objektdefinierter Fehler
26.05.2016 19:22:08
Bernhard
Hallo,
ein bisher reibungslos laufendes vba zeigt plötzlich Laufzeitfehler 1004, Anwendungs- und Objektdefinierter Fehler.
Ich habe zwischendurch nichts verändert am vba, die Meldung kommt wie der Blitz aus heitrem Himmel, nach x-fachem erfolgreichem vba-Start..... auch langes rumgoogleln hat nix genutzt.
Das vba soll Zeilen-Werte einer Spalte unbekannter Länge nacheinander in ein anderes Tabellenblatt kopieren.
Hier der Code:
Sub rechnen()
Dim von As Long
Dim bis As Long
Dim i As Long
Sheets("Isogonen").Activate
von = Range("C23").Value
bis = Range("E23").Value
For i = von To bis
Sheets("Geo-Magnetismus").Range("C3").Value = i - 25
Range("E" & i).Value = Sheets("Geo-Magnetismus").Range("C44").Value
Range("D" & i).Value = Sheets("Geo-Magnetismus").Range("C46").Value
Next
End Sub

Kann mir jemand helfen?
Grüsse,
Bernhard

18
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Anwendungs- Objektdefinierter Fehler
26.05.2016 19:27:14
ChrisL
Hi
Vielleicht hilft es das andere Blatt auch noch zu referenzieren, etwa so...
Sub rechnen()
Dim von As Long
Dim bis As Long
Dim i As Long
with Sheets("Isogonen")
von = .Range("C23").Value
bis = .Range("E23").Value
For i = von To bis
Sheets("Geo-Magnetismus").Range("C3").Value = i - 25
.Range("E" & i).Value = Sheets("Geo-Magnetismus").Range("C44").Value
.Range("D" & i).Value = Sheets("Geo-Magnetismus").Range("C46").Value
Next i
End With
End Sub

cu
Chris

AW: Anwendungs- Objektdefinierter Fehler
26.05.2016 19:31:48
ChrisL
Hi Bernhard
Und bei zweiter Betrachtung, auch wenn nicht die Ursache des Problems, aber C3 wird mehrfach überschrieben, vielleicht eher so:
Sub rechnen()
Dim von As Long
Dim bis As Long
Dim i As Long
With Sheets("Isogonen")
von = .Range("C23").Value
bis = .Range("E23").Value
Sheets("Geo-Magnetismus").Range("C3").Value = bis - 25
For i = von To bis
.Range("E" & i).Value = Sheets("Geo-Magnetismus").Range("C44").Value
.Range("D" & i).Value = Sheets("Geo-Magnetismus").Range("C46").Value
Next i
End With
End Sub
cu
Chris

Anzeige
AW: Anwendungs- Objektdefinierter Fehler
26.05.2016 19:42:56
ChrisL
OK, Heute bin ich mal wieder im Knopf-Drücken-Vor-Überlegen-Modus...
Ich vermute immer noch, dass das Problem auf fehlende Referenzierung zurück zu führen ist z.B. mehrere Blätter selektiert oder irgendwas. Aber da ich schon einmal Tipps zum Optimieren abgebe, müsste auch noch hinterfragt werden wozu es die Schleife braucht.
Ungetestet:
Sub Mach()
Dim WS1 As Worksheet, WS2 As Worksheet
Dim von As Long
Dim bis As Long
Set WS1 = Worksheets("Isogonen")
Set WS2 = Worksheets("Geo-Magnetismus")
With WS1
von = .Range("C23").Value
bis = .Range("E23").Value
WS2.Range("C3").Value = bis - 25
.Cells(.Cells(von, 5), .Cells(bis, 5)).Value = WS2.Range("C44").Value
.Cells(.Cells(von, 4), .Cells(bis, 4)).Value = WS2.Range("C46").Value
End With
End Sub
cu
Chris

Anzeige
AW: Anwendungs- Objektdefinierter Fehler
26.05.2016 20:11:50
Bernhard
Beim googlen bin ich immer auf irgendwas von workbooks und workssheets Referenzierung vor .range gestossen. Vielleicht sagt dir das was....
In Isogonen C23 steht der Startwert, in E23 der Endwert... und zwar jeweils die Zeilen-Nummern, die er berechnen soll... min ist Zeile 26, max 260667... je nach Zeit, auf die ich auf den PC verzichten kann, gebe ich ihm so Intervall Pakete zum berechnen, da das stundenlang dauert.
Er nimmt je einen Breitengrad und Längengrad aus Spalte C und E, und trägt diese in "Geo-Magnetismus", F2 und F3 via Formel ein. Geo-Magnetismus liefert nach irrsinnigen physikalischen Formeln die magnetische Deklination in C46 und die Inklination in C44 pro Geokoordinate, die wiederum zur entsprechenden Länge und Breite in "Isogonen" zurück kopiert werden vom vba...

Anzeige
AW: Anwendungs- Objektdefinierter Fehler
26.05.2016 20:32:54
Daniel
Hi
kannst du die Berechnung direkt in VBA programmiern und nicht in Excelzellen?
das würde dir das umkopieren der Werte und damit viel Zeit sparen, weil du direkt direkt in VBA rechnest.
dann kannst du die Ergebnisse erst in ein Array schreiben und dann das ganze Array am Schluss in die Zellen, das geht viel schneller.
du musst halt die Formeln von Geomagnetismus!C44 un C46 dafür in VBA programmieren.
Gruß Daniel

AW: Anwendungs- Objektdefinierter Fehler
26.05.2016 20:48:38
Bernhard
Hi Daniel,
um Gottes Willen, das übersteigt meine vba-Kenntnisse bei weitem! Ich bin froh, dass die Tabelle funktioniert, ausserdem sieht man da so schön die Zwischenwerte... es sind 300 Schmidt-semi normalisierte assoziierte Legendre-Funktionen und ebenso viele Feldvektorkomponenten sowie deren Säkularvariationen, aus über 600 Gauss-Koeffizienten, pro Geo-Koordinate durch zu rechnen, das krieg ich als vba Anfänger niemals hin ;-)
Die vba-Berechnung mache ich auch nur 1-2 Mal jährlich.... und sie hat ja auch funktioniert... ich möchte nur wissen, wo da der Fehler liegt, dass mir das künftig nimmer passiert....
Grüsse,
Bernard

Anzeige
AW: Anwendungs- Objektdefinierter Fehler
26.05.2016 20:55:05
Daniel
Ok, dann ist das natürlich ok so.
aber ich seh grad, Office XP, das geht nur bis maximal 65536 Zeilen, das ist dir klar, oder?
du hast ja mal was geschrieben von Endwert = 260667, aber der darf bei XP maximal eben die 65536 sein.
Gruß Daniel

AW: Anwendungs- Objektdefinierter Fehler
26.05.2016 21:45:43
Bernhard
Nein, XP ist das wurscht... 2003er Excel war das Limitierende... die über 260000 Excel 2010 Rohdaten Spalten konnte ich ohne weiteres erstellen...
Noch Ideen zu meiner .range Referenzierung?
Grüsse,
Bernhard

AW: Anwendungs- Objektdefinierter Fehler
26.05.2016 22:02:25
Daniel
naja, du gibst an 10-Excel XP.
das ist die Version vor Excel 2003
(verwechsle nicht die 10 der Versionsnummer mit der Jahreszahl, Excel 2010 ist die Version 14)
bzw auch Excel 2010 hat keine 200000 Spalten, sondern nur 16.000
du meinst Zeilen.
ohne dass du die Datei zeigst oder hochlädst wird das nichts, denn der Code ist ansich i.O. und der Fehler muss irgendwo anders liegen, rumratn bringt da nichts
Gruß Daniel

Anzeige
AW: Anwendungs- Objektdefinierter Fehler
26.05.2016 23:14:47
Bernhard
Hi,
jetzt hab ichs, es geht wieder, Gottseidank! Danke für den Hinweis, der Code sei i.O.: war mein Eingabefehler, ich Dilo... Hatte den Startwert in Zelle C23 auf 0 gesetzt, statt auf 26.... wo doch Zeile 26 die Zeile mit der ersten zu rechnenden Koordinate ist... mea culpa... rolleyes...
Hab jetzt ne Datenüberprüfung bei der Eingabe eingebaut.
Ja, ich meinte Zeilen, nicht Spalten... und Excel 2010...
So, jetzt wird der USB Ventilator auf den Prozessorschlitz vom Läppi gerichtet, da der Lüfter es bei der vba Beanspruchung allein nimmer derpackt... und dann darf er heut Nacht mal je 260000 Dekl. und Inkl. rechnen.
Schönen Abend und danke für die Hilfe!
Gruss,
Bernhard

Anzeige
AW: Anwendungs- Objektdefinierter Fehler
26.05.2016 23:59:06
Daniel
oh mann du Flachpfeife
lies mal, was ich dir in meinem ersten Beitrag geschrieben habe.
die Variablen checkt man doch als erstes, und dass man keine Zellen mit Index kleiner 1 ansprechen kann sollte auch klar sein.
Gruß Daniel

Kommentar oT
27.05.2016 08:32:24
ChrisL
@Daniel: Man braucht viele Worte, um eins zurückzunehmen.

AW: Kommentar oT
27.05.2016 09:45:26
Daniel
Ich weiß.
Aber es ist genau dass was ich am Anfang vermutet habe und wenn er den mal gelesen hätte und nicht nur angeschaut, dann wäre die ganze weitere Diskussion unnötig gewesen.
Gruß Daniel

AW: Anwendungs- Objektdefinierter Fehler
26.05.2016 20:35:57
Bernhard
Hallo Chris,
Code-Zeile 10 wird auch nach deinem erneuten Vorschlag noch immer gelb mit der gleichen Fehler-Meldung...
Gruss,
Bernhard

Anzeige
AW: Anwendungs- Objektdefinierter Fehler
26.05.2016 19:40:10
Bernhard
Hallo Chris,
mit deinem Vorschlag bleibt der Fehler leider nach wie vor.
Diese Zeile ist gelb markiert beim debuggen Versuch:
.Range("E" & i).Value = Sheets("Geo-Magnetismus").Range("C44").Value
Gruss,
Bernhard

AW: Anwendungs- Objektdefinierter Fehler
26.05.2016 19:45:23
ChrisL
Hi Bernhard
Welcher Wert hat zu diesem Zeitpunkt i (mal mit dem Cursor drüber fahren)
Und die Blätter existieren (keine Schreibfehler oder so)? nur sicherheitshalber nachgefragt :)
cu
Chris

AW: Anwendungs- Objektdefinierter Fehler
26.05.2016 19:37:38
Daniel
Hi
wenn du am Code nichts verändert hast, hast du dann am Blatt was geändert, vielleicht den Blattscutz aktiviert?
oder einfach das Makro gestartet wärend ein anderes Tabellenblatt als früher aktiv ist?
vielleicht steht ja auch einfach nur ein Wert kleiner als 26 in C3, auch das kann den Fehler verusachen.
du solltest bei einem Fehler nicht nur die Fehlernummer und den Fehlertext mitteilen, sondern immer auch:
- in welcher Programmzeile der Fehler passiert
- welche Werte die in dieser Zeile verwendeten Variablen und Zellen haben, wenn der Fehler passiert.
Gruß Daniel

Anzeige
AW: Anwendungs- Objektdefinierter Fehler
26.05.2016 19:48:35
Bernhard
Hallo Daniel,
ich habe das file unter neuer Versions Nr., also "geo8" statt bisher "geo7", von der externen Platte auf die interne gepeichert. Aber selbst dort liefen die ersten Starts problemlos... seit dem Fehler ist nichts geschehen ausser, dass ich die Berechnungen nochmal von vorne gestartet hatte.
Der Code ist komplett, also ist die gelbe Meldung in Zeile 10, wenn ich mich nicht verzählt hab.
Die Werte müssten nach meinem bescheidenen vba Verständnis leer sein, da das vba gar nicht anstartet... aber täte es dies, so wären die ersten Werte "0" (Länge) und "-89,9999" (Breite)...
Grüsse,
Bernhard
Anzeige

301 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige