• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Foutmelding op array

Status
Niet open voor verdere reacties.

N12047

Gebruiker
Lid geworden
27 aug 2015
Berichten
56
Beste mensen,

Ik wilde de zoekfunctie uitbreiden naar 35.
Zodra als ik bij de 10 kom krijg ik een foutmelding "Subscript out of range".
Zie de rode regel.

Kan iemand mij vertellen wat ik hier verkeerd doe en heeft iemand hier een oplossing voor?

Code:
Private Sub cmdSearch_Click()
Dim lr As Long, x As Long, j As Long, arr As Variant, sn As Variant
With Sheet8
lr = .Range("A" & Rows.Count).End(xlUp).Row
arr = .Range("A1", "I" & lr)
ReDim sn(1 To UBound(arr), 1 To 10)
    For x = 1 To UBound(arr)
        [COLOR="#FF0000"]arr(x, 10) = arr(x, 1) & arr(x, 2) & arr(x, 3) & arr(x, 4) & arr(x, 5) & arr(x, 6) & arr(x, 7) & arr(x, 8) & arr(x, 9) & arr(x, 10)[/COLOR]
    Next
    j = 0
    For x = 1 To UBound(arr)

        If InStr(1, LCase(arr(x, 10)), LCase(txtSearch)) > 0 Then
            j = j + 1
            'sn(j, 1) = arr(x, 1)
            sn(j, 2) = arr(x, 2)
            sn(j, 3) = arr(x, 3)
            sn(j, 4) = arr(x, 4)
            sn(j, 5) = arr(x, 5)
            sn(j, 6) = arr(x, 6)
            sn(j, 7) = arr(x, 7)
            sn(j, 8) = arr(x, 8)
            sn(j, 9) = arr(x, 9)
            sn(j, 10) = arr(x, 10)
        End If
    Next
End With
Me.lstData.List = sn
End Sub

Het hele bestand is helaas te groot om mee te sturen.

Dank je wel
 
Je vertelt er niet bij op welke regel je die melding krijgt.
Wijzig dit:
Code:
arr = .Range("A1", "I" & lr)
eens in dit:
Code:
arr = .Range("A1:I" & lr)
 
Edmoor,

Ik krijg de foutmelding op de rode regel.

arr(x, 10) = arr(x, 1) & arr(x, 2) & arr(x, 3) & arr(x, 4) & arr(x, 5) & arr(x, 6) & arr(x, 7) & arr(x, 8) & arr(x, 9) & arr(x, 10)

ik heb het gewijzigd zoals je zei, maar behoud dezelfde foutmelding.
 
Kolom I = de 9e kolom Dus arr(x,10) bestaat niet.

Er wordt nooit om het gehele bestand gevraagd. Dus een voorbeeldbestand kan nooit te groot zijn.
 
Laatst bewerkt:
Beste mensen,

Ik kan spontaan niet meer reageren en heb daardoor maar een nieuw accountje aangemaakt.

VenA,

Je zegt dat "Kolom I = de 9e kolom Dus arr(x,10) bestaat niet.", ik ben dat niet met je eens.

Snel even een voorbeeld bestandje gemaakt.
Hierbij is het userform tijdens het opstarten uitgeschakeld.

Roep het userform op en druk op de search button dan krijg je gelijk de foutmelding te zien en op welke regel.

Alvast bedankt voor het meekijken.
 

Bijlagen

  • Test Helpmij.xlsm
    58,5 KB · Weergaven: 24
Naar mijn mening heeft VenA gewoon gelijk.
Kijk maar:
arr.PNG
 
Ok Edmoor,

Ik geef mijn fout toe.

Maar nu: hoe los ik dit op want ik kom er echt niet achter.
 
Door de array niet van A t/m I te vullen maar van A t/m J.
 
Krijg nou wat....:evil::evil::evil:

Ik zit hier de hele morgen op te staren.

Maar ik ben blij dat het opgelost is.

Dank jullie wel voor het meedenken en ik zet de vraag op opgelost.

ps. oei dat lukt niet onder dit accountje.

Ik ga kijken of ik weer in kan loggen met het andere account.
 
Laatst bewerkt:
Of:

Code:
Private Sub cmdSearch_Click()
  On Error Resume Next
  lstData.List = Sheet8.UsedRange.Find(LCase(txtSearch)).EntireRow.Value
End Sub
 
Dank je wel SNB

Het werkt goed en is in mijn geval misschien wel beter.

Maar... ik heb wel weer wat geleerd uit de post van VenA en Edmoor.
 
VenA,
Je zegt dat "Kolom I = de 9e kolom Dus arr(x,10) bestaat niet.", ik ben dat niet met je eens.
Best wel stellig zonder motivatie.:)
Het debuggen is niet voor niets uitgevonden.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan