Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1288to1292
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

Laufzeitfehler 9, Index außerhalb des bereichs

Laufzeitfehler 9, Index außerhalb des bereichs
20.12.2012 15:44:39
Riccardo
Hallo Leute,
Ich habe 5 Arbeitsblätter. jetzt soll das Makro auf dem dritten von Zeile 2005 bis 2120 die Werte mit den ersten 3 blättern vergleichen, sobald ein Treffer erscheint (der erscheint mit 100%iger sicherheit), dann werden die Werte von dem Blatt, auf dem es gefunden wurde in blatt nummer 5 ("Exportformatierung") kopiert.
mein derzeitiger Code:

If (Target.Address = "$E$2004") Then
Worksheets("Exportformatierung").Range("A1:C250").ClearContents
For k = 1 To 250
For i = 2005 To 2110
For j = 1 To 75
If (ActiveSheet.Cells(i, 3).Value = Worksheets("NovaAlert")._
Cells(j, 1).Value) Then
Worksheets("Exportformatierung").Cells(k, 1) = Worksheets_
("NovaAlert").Cells(j, 1).Value
Worksheets("Exportformatierung").Cells(k, 2) = Worksheets_
("NovaAlert").Cells(j, 2).Value
Worksheets("Exportformatierung").Cells(k, 3) = Worksheets_
("NovaAlert").Cells(j, 3).Value
Else
If (ActiveSheet.Cells(i, 3).Value = Worksheets("NovaAlert _
Basic").Cells(j,1).Value) Then
Worksheets("Exportformatierung").Cells(k, 1) = Worksheets_
("NovaAlert Basic").Cells(j, 1).Value
Worksheets("Exportformatierung").Cells(k, 2) = Worksheets_
("NovaAlert Basic").Cells(j, 2).Value
Worksheets("Exportformatierung").Cells(k, 3) = Worksheets_
("NovaAlert Basic").Cells(j, 3).Value
Else
If (ActiveSheet.Cells(i, 3).Value = Worksheets_
("Handeslware").Cells(j,1).Value) Then
Worksheets("Exportformatierung").Cells(k, 1) =_
Worksheets("Handeslware").Cells(j, 1).Value
Worksheets("Exportformatierung").Cells(k, 2) =_
Worksheets("Handeslware").Cells(j, 2).Value
Worksheets("Exportformatierung").Cells(k, 3) =_
Worksheets("Handeslware").Cells(j, 3).Value
End If
End If
End If
Next j
Next i
Next k
End If
dabei tritt jetzt ein Laufzeitfehler auf, dass mein Index außerhalb des erlaubten Bereiches liegt. Beim Debuggen meckert er bei der innersten If-Anweisung...
Woran liegt das? - Hat jemand eine Idee?

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Laufzeitfehler 9, Index außerhalb des bereichs
20.12.2012 16:16:13
Rudi
Hallo,
ich kann mir nicht vorstellen, das das so heißt: Worksheets("Handeslware")
Gruß
Rudi

Handeslware oder Handelsware ?
20.12.2012 16:23:16
NoNet
Hallo Riccardo,
ich kenne Deine Mappe nicht und shcon gar nicht die enthaltenen Blätter.
Es fällt mir jedoch auf, dass das Blatt "Handeslware" referenziert wird, ist das beabsichtigt oder soltle es nicht doch "Handellware" heissen ?
Bei mehrfacher Nennung von Blättern empfiehlt es sich übrigens, mit Objektvariablen zu arbeiten, z.B. folgendermassen (Code nicht auf Funktionalität oder sinnhaftigkeit geprüft !) :
Sub Beispiel()
Dim wsExport As Worksheet, wsHandelsware As Worksheet, _
wsNova As Worksheet, wsNovaBasic As Worksheet
Set wsExport = Worksheets("Exportformatierung")
Set wsHandelsware = Worksheets("Handelsware")
Set wsNova = Worksheets("NovaAlert")
Set wsNovaBasic = Worksheets("NovaAlert Basic")
If (Target.Address = "$E$2004") Then
wsExport.Range("A1:C250").ClearContents
For k = 1 To 250
For i = 2005 To 2110
For j = 1 To 75
If (ActiveSheet.Cells(i, 3).Value = wsNova.Cells(j, 1).Value) Then
wsExport.Cells(k, 1) = wsNova.Cells(j, 1).Value
wsExport.Cells(k, 2) = wsNova.Cells(j, 2).Value
wsExport.Cells(k, 3) = wsNova.Cells(j, 3).Value
Else
If (ActiveSheet.Cells(i, 3).Value = wsNovaBasic.Cells(j, 1).Value) Then
wsExport.Cells(k, 1) = wsNovaBasic.Cells(j, 1).Value
wsExport.Cells(k, 2) = wsNovaBasic.Cells(j, 2).Value
wsExport.Cells(k, 3) = wsNovaBasic.Cells(j, 3).Value
Else
If (ActiveSheet.Cells(i, 3).Value = wsHandelsware.Value) Then
wsExport.Cells(k, 1) = handelsware.Cells(j, 1).Value
wsExport.Cells(k, 2) = handelsware.Cells(j, 2).Value
wsExport.Cells(k, 3) = handelsware.Cells(j, 3).Value
End If
End If
End If
Next j
Next i
Next k
End If
End Sub
Die Blattnamen können nun ganz einfach oben in den SET Anweisungen angepasst werden !
Gruß, NoNet

Anzeige
Schreibfehler und Handelsware ?
20.12.2012 16:25:49
NoNet
Hi @ll,
auch ich bin nicht frei von Schreibfehlern, wie ihr in meinem obigen Beitrag sehen könnt ;-)
Die zahlreichen Fehler könnt ihr bitte als vorzeitiges Weihnachtsgeschenk ansehen und behalten....
...Nach dem Weltuntergang wird ohnehin alles anders ;-D
Gruß, NoNet

AW: Schreibfehler und Handelsware ?
21.12.2012 07:12:55
Riccardo
... peinlich ^^
Ich habe zwar gefühlte tausend mal auf Schreibfehler geprüft, aber übersehen hab ich das dennoch.
Danke :)
und danke für den Hinweis mit den Objektvariablen :)
VG
Riccardo

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige