Hallo Jungs,
habe ein kleines Problemchen.
Folgendes Makro habe ich in ein eigenes Modul gesteckt:
Das Makro läuft auch einwandfrei durch.
Wenn ich dieses Makro in das Tabellenblatt packe und dies in die Workbook_Open() packe, dann bekomme ich den Laufzeitfehler 9 "Index ausserhabl des gültigen Bereichs".
Dazu markiert er mir dann die Zeile mit der Kundennummer am Anfang: Kundennummer = Worksheets("Bestellschein").Range("A2").Value
Weiß jemand Rat?
Gruß
habe ein kleines Problemchen.
Folgendes Makro habe ich in ein eigenes Modul gesteckt:
Visual Basic-Quellcode
- Sub Bestellschein()
- ChDir "C:\" Const Datei = "C:\Bestellschein.xls" Const Datei2 = "C:\Bestellschein_Entwurf.xls"
- Workbooks.Open Filename:="C:\Bestellschein.xls"
- 'Saubere Bildschirmanzeige bei Makro-Lauf starten
- Application.ScreenUpdating = False
- Kundennummer = Worksheets("Bestellschein").Range("A2").Value Kundenname = Worksheets("Bestellschein").Range("B2").Value
- Windows("Bestellschein_Entwurf.xls").Activate Range("B3:B5").ClearContents
- Range("B3").Value = Kundennummer Range("B5").Value = Kundenname
- '--------------------------------------------------------------------------------- ' '--------------------------------------------------------------------------------- 'Auf A1 positionieren und letzte Zeile für Leseschleife ermitteln 'Zeile positionieren
- Windows("Bestellschein.xls").Activate Range("A1").Select
- maxZeilen = Selection.SpecialCells(xlCellTypeLastCell).Row
- eintragszeile = 19 'Leseschleife Blatt Bestellschein
- schreibzeile = 15 Windows("Bestellschein_Entwurf.xls").Activate Range("A14:G" & maxZeilen).ClearContents Range("A14:G" & maxZeilen).Font.ColorIndex = 1
- Windows("Bestellschein.xls").Activate
- For zeile = 2 To maxZeilen
- Windows("Bestellschein.xls").Activate Artikelnummer = Cells(zeile, 4).Value Teilenummer = Cells(zeile, 5).Value Bezeichnung = Cells(zeile, 6).Value Volumen = Cells(zeile, 7).Value Preis = Cells(zeile, 8).Value Waehrung = Cells(zeile, 10).Value
- 'Schreibschleife Blatt Bestellschein_Entwurf
- Windows("Bestellschein_Entwurf.xls").Activate
- If Volumen = "0" Then Volumen = "" End If
- Cells(schreibzeile, 1).Value = Artikelnummer Cells(schreibzeile, 2).Value = Teilenummer Cells(schreibzeile, 3).Value = Bezeichnung Cells(schreibzeile, 4).Value = Volumen Cells(schreibzeile, 5).Value = Preis Cells(schreibzeile, 6).Value = Waehrung
- If Cells(schreibzeile - 1, 1).Value = Artikelnummer Then Cells(schreibzeile, 1).Font.ColorIndex = 2 Cells(schreibzeile, 6).Font.ColorIndex = 2 End If If Cells(schreibzeile - 1, 2).Value = Teilenummer Then Cells(schreibzeile, 2).Font.ColorIndex = 2 End If
- If Cells(schreibzeile - 1, 5).Value = Preis Then Cells(schreibzeile, 5).Font.ColorIndex = 2 End If '
- schreibzeile = schreibzeile + 1 Next zeile
- End Sub
Das Makro läuft auch einwandfrei durch.
Wenn ich dieses Makro in das Tabellenblatt packe und dies in die Workbook_Open() packe, dann bekomme ich den Laufzeitfehler 9 "Index ausserhabl des gültigen Bereichs".
Dazu markiert er mir dann die Zeile mit der Kundennummer am Anfang: Kundennummer = Worksheets("Bestellschein").Range("A2").Value
Visual Basic-Quellcode
- ChDir "C:\" Const Datei = "C:\Bestellschein.xls" Const Datei2 = "C:\Bestellschein_Entwurf.xls"
- Workbooks.Open Filename:="C:\Bestellschein.xls"
- 'Saubere Bildschirmanzeige bei Makro-Lauf starten Application.ScreenUpdating = False
- Kundennummer = Worksheets("Bestellschein").Range("A2").Value Kundenname = Worksheets("Bestellschein").Range("B2").Value
- Windows("Bestellschein_Entwurf.xls").Activate Range("B3:B5").ClearContents Range("B3").Value = Kundennummer Range("B5").Value = Kundenname
Weiß jemand Rat?
Gruß
Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „chimperator“ ()