• 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.

Userform Textbox vervangen door OptionButton, aanpassing VB nodig

Status
Niet open voor verdere reacties.

Hela1966

Gebruiker
Lid geworden
17 jan 2009
Berichten
54
Beste forumleden,

Userforms zijn nog erg nieuw voor me en ik ben er nu een tijdje mee bezig (interpreteer dat maar als dagen het internet afstruinen, proberen, tutorials kijken, forumvragen lezen....)
omdat ik graag het liefst goed begrijp welke aanpassingen ik moet doen zodat ik het userform ten volle kan benutten.

Onlangs ben ik heel goed geholpen op dit forum dus ik waag het er weer maar op. Mijn vraag is als volgt.

Op mijn userform staan tot nu toe alleen textboxen. Graag zou ik textbox5 vervangen door een groep van 4 optionbuttons.

In een oefenbestandje lukte het me wel om de gekozen selectie in een kolom te krijgen maar ik weet niet hoe ik de code van mijn bestaande userform moet aanpassen zodat het de keuze van de optionbutton in die kolom gezet wordt (de invoer van de huidige textbox5 werd geplaatst in kolom F)

Ik heb een topic gevonden dat daarover gaat, maar dat gaat echt boven mijn pet(je): http://www.ozgrid.com/VBA/control-loop.htm

Dit is de code die ik heb voor de optionbuttons (maakt gebruik van ActiveCell :confused:)


Code:
 If OptionButton1.Value = True Then
   ActiveCell.Value = OptionButton1.Caption

ElseIf OptionButton2.Value = True Then
   ActiveCell.Value = OptionButton2.Caption

ElseIf OptionButton3.Value = True Then
   ActiveCell.Value = OptionButton3.Caption

ElseIf OptionButton4.Value = True Then
   ActiveCell.Value = OptionButton4.Caption

End If

De code voor (al) mijn textboxen is momenteel als volgt.

Code:
Option Explicit

Dim id As Integer, i As Integer, j As Integer, flag As Boolean

Sub GetData()

If IsNumeric(UserForm1.TextBox1.Value) Then
    flag = False
    i = 0
    id = UserForm1.TextBox1.Value
    
    Do While Cells(i + 1, 2).Value <> ""
    
        If Cells(i + 1, 2).Value = id Then
            flag = True
            For j = 2 To 18
                UserForm1.Controls("TextBox" & j).Value = Cells(i + 1, j + 1).Value
            Next j
        End If
        
        i = i + 1
   
    Loop
    
    If flag = False Then
        For j = 2 To 18
            UserForm1.Controls("TextBox" & j).Value = ""
        Next j
    End If

Else
    ClearForm
End If

End Sub

Code:
Sub EditAdd()

Dim emptyRow As Long

If UserForm1.TextBox1.Value <> "" Then
    flag = False
    i = 0
    id = UserForm1.TextBox1.Value
    emptyRow = WorksheetFunction.CountA(Range("B:B")) + 1
    
    Do While Cells(i + 1, 2).Value <> ""
    
        If Cells(i + 1, 2).Value = id Then
            flag = True
            For j = 2 To 18
                Cells(i + 1, j + 1).Value = UserForm1.Controls("TextBox" & j).Value
            Next j
        End If
        
        i = i + 1
        
    Loop
    
    If flag = False Then
        For j = 1 To 18
            Cells(emptyRow, j + 1).Value = UserForm1.Controls("TextBox" & j).Value
        Next j
End If
    
End Sub

Code:
Sub ClearForm()

For j = 1 To 18
    UserForm1.Controls("TextBox" & j).Value = ""
Next j

End Sub

Alle hulp is welkom en waardeer ik enorm.
 
Het zal de "cracks" waarschijnlijk wel zonder lukken, maar als je jouw bestand plaatst heb je in de regel snel een antwoord.
 
Ik zou zeggen

Code:
Private sub userform_initialize()
  sn=sheet1.cells(1).currentregion

  for j=1 to 18
    if j<= ubound(sn) then me("Textbox" &j).Text=sn(j,1)
  next
End Sub

Opslaan van gegevens
Code:
Private Sub knop_vervolg_click()
   redim sn(1 to 18,0)
   for j=1 to 18
     sn(j,0)=Me("textbox" & j).Text
     if j<5  then if me("optionbutton" & j) then sheet1.cells(1,5)=me("optionbutton" &j).caption
   next

   sheet1.cells(1).resize(ubound(sn))=sn
End Sub
 
Laatst bewerkt:
Goedeavond heer SNB!

In een heeeeel ver verleden heeft u me al met heeeeel veel vraagstukken geholpen en het doet me goed te zien dat u nog steeds actief bent op fora! Ik hoop dat u het goed maakt!

Feitelijk had ik als openingszin verwacht: dat kan korter!
Haha, uw code is als altijd to the point maar helaas voor hela.....lastig te ontcijferen.

Mijn ervaring met userforms is nul, noppes, nada maar ik leer graag en hoop dat u me kunt uitleggen wat de code, wanneer en waar doet.
Op dit moment is het nog een raadsel voor me en krijg ik het uiteraard niet correct geïmplementeerd in het userform.

Hele vriendelijke groet,

Hela
 
SNB heeft waarschijnlijk de best mogelijke code voor je geschreven, maar ik snap het ook niet. daarom is het volgens mij beter om een voorbeeldbestand te plaatsen zodat je meer input krijgt. ik ben ook leerling VBA, maar ik hoop dat de dag ooit komt dat ik de code van SNB begrijp.
 
Hoi SjonR,

Ik ken SNB een beetje en weet dat hij hele goede uitleg geeft als men erom vraagt en als men aantoont oprecht iets te willen leren en niet alleen een hapklare oplossing zoekt.

Dat voorbeeld bestandje ben ik nu even aan het maken (wil uiteraard graag een dummy uploaden) zodat wellicht anderen daar later ook mee geholpen zijn.
 
Begrijp me niet verkeerd Hela,

ik zou willen dat ik de kennis van SNB had. Maar zijn code is zo moeilijk te begrijpen voor een beginneling.
 
@Hela

Zet mijn suggestiecode er svp meteen in; dat schiet lekker op

En overigens: zie www.snb-vba.eu

En tenslotte het Nederlandse 'kmagnieklagen'.:) (jij hopelijk ook niet).
 
@SNB, ik heb met enige regelmaat op die site gekeken hoor. Begin gaat altijd goed, maar dan.....I'm lost in code-paradise!

Jammer genoeg had ik zojuist een "spoedgeval" waardoor ik nog geen kans heb gehad een dummy-bestandje te maken.

Maar er zit echt niets bijzonders in. Gewoon een dot met textboxen en 3 commandbuttons. De code daarvoor heb ik ooit eens gevonden in een tutorial van Excel Easy en werkte prima.

Waar gaat het mis? Wat ik probeer te doen (een aanwezige textbox vervangen door een frame met daarin 4 optionbuttons) zou me toch moeten lukken?

Kun je me uitleggen hoe ik jouw code moet "lezen" ?

Ooh en ja....het gaat prima!

Gr,
Hela
 
Is dit 'm ?
 

Bijlagen

  • __hola 001.xlsb
    16,6 KB · Weergaven: 63
Dank je SNB,

Je userform doet helemaal wat k verwacht (kon ook niet anders :D ) maar ik weet niet hoe ik jouw code moet toevoegen aan de reeds aanwezige code.

Het huidige serform plaatst nieuwe data (als waarde in textbox1 niet voorkomt in kolom B) horizontaal op de eerstvolgende lege regel in kolom B, geeft alle textboxdata weer indien de ingevoerde waarde in textbox1 reeds voorkomt.

Het fungeert feitelijk als een soort ticket-systeem waarbij ik steeds data op het userform kan oproepen, muteren en/of toevoegen.

Kun je me verder helpen adhv de code die ik hierboven geplaatst heb, zodat ik kan leren hoe ik jouw code het best kan implementeren?

Mocht je geen tijd hebben....het heeft geen haast. Ik heb ook alleen maar 's avonds een momentje om aan het userform te "sleutelen"...druk druk druk.

Gr,
Heleen
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan