Waarde uit Userform gebruiken

Status
Niet open voor verdere reacties.

rmeijer2

Nieuwe gebruiker
Lid geworden
24 nov 2010
Berichten
4
Hallo beste lezer(s)

Ik heb niet kunnen vinden wat ik zocht bij eerdere postings dus dan toch maar mijn vraag hier stellen....

In een For..each loop wordt een kolom met een vooraf onbekend aantal items/cellen per cel/item getoetst. Als de waarde "#NB" tegen wordt gekomen dan komt er een userform naar voren waarmee een juiste waarde gekozen kan worden. Deze gekozen waarde moet ingevuld worden in plaats van de "#NB"......en dat is precies wat NIET lukt. Het LIJKT dat de loop correct wordt doorlopen maar het invullen van de waarde niet. Het lastige is dat ik tijdens de loop niet kan zien welke cel getoetst wordt dus vandaar dat ik zeg dat het lijkt alsof de loop goed werkt.

Als ik vanuit de userform terug in de macro kom is de gekozen waarde verdwenen.
hieronder heb ik de For..each loop staan én de code uit de betreffende userform.

Ik hoop dat de vraagstelling duidelijk genoeg is en dat iemand me hiermee kan helpen.

Hoofd-macro:
Code:
' Codeer_onbekende_items
Dim Onbekende_Code As Variant
Dim intTeller As Integer

Range("B7").Select
Range(Selection, Selection.End(xlDown)).Select

For intTeller = 1 To Selection.Count
    Onbekende_Code = Selection(intTeller).Errors.Item(xlEvaluateToError).Value
    If Onbekende_Code = True Then
        CODERING.Show
   'Activecell = Selection(intTeller)  ????? zoiets ?????   
    Else
    End If
Next


Gedeelte uit userform "Codering":
Code:
Private Sub CommandButton1_Click()

If Hoofdcode = "" Then
MsgBox ("Kies Hoofdcode")
ElseIf subcode = "" Then
MsgBox ("Kies Subcode")
End If

'Selection(intTeller) = subcode ???? Of juist hier ????
CODERING.Hide 

End Sub
 
Ik weet zo uit mijn hoofd niet waar je echte globals kan definiëren in VBA. Wat in ieder geval werkt is het volgende:

Declareer boven al je subs zoiets (in Module1 normaalgesproken):

Code:
Dim MijnString as String

vervolgens maak je een sub zo:
Code:
Sub vulstring (inputwaarde as String)
MijnString = inputwaarde
end sub

deze sub kan je aanroepen in je form om je string te vullen die je terug wil geven:

Module1.vulstring("hoi")

vervolgens kun je na je form zoiets doen:
cell.Value = MijnString

Het is wat omslachtig uitleggen, maar mocht je een voorbeeld hebben is het makkelijker
 
Beste Wampier,

Volgens mij had het inderdaad te maken met waar je je globale (= Public?) variabelen declareert. Ik heb in mijn project 2 modules en een userform. Pas nadat ik bij BEIDE modules mijn Public variabelen gedeclareerd had werd de gekozen waarde uit het userform wél meegenomen in het vervolg van de makro.

Ik ga toch nog eens proberen te achterhalen waar je die variabelen moet declareren indien ze in het hele project beschikbaar moeten zijn...

Bedankt voor de moeite!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan