Anzeige
Archiv - Navigation
1188to1192
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

VBA - Laufzeitfehler in Selektionscode?

VBA - Laufzeitfehler in Selektionscode?
Walt
Hallo zusammen,
ich habe hier einen Code, den ich mit meinen bescheidenen VBA Kenntnissen einigermassen nachvollziehen kann, aufgezeichnet hab ich ihn mit dem Recorder.
Wie dem auch sei, bisher hat er "relativ gut" funktioniert, soweit man das von einem Selektionscode sagen kann. Ich habe in dem Worksheet heute einige Sachen verändert (hab einen Reiter hinzugefügt) und nun läuft der Code nicht mehr, er zeigt mir Laufzeitfehler 1004 an.
Was ich nicht verstehe ist die Tatsache, dass ich an Code doch gar nichts verändert habe, als müsste er doch zumindest die "alten" Worksheets abarbeiten.
Weiss jemand einen Rat?
Der Code ist:

Sub Daten_aktualisieren()
Dim raZelleStart As Range
Dim raZelleEnde As Range
Worksheets("Tabelle1").Activate
With Worksheets("Tabelle1")
Set raZelleStart = .Columns(4).Find(.Range("E2"))
Set raZelleEnde = .Columns(4).Find(.Range("F2"))
Range(Cells(raZelleStart.Row, 10), Cells(raZelleEnde.Row,100)).FormulaLocal = .Range(.   _
_
_
Cells(raZelleStart.Row, 10), .Cells(raZelleEnde.Row, 100)).FormulaLocal
End With
Dim zStart As Long
Dim zEnde As Long
Dim sStart As Integer
Dim sEnde As Integer
Dim strFormula As String
zStart = raZelleStart.Row
zEnde = raZelleEnde.Row
sStart = Range("J7").Column
sEnde = Range("II7").Column
'gehe alle Zeilen durch
For i = zStart To zEnde
'gehe alle Spalten in aktueller Zeile durch
For j = sStart To sEnde
'lese Formel aus
strFormula = ActiveSheet.Cells(7, j).Formula
'tausche "7" gegen aktuelle zeilennummer
strFormula = Replace(strFormula, "7", CStr(i))
'schreibe die Formel in die Zelle rein.
ActiveSheet.Cells(i, j).Formula = strFormula
End Sub

Wenn ich auf debugge ist die fett markierte Stelle für den Fehler offensichtlich verantwortlich.
Kleinere Sachen hab ich schon mit googels Hilfe probiert, leider bisher erfolglos.
Ich hoffe sehr jemand kann mich supporten.
Vielen Dank im Voraus
Walt

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
i oder j= 0? owT
24.11.2010 22:09:06
Rudi
Da weigert sich ja fast mein Auge, das...
24.11.2010 22:09:50
Luc:-?
…überhaupt anzusehen, Walt…
Hast du den Code abgekürzt u/o durcheinander geschüttelt? Warum sind nicht alle Dims am Anfang? Wo sind die beiden Next der For-Schleifen? Welche Fehlermeldung kommt im VB-Editor oder warum kommt sie nicht?
Gruß Luc :-?
AW: VBA - Laufzeitfehler in Selektionscode?
24.11.2010 22:10:27
Peter
Hallo Walt,
da könnte es mehrere Möglichkeiten geben.
Was steht denn in i und was in j?
Was steht in strFormula?
Du suchst oben mit .Find ohne zu hinterfragen (If Not raZelleStart Is Nothing, If Not raZelleEnde Is Nothing) ob überhaupt das Gesuchte gefunden wurde.
Wenn der Fehler auftritt, markiere i, markiere j und gehe auf Debuggen und dort im Fenster auf Aktuellen Wert anzeigen. Vielleicht hilft die Erkenntnis aus den Werten bereits weiter.
Gruß Peter
Anzeige
AW: xpost
25.11.2010 18:51:19
Walt
Hallo zusammen,
herzlichen Dank für eure Antworten.
@CitizenX: X ist in dem Fall 2 oder kaufst du ein Fahrzeug auch gleich beim ersten Händler der dir vor die Augen kommt? Aber ja ich verstehe schon - Denunziantentum stirbt eben nie aus. Danke für deinen positiven und überaus konstruktiven Beitrag zur Problemlösung....
@Rudi: i oder j = 0? Bedauere aber ich verstehe den Hinweis nicht.
@Luc: Offen gesagt glaube ich dir das sogar, aber wie ich eingangs erwähnte sind meine Kenntnisse betr. VBA wirklich bescheiden. Dass die Dims nicht am Anfang stehen ist ja nicht so kritisch. Dass For-Schleifen allerdings mit Next initialisiert werden müssen wusste ich nicht, werds ändern.
Im VBE kommt keine Fehlermeldung, nur der markierte Bereich ist gelb.
@Peter: In i steht der Zeilenwert der Range, in j der Spaltenwert. strFormula soll einfach die Formeln aus Zeile 7, Spalte J bis II welche immer da sind in die abgefragte Range eintragen.
Dein Hinweis mit Find ist richtig, aber in meinem Fall zu vernachlässigen, da die Bereichsabfrage valid ist. In jedem Fall werden Treffer zurückgegeben.
Ich glaube nur das Einfügen macht Probleme.
Ich erwarte selbstverständlich nicht dass mir hier jemand einen neuen Code mal eben aus dem Hut zaubert, ich möchte nur dass "mein" Code der bis vor kurzem lief wieder funktionert.
Für jeden Rat bin ich sehr dankbar.
Gruss
Walt
Anzeige
1. Lies mal die Forumsregeln! Im MOF würden...
25.11.2010 19:43:37
Luc:-?
…dich die Admins dafür sogar canceln, also deinen Beitrag löschen, Walt,
wenn ihnen das jemand mitteilen würde! Lies mal dort, was dazu steht! Da gibt's jede Menge Beiträge zu diesem Thema, die dir Einblick in die rauhen Sitten dort gewähren…
Steffen hat nur nachgeholt, was du versäumt hast! Wenigstens einen Link auf den anderen Beitrag zu setzen, ist im hiesigen Forum das Mindeste an Anstand, was wir in solchen Fällen erwarten — nicht aber solche Bemerkungen wie deine an Steffen → damit hast du dich hier disqualifiziert!
2. Ansonsten ist dir dort ja schon mitgeteilt worden, wie unmöglich dein Pgm ist. Du scheinst es niemals für notwendig erachtet zu haben, wenigstens mal in die VBE-Hilfe zu schauen, mal ganz abgesehen von deinen rudimentären Pgmierkenntnissen. Dass du es damit wagst, Pgmm anzubieten, ist schon ein starkes Stück. In jeder normalen Pgmiersprache ist es üblich, Blöcke abzuschließen, ob nun mit } oder mit End… oder sonstwie. Eine For-Schleife ist auch ein Block, der mit For beginnt und mit Next endet (nicht initialisiert wird). Das ist pgmiertechn Grundwissen. Machst du das nicht, wird ein Pgm gar nicht erst abgearbeitet (Syntaxfehler!). Deshalb hat man dir im MOF nicht geglaubt, dass das jemals gelaufen ist, noch glaubt man es hier!
Luc :-?
Anzeige

120 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige