Onervaren met VBA, Schoolopdracht

Status
Niet open voor verdere reacties.

Ruudje97

Nieuwe gebruiker
Lid geworden
16 okt 2017
Berichten
1
Delete

Ik heb de tekst maar even terug gezet.
Het is niet netjes om een vraag te stellen een reactie te krijgen die werkt en dan je vraag verwijderen omdat het een school opdracht is.
Ook heb ik deze maar op slot gezet zodat de vraag niet weer kan verdwijnen.



-
Zou iemand mij kunnen uitleggen waarom de onderstaande code niet werkt?
Geeft foutmelding 9 aan. Het subscript valt buiten bereik.

P
Code:
rivate Sub CommandButton2_Click()
Dim Airline(1 To 13860) As String
Dim AC_Type(1 To 13860) As String
Dim WVC(1 To 13860) As String
Dim Flight_ID(1 To 13860) As String
Dim Call_sign(1 To 13860) As String
Dim Origin(1 To 13860) As String
Dim Destination(1 To 13860) As String
Dim RFL(1 To 13860) As String
Dim Route_length(1 To 13860) As String

For i = 1 To 13860
Airline(i) = Worksheets("FlightList").Cells(i + 1, 9).Text
AC_Type(i) = Worksheets("FlightList").Cells(i + 1, 10).Text
WVC(i) = Worksheets("FlightList").Cells(i + 1, 11).Text
Flight_ID(i) = Worksheets("FlightList").Cells(i + 1, 1).Text
Call_sign(i) = Worksheets("FlightList").Cells(i + 1, 2).Text
Origin(i) = Worksheets("FlightList").Cells(i + 1, 3).Text
Destination(i) = Worksheets("FlightList").Cells(i + 1, 3).Text
RFL(i) = Worksheets("FlightList").Cells(i + 1, 3).Text
Route_length(i) = Worksheets("FlightList").Cells(i + 1, 3).Text
Next i


If Airline(i) = ComboBox1 And AC_Type(i) = ComboBox2 And WVC(i) = ComboBox3 Then
Worksheets("Flightlist_output").Cells(i + 1, 1).Text = Flight_ID
Worksheets("Flightlist_output").Cells(i + 1, 2).Text = Call_sign
Worksheets("Flightlist_output").Cells(i + 1, 3).Text = Origin
Worksheets("Flightlist_output").Cells(i + 1, 4).Text = Destination
Worksheets("Flightlist_output").Cells(i + 1, 5).Text = RFL
Worksheets("Flightlist_output").Cells(i + 1, 6).Text = Route_length
End If


If ComboBox1 = "" Then
MsgBox "Please enter an airline"
End If
If ComboBox2 = "" Then
MsgBox "Please enter an aircraft type"
End If
If ComboBox3 = "" Then
MsgBox "Please enter L,M,H.J"
End If

End Sub


Jullie zouden mij enorm helpen als jullie hier een antwoord op hebben!
 
Laatst bewerkt door een moderator:
Je gebruikt waarschijnlijk ergens een indexnummer (i), die niet overeenkomt met een daarmee aangesproken positie het document.
Zonder dat document is er daarom weinig over te zeggen.

En dit? (Niet de oorzaak)
Code:
Origin(i) = Worksheets("FlightList").Cells(i + 1, 3).Text
Destination(i) = Worksheets("FlightList").Cells(i + 1, 3).Text
RFL(i) = Worksheets("FlightList").Cells(i + 1, 3).Text
Route_length(i) = Worksheets("FlightList").Cells(i + 1, 3).Text
Daar zet je 4x dezelfde waarde in verschillende array elementen.
Verder zou ik die arrays niet op die manier declareren maar Redim Preserve in de loop gebruiken.
Maar dit kan ook korter en vele malen sneller.
Daarnaast kan je beter als eerste de controle op het gevuld zijn van de comboboxen doen in plaats van als laatste.
 
Laatst bewerkt:
Ga eens met de cursor boven deze regel staan, zwevend boven de i en lees dan welke waarde de variabele i heeft:

Code:
If Airline(i) = ComboBox1 And AC_Type(i) = ComboBox2 And WVC(i) = ComboBox3 Then


NB. Overigens had je in je vraag kunnen vermelden dat de code in die regel geel gemarkeerd wordt.

Plaats svp VBA code tusen code tags #
 
Laatst bewerkt:

Beste Helpers,

De TS heeft aangegeven dat het niet handig was dat zijn code hier openbaar stond i.v.m school.

[edit]Hoofdmod heeft inmiddels de vraag terug weten te halen :)[/edit]

m.v.g,
Rick van Lieshout
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Steun Ons

Nieuwste berichten

Terug
Bovenaan Onderaan