Helpmij.nl
Helpmij.nl
Helpmij.nl
Steun Helpmij.nl! Klik hier     Computerprobleem? Klik hier!

Quote

Weergeven resultaten 1 tot 16 van 16

Onderwerp: Hoe geef ik een Dynamische Array Door aan een andere Sub?

  1. #1
    Senior Member
    Geregistreerd
    22 februari 2014
    Vraag is opgelost

    Hoe geef ik een Dynamische Array Door aan een andere Sub?

    Beste,

    Hoe kan ik een Dynamische Array doorgeven aan een andere SubProcedure?
    Het is zo dat ik in een bepaalde sub, een array creëer & vul, en deze Array wil ik aanspreken als ik op een listbox klik in een userform.

    Ik eindig mijn 1ste sub met
    Code:
    UserForm1.Show
    In het Userform heb ik volgende code.
    Code:
    Private Sub ListBox1_Click()
            If Not ListBox1.Value = "" Then
                Me.TextBox1.Value = Array1(4, 3).Value
                
            End If
    End Sub
    Waarin:
    Listbox is gevuld met: "" en met andere waarden
    Op UserForm1 staat een TextBox1
    Waarin ik een waarde wil schrijven uit Array1 (die dus gemaakt is in een andere sub).

    Ik krijg volgende foutmelding als ik klik op de ListBox
    Klik op afbeelding voor grotere versie

Naam:  1.jpg
Bekeken: 6
Grootte:  14,7 KB

    Ik heb Option Exlplicit opstaan, dus deze foutmelding zal komen omdat vba een niet gedeclareerde code "Array1" vindt...
    Dus ik zou deze kunnen declareren...
    Maar dan moet ik Volgende info kunnen doorgeven.
    - De grootte van de Array1 (staat ook allemaal in parameters in de 1ste sub)
    - De informatie die in Array1 zit.

    Kan iemand mij hiermee helpen?

    Dien ik op 1 of andere manier "GrootteArray1" & "Array1" door te geven van uit de 1ste sub naar sub "ListBox1_Click" volgens onderstaande methodiek of iets dergelijks?

    Code:
    Call ListBox1_Click("GrootteArray1, "Array1")

    Groeten Wocky.
    Laatst aangepast door Wocky : 9 november 2018 om 21:03

  2. #2
    Giga Honourable Senior Member
    Verenigingslid

    Geregistreerd
    12 juni 2008
    Toon waar Array1 wordt gemaakt en wat erin staat.

    waarschijnlijk is Dim Array1 in het declaratiedeel van de macromodule van het userform voldoende.
    VBA voor smarties
    VBA is een taal die je moet leren met een grammatica- en een woordenboek.

    http://www.helpmij.nl/forum/announcement.php?f=5
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

  3. #3
    Giga Honourable Senior Member
    Verenigingslid

    Geregistreerd
    12 juni 2008
    Toon waar Array1 wordt gemaakt en wat erin staat.

    waarschijnlijk is Dim Array1 in het declaratiedeel van de macromodule van het userform voldoende.

    zie http://www.snb-vba.eu/VBA_Combobox.html
    en
    zie http://www.snb-vba.eu/VBA_Arrays.html
    Laatst aangepast door snb : 9 november 2018 om 20:43
    VBA voor smarties
    VBA is een taal die je moet leren met een grammatica- en een woordenboek.

    http://www.helpmij.nl/forum/announcement.php?f=5
    Plaats svp geen bestanden op andere sites; nadat het bestand daar verwijderd is wordt een forumdraad onbegrijpelijk voor anderen.

  4. #4
    Senior Member
    Geregistreerd
    22 februari 2014
    Beste,

    Het probleem zit hem in het feit dat ik een parameter wil doorgeven aan een sub, dat een event representeerd van een object in de userform.
    Ik doe het volgende maar het werkt niet.

    Ik verklaar tussen haakjes een parameter, die de doorgegeven informatie moet opvangen en gerbuiken in de sub.
    (Mijn doel is om een array door te geven, maar ik probeer het 1st even met een Integer)
    Code:
    Private Sub ListBox1_Click(MijnParameter As Integer)
        MsgBox MijnParameter
       
    End Sub
    In mijn hoofdmacro geef ik onderstaand statement.
    Maar vanaf ik iets tussen haakjes heb gezet in de eventsub, werkt intellisense niet meer.. dus vba merkt op dat er al iets mis is denk ik dan.
    Code:
    UserForm1.ListBox1_Click (5)
    Ik vermoed dat ik structureel iets verkeerd doe... maar wat?
    Ik wil een parameter aanspreken van mijn hoofdsub, in een eventsub van een object van een userform.
    Kan iemand mij helpen aub?

    Ik krijg onderstaande foutmelding
    Klik op afbeelding voor grotere versie

Naam:  1.jpg
Bekeken: 4
Grootte:  23,4 KB

    Ik pas onderstaande methodiek toe.
    https://www.youtube.com/watch?v=aoue...&index=13&t=0s


    Alvast bedankt.
    Wocky.
    Laatst aangepast door Wocky : 10 november 2018 om 11:00

  5. #5
    Senior Member
    Geregistreerd
    22 februari 2014
    Of is de enige manier een de door te geven parameters de definiëren als Publieke variabelen?
    (ik doe dit liever niet, om overzicht te bewaren in mijn code en fouten te vermijden...)

    https://stackoverflow.com/questions/...ub-to-userform

  6. #6
    Mega Senior
    Geregistreerd
    16 maart 2011
    Locatie
    Weert
    Afstand tot server
    ±99 km
    Private Sub ListBox1_Click() is voorbehouden aan VBA en mag je geen parameters aan toevoegen.
    Met een voorbeeldbestandje wordt je sneller en beter geholpen.
    Afhankelijk van een waarde in een listbox wil je dat een waarde uit een array in een textbox komt?
    Laatst aangepast door alphamax : 10 november 2018 om 11:36

  7. #7
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Quote Origineel gepost door Wocky Bekijk Bericht
    Of is de enige manier een de door te geven parameters de definiëren als Publieke variabelen?
    (ik doe dit liever niet, om overzicht te bewaren in mijn code en fouten te vermijden...)
    Dat is de juiste manier. Zie ook #3.
    Het vermijden van fouten daarmee doe je door Option Explicit te gebruiken.
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  8. #8
    Senior Member
    Geregistreerd
    22 februari 2014
    Ok,

    In bijlage een voorbeeldbestandje.
    Dus zoals je dan zei, je mag de Titelcode van de Eventsub niet wijzigen.. dit voorbeeldbestandje is dus verkeerd.
    Maar hoe dan wel?

    Groeten Wocky

    Code Sub
    Code:
    Sub ArrayDoorgeven()
        Dim i As Long
        Dim LaatsteRij As Long
        Dim MyArray() As String
        
        LaatsteRij = Cells(Rows.Count, 1).End(xlUp).Row
        
        For i = 1 To LaatsteRij
            If Not IsEmpty(Cells(i, 1)) Then
                ReDim Preserve MyArray(1 To i)
                MyArray(i) = Cells(i, 1).Value
            
            End If
        Next i
        
        UserForm1.Show
    End Sub
    Code UserForm1
    Code:
    Private Sub ListBox1_Click(MyArray As String)
        MsgBox MyArray(3)
    
    End Sub
    Map1.xlsm

  9. #9
    Senior Member
    Geregistreerd
    22 februari 2014
    Afhankelijk van een waarde in een listbox wil je dat een waarde uit een array in een textbox komt?
    Klopt
    Laatst aangepast door Wocky : 10 november 2018 om 12:07

  10. #10
    Senior Member
    Geregistreerd
    22 februari 2014
    Quote Origineel gepost door alphamax Bekijk Bericht
    Afhankelijk van een waarde in een listbox wil je dat een waarde uit een array in een textbox komt?
    Klopt

  11. #11
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Kijk eens naar dit:
    Kopie van Map1.xlsm

    Denk eraan dat een array zero bound is, tenzij je Option Base 1 gebruikt.
    Laatst aangepast door edmoor : 10 november 2018 om 12:12
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  12. #12
    Senior Member
    Geregistreerd
    22 februari 2014
    Ok Thanks.

    Bijkomende vraag.
    Heb ik het goed gelezen & begrepen dat Listboxen & Comboboxen 1 op 1 gevuld kunnen worden met 2D array,

    En dus dat een listbox met slechts 3 kolommen zichtbaar (eigenschap ColumnCount = 3), wel effectief meerdere kolommen kunnen bevatten (zoveel als de Array er heeft) bvb 10?
    En dat je dus ook deze info in niet zichtbare kolommen kan aanspreken in je listbox?

    Groeten Wocky.

  13. #13
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Zie voor een zeer goede uitleg de links van snb in #3.
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

  14. #14
    Senior Member
    Geregistreerd
    22 februari 2014
    Mja, Is goede uitleg.. maar heel veel bijkomende info...
    Maar goed.. zal wel even doorbijten.
    Thanks.

  15. #15
    Senior Member
    Geregistreerd
    22 februari 2014
    Quote Origineel gepost door edmoor Bekijk Bericht
    Denk eraan dat een array zero bound is, tenzij je Option Base 1 gebruikt.
    Weet je Toevallig of Option Base 1 ook kan gebruikt worden voor de ListBox e.d.?
    Heb de indruk van niet...

    Wocky

  16. #16
    Tera Honourable Senior Member edmoor's avatar
    Geregistreerd
    8 september 2000
    Locatie
    Zuid-Holland
    Option Base 1 is alleen voor arrays.
    "It's hardware that makes a machine fast. It's software that makes a fast machine slow. "
    Op rechtstreekse vragen via email reageer ik niet. Daar is het forum voor.
    Lees ook: http://www.helpmij.nl/forum/announcement.php?f=5

Berichtenregels

  • U mag geen nieuwe vragen starten.
  • U mag niet reageren op berichten.
  • U mag geen bijlagen versturen.
  • U mag uw berichten niet bewerken.
  •  
Helpmij.nl
Helpmij.nl

Helpmij.nl en business

Partners
Sponsoren