Live-Forum - Die aktuellen Beiträge
Datum
Titel
24.04.2024 19:29:30
24.04.2024 18:49:56
24.04.2024 17:19:09
Anzeige
Archiv - Navigation
1620to1624
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

Problem mit Code

Problem mit Code
25.04.2018 10:45:45
Philip
Hallo
Ich habe einen Code der am anfang auch funktioniert hat aber jetzt leider nicht mehr.
Ich bekomme immer den fehler "Index ausserhalb des gültigen Bereichs".
Mit diesem Code suche ich etwas in der Tabelle und übertrage dieses in die Listbox und folge dort dem Hyperlink.
Hoffe ihr könnt mir helfen.
Private Sub CommandButton1_Click()
Dim wksQ As Worksheet
Dim strKundennummer As String
Dim lngSpalte As Long
Dim rngSuchBereich As Range, rngList As Range, rng As Range
Dim vntGesucht As Variant
Dim lngGefundenInZeile As Long
Dim straArray() As String
Dim rngGefunden As Range
Dim lngZeileArray As Long
Dim strFirstAddress As String
Set wksQ = ThisWorkbook.Worksheets("Probenahme")
strKundennummer = Trim(TextBox1.Text)
vntGesucht = Replace(strKundennummer, "*", "") & "*"
lngSpalte = 6
Set rngSuchBereich = wksQ.Columns(lngSpalte)
lngGefundenInZeile = 0
Set rngGefunden = rngSuchBereich.Find(What:=vntGesucht, After:=rngSuchBereich.Cells(1), _
LookIn:=xlValues, LookAt:=xlWhole)
If Not rngGefunden Is Nothing Then
strFirstAddress = rngGefunden.Address
Do
If rngList Is Nothing Then
Set rngList = rngGefunden
Else
Set rngList = Union(rngList, rngGefunden)
End If
Set rngGefunden = rngSuchBereich.FindNext(rngGefunden)
Loop While Not rngGefunden Is Nothing And rngGefunden.Address  strFirstAddress
End If
Dim hyp As String
Dim pfad As String
pfad = "Z:\pfad\"
If Not rngList Is Nothing Then
ReDim straArray(1 To rngList.Rows.Count, 1 To 9) As String
For Each rng In rngList
lngZeileArray = lngZeileArray + 1
straArray(lngZeileArray, 1) = wksQ.Cells(rng.Row, 1)
straArray(lngZeileArray, 2) = wksQ.Cells(rng.Row, 2)
straArray(lngZeileArray, 3) = wksQ.Cells(rng.Row, 4)
straArray(lngZeileArray, 4) = wksQ.Cells(rng.Row, 5)
straArray(lngZeileArray, 5) = wksQ.Cells(rng.Row, 6)
straArray(lngZeileArray, 6) = wksQ.Cells(rng.Row, 7)
straArray(lngZeileArray, 7) = wksQ.Cells(rng.Row, 8)
straArray(lngZeileArray, 8) = wksQ.Cells(rng.Row, 13)
hyp = wksQ.Cells(rng.Row, 13)
ActiveSheet.Hyperlinks.Add Anchor:=wksQ.Cells(rng.Row, 18), _
Address:=Dir(pfad & hyp & "*" & ".pdf"), _
TextToDisplay:=pfad & Dir(pfad & hyp & "*" & ".pdf")
straArray(lngZeileArray, 9) = wksQ.Cells(rng.Row, 18)
Next
ListBox1.Clear
ListBox1.ColumnCount = 9
ListBox1.ColumnHeads = False
ListBox1.List = straArray
ListBox1.ColumnWidths = "2cm;3cm;8cm;5cm;4cm;3cm;2cm;3cm;0cm"
ListBox1.Font.Size = 12
Label1 = "Anzahl:" & ListBox1.ListCount
Else
ListBox1.Clear
MsgBox "Artikel-Nr. nicht gefunden!"
End If
End Sub

Der Fehler tritt immer bei der Zeile

straArray(lngZeileArray, 1) = wksQ.Cells(rng.Row, 1)
auf.
Gruss

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
As String (3 Zeilen darüber) ...
25.04.2018 10:56:13
lupo1
... vielleicht weglassen?
AW: As String (3 Zeilen darüber) ...
25.04.2018 11:47:11
Daniel
Hi
das Problem tritt auf, wenn dein rngList kein lückenloser Zellblock ist (z.B "A1:A10") sonderen aus mehreren Blöcken mit Lücken dazwischen besteht (z.B "A1:A3,A6:A7,A12:A15")
in diesem Fall zählt das rngList.Rows.count nur die Anzahl der Zeilen des ersten Blocks ("A1:A3")
Wenn du in solchen Zellbereichen, die aus mehreren Teilbereichen (Areas) bestehen, die Anzahl der Zeilen ermitteln willst, musst du die Anzahl der Zellen in der ersten Spalte zählen.
Da dein rngList nur aus einer Spalte besteht, kannst du einfach die Zellen zählen.
ReDim straArray(1 To rngList.Cells.Count, 1 To 9) As String
das .Cells.Count zählt immer alle Zellen des Bereichs, auch wenn dieser aus mehreren Blöcken besteht.
.Rows.Count und .Columns.Count zählen immer nur die Zeilen und Spalten des ersten Blocks.
Gruß Daniel
Anzeige
AW: As String (3 Zeilen darüber) ...
25.04.2018 12:17:43
Philip
Hallo Daniel
Vielen Dank für deine Antwort ich habe das so abgeändert und jetzt funktionierts einwandfrei.
Danke.
Gruss

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige