Anzeige
Archiv - Navigation
900to904
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
900to904
900to904
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Index außerhalb des gültigen Bereichs
27.08.2007 09:21:18
HalMar
Hallo Excel Experten/Innen,
bei folgendem Makro erhalte ich in der markierten Zeile den Fehler "Index außerhalb des gültigen Bereichs". Genau öffnet das Programm eine Excel Datei (variabel), fragt den Zeilenbereich ab, der kopiert werden soll, und kopiert dann alle vorhandenen Reihen im Zeilenbereich auf das Ausgangsblatt (fix, benannt), aktiviert es aber nicht. Anschließend wird das offene Dokument geschlossen und das fixe aktiviert. Ich hoffe ihr findet den Fehler ;)

Sub datei_öffnen()
Dim DateiName As String
Dim Myunion As Range, Range1, Range2, Markierung As String
Dim Checkcount As Long
Dim Enter As Integer
Dim Zahl1, Zahl2 As Integer
Zahl1 = ActiveSheet.Range("B1")
Zahl2 = ActiveSheet.Range("C1")
Dim Bereich1, Bereich2 As Integer
DateiName = Application.GetOpenFilename("Excelfiles (*.xls), *.xls", Title:="Datei auswählen",   _
_
_
MultiSelect:=False)
Select Case DateiName
Case "Falsch"
MsgBox "Es wurde keine Datei ausgewählt."
Case Else
Workbooks.Open DateiName
ActiveSheet.Select
Enter = InputBox("Bei welcher Zeile beginnt Ihre Tabelle? (Überschriftenzeile  _
eingerechnet, Eingabe nur in Zahlen möglich)")
Bereich1 = InputBox("In welcher Zeile fängt der Tabellenabschnitt, den Sie übertragen mö _
_
chten, an?")
Bereich2 = InputBox("In welcher Zeile hört der Tabellenabschnitt, den Sie übertragen mö  _
_
chten, auf?")
For Checkcount = 0 To 2
If Len(Markierung) > 0 Then Markierung = Markierung & ","
Markierung = Markierung & Chr(65 + Checkcount) & Enter & "," & Chr(65 + Checkcount)  _
_
& Bereich1 & ":" & Chr(65 + Checkcount) & Bereich2
Next Checkcount
Range(Markierung).Copy
        ThisWorkbook.Sheets("Diagcreator").Range("A5").PasteSpecial Paste:=xlPasteValues
ThisWorkbook.Sheets("Diagcreator").Range("A5").PasteSpecial Paste:=xlPasteFormats  _
_
i>
Application.CutCopyMode = False
ActiveWorkbook.Close (False)
On Error GoTo 1
End Select
Dim Sel As Integer, Colcount As Integer
Application.ScreenUpdating = False
Colcount = ActiveSheet.UsedRange.Columns.Count
For Sel = 0 To Colcount - 2
Range("B2").Select
ActiveCell.Offset(0, Sel).Select
If Selection.Value = "" Then
If Sel = 0 Then
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=True, _
DisplayAsIcon:=False, Left:=100, Top:=14, Width:=11, Height:=11). _
Select
Else
ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=True, _
DisplayAsIcon:=False, Left:=100 + (60 * Sel), Top:=14, Width:=11, Height:=11). _
Select
End If
End If
On Error GoTo 1
Next Sel
Application.ScreenUpdating = True
1:
End Sub


Lg, Mario

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Index außerhalb des gültigen Bereichs
27.08.2007 09:25:52
Renee
Hallo Mario,
Easy: Dein Tabellenblatt in der Mappe mit dem Makro muss genau Diagcreator heissen. Gross/Kleinschreibung beachten, keine Leerzeichen vorher nachher....etc. also GENAU SO.
Greetz Renee

AW: Index außerhalb des gültigen Bereichs
27.08.2007 09:51:59
Rudi
Hallo Renee,

Gross/Kleinschreibung beachten


imho nicht erforderlich.
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

stimmt ... nicht case-sensitive (owT)
27.08.2007 09:55:13
Renee

AW: Index außerhalb des gültigen Bereichs
27.08.2007 09:26:00
Peter
Hallo Mario,
kann es sein, dass das Sheet ("Diagcreator") nicht vorhanden ist oder ganz anders heißt (z. B. ein Leerzeichen vor oder hinter dem Namen enthält) ?
Prüf das einmal sehr genau.
Gruß Peter

Anzeige
AW: Index außerhalb des gültigen Bereichs
27.08.2007 10:07:46
HalMar
Hi,
Hab hier mal die Datei hochgeladen https://www.herber.de/bbs/user/45402.xls Die Fehler sind im Makro "datei_öffnen", hab sie mit Kommentaren versehen. Den Dateinamen hab ich vorhin überprüft, habs auch mit .xls versucht, hat aber alles nichts gebracht... und ein kleines Offset Problem gibts auch zum Lösen ;)
Lg Mario

AW: Index außerhalb des gültigen Bereichs
27.08.2007 10:12:47
Renee
Hallo Mario,
Bitte lies die Posts genauer:
Den Dateinamen hab ich vorhin überprüft Niemand hat von Dateinamen, sondern von Tabellenblattnamen geredet!
Dann hab ich gesagt: Dein Tabellenblatt in der Mappe mit dem Makro, dein Code ist aber in einer Mappe, die kein Tabellenblatt mit dem Namen DiagCreator hat. Also wohin soll dieser Paste gehen ? ThisWorkbook bezieht sich immer auf die Arbeitsmappe in der, der Code steht!
kleines Offset Problem gibts auch zum Lösen , wo und welches, bitte genauere Angaben.
Greetz Renee

Anzeige
AW: Index außerhalb des gültigen Bereichs
27.08.2007 10:41:00
HalMar
Hi Renee,
Wie du mit einem Post immer so viel helfen kannst... Schön langsam finde ich gefallen daran, mir von dir helfen zu lassen xD Das mit dem "ThisWorkbook" war mir nicht bewusst, dachte das bezieht sich daher insgesamt auf den Mappennamen und nicht aufs Tabellenblatt... Also einmal danke dafür =)
Nun zum Offset Problem:
Ich sollte mich selbst für meine Dummheit schlagen. Range("A1").Offset(0, Bereich3) gibt mir natürlich den Wert, der in der Zelle steht. Da der Wert I2 [A] lautet, dachte ich, da kann irgendwas nicht stimmen... Aber ein Problem ergibt sich dadurch:

Enter = InputBox("Bei welcher Zeile beginnt Ihre Tabelle? (Überschriftenzeile eingerechnet, _
ALLE Eingaben nur in Zahlen möglich)")
Bereich1 = InputBox("In welcher Zeile hört die Tabelle, die Sie übertragen möchten, auf? _
")
Bereich2 = InputBox("In welcher Reihe fängt die Tabelle, die Sie übertragen möchten, an? _
(Reihe A = 1, B = 2...)")
Bereich3 = InputBox("In welcher Reihe hört die Tabelle, die Sie übertragen möchten, auf? _
")
Markierung = Chr(65 + Bereich2 - 1) & Enter & ":" & Range("A1").Offset(0, Bereich3) & Bereich1


In der markierten Zeile möchte ich, dass ich die Eingaben auswerte, also möchte ich mit dem ausdruck Range("A1").Offset(0, Bereich3) eigentlich den Reihenindex, also z.B. C, X, IV ansprechen, und NICHT eine bestimmte Zelle. Als Ausgabe sollte dann etwas entstehen wie: "A1:X59". Wie kann ich das am einfachsten erreichen?
Danke im Vorraus und im Nachhinein, Mario

Anzeige
AW: Index außerhalb des gültigen Bereichs
27.08.2007 10:14:13
HalMar
Zur Ergänzung: https://www.herber.de/bbs/user/45404.xls hier eine Tabelle aus den Werten die onehin schon im File stehen... damit einfach mal ausprobieren

AW: Index außerhalb des gültigen Bereichs
27.08.2007 10:14:48
Rudi
Hallo,
Thisworkbook referenziert auf die Mappe mit dem Makro. In der Beispieldatei gibt es keine Tabelle "Diagcreator".
Gruß
Rudi
Eine Kuh macht Muh, viele Kühe machen Mühe

Die besten Lösungen sind die Einfachsten ^^
27.08.2007 11:07:00
HalMar
Hallo nochmal,
Dass ich da nicht früher draufgekommen bin... einfach die Eingabe in Buchstaben und Zahlen tätigen lassen, und schon funktionierts...
Also danke nochmal für die Hilfe und Zaunpfahl-hinweise über ThisWorkbook =)
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige