Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Programmeren

VBA programeren

None
12 antwoorden
  • Hello iedereen,
    Dit is mijn eerste keer op dit forum. Hopelijk kan iemand van jullie experten mij helpen met het volgende probleem.
    Ik heb een Inputdata-formulier (vba) aangemaakt. Onderaan staan 2 commandbottons "Save" en "Clear". "Clear" is geen probleem.
    Probleemstelling: Na ingave van data en eindig met "Save" gaat de data in rij 1 van blad 1 staan, OK. Wanneer ik een 2 reeks gegevens wil saven, overschrijft hij gewoon rij 1. Dit is niet de bedoeling. Graag had ik de 2de reeks op rij 2 gehad. Idem dito met ingave de 3de reeks data.
    Hopend op een antwoord, alvast bedankt!
  • Excel neem ik aan? Welke versie?

    Je zal een loop moeten doen, die de eerste lege rij opzoekt.

    Zet het bestand even online, dan kunnen wij het aanpassen.
  • allereerst bedankt voor jouw snelle reactie.
    Idd, het gaat hier over Excell 2010
    Hoe je een bestand online zet, weet ik niet. Kan ik dat ergens terug vinden? in de tab FAQ heb ik hierover niks gelezen…
    Ik wel alvast een stukje gecopieerd, hopelijk kan je hier al iets mee doen…

    Private Sub btnSave_Click()

    Cells(1, 1) = txtTagnr.Text
    Cells(1, 2) = txtBeschrijving.Text
    Cells(1, 3) = txtLijn.Text
    Cells(1, 4) = txtFilternaam.Text
    Cells(1, 5) = txtZekeringkastplaats.Text

    End Sub

    Alvast mercie voor de moeite!!!
    Mvg,
    wibo1980
  • Je moet het volgende aanpassen:

    Private Sub btnSave_Click()
    Do
    regel=regel+1
    loop until cells( regel,1)=""

    Cells(regel, 1) = txtTagnr.Text
    Cells(regel, 2) = txtBeschrijving.Text
    Cells(regel, 3) = txtLijn.Text
    Cells(regel, 4) = txtFilternaam.Text
    Cells(regel, 5) = txtZekeringkastplaats.Text

    End Sub

    Wat hij eerst doet, is kijken welke regel leeg is, daarna schrijft hij de data weg op de lege regel.
  • Thank you very much!
    Het werkt joepie!!! Ben kei blij en nu kan ik verder bouwen aan mijn bestandje.

    Tot ik weer op een probleem stuit natuurlijk, maar dan weet ik waar en bij wie ik moet zijn!

    Mercie!
  • Mijn volgend probleem:
    TxtboxFilternaam: moet de ingave beginnen met "F". Indien dit niet het geval is verschijnt er een msgbox. Tot hier ok. Maar bij ingave zoals het hoort (F…)verschijnt ook die msgbox en dit mag niet. Ook bij de "backspace-toets" verschijnt de msgbox nog eens.
    Dit heb ik zelf al gefabriceerd.

    Private Sub txtFilternaam_Change()

    If Not (Var = "F";) Then intDummy = MsgBox("De vorm waarin de Filternaam moet gegeven worden is F….";)
    Filternaam = False

    If (Filternaam - lngVariant) <> lngF Then Filternaam = True


    End If

    End Sub
    Hopelijk kan iemand mij verder helpen…
  • Ik zou het zo aanpakken:
    [code:1:51584aa2fe]
    Private Sub txtFilternaam_Change()
    If txtFilternaam.Text <> "" Then
    If LCase(Left(txtFilternaam.Text, 1)) <> "f" Then
    MsgBox "De vorm waarin de Filternaam moet gegeven worden is F…."
    End If
    End If
    End Sub
    [/code:1:51584aa2fe]

    De eerste if kijkt of de tekst niet leeg is, de tweede kijkt of de eerste karakter lowercase ongelijk is aan een "f", zo ja zet hij de messagebox op het scherm.
  • Is precies een beetje verschillend van de mijne ;-)
    Ik zal je tip eens uitproberen.
    Bedankt!
  • Hey Marc,
    Nu mijn data input-form klaar is, ben ik nu bezig met een Search-form. De data imput verschijnt op "blad2". De bedoeling is om dit blad te gebruiken als basis voor de Search-form.
    Mijn vraag: is het mogelijk bij ingave van 1 recordveld dat de rest van de "lege" records automatisch aangevuld worden met de bijhorende data (van "Blad2)?
    Ik weet echt niet hoe ik hieraan moet beginnen. Als ik al een basis info heb, kan ik het verder zelf uitzoeken. Want anders leer ik er zelf niks bij… Dus alle info is welkom.
    Alvast bedankt!
    wibo1980
  • Hangt een beetje af wat je precies wilt.

    Wil je een global search hebben, waabij je alle velden wilt matchen (met een tussenscherm die alle matches geeft), of alleen maar zoeken op bijvoorbeeld artikelnummer (oid ;) ), en dan de rest aanvullen vanuit de tabel? Het kan allebei, maar de aanpak is anders.

    (B.T.W.: je hebt mail)
  • Een global search lijkt mij het meest compleet en gebruiksvriendelijk. Als beginnend VBA gebruiker lijkt het mijzelf net iets te moeilijk voor mijn niveau. Dus alle info is meer dan welkom.
    Ik zou graag mijn volledige bestand willen tonen maar weet niet hoe ik dit moet doen. Feeling stupid!

    thanks voor je reactie
    wibo1980
  • [code:1:989c57d914]

    If OptionButton1.Value = True Then
    kolom = 1
    zoeken = ComboBox1.Text
    End If

    If OptionButton2.Value = True Then
    kolom = 2
    zoeken = ComboBox2.Text
    End If

    If OptionButton3.Value = True Then
    kolom = 3
    zoeken = ComboBox3.Text
    End If

    If OptionButton4.Value = True Then
    kolom = 4
    zoeken = ComboBox4.Text
    End If

    If OptionButton5.Value = True Then
    kolom = 5
    zoeken = ComboBox5.Text
    End If

    Worksheets(2).Select
    ListBox1.Clear
    regel = 1 'regel 1 overslaan, staat omschrijving in
    Do
    regel = regel + 1
    If Cells(regel, 1) = "" Then Exit Do
    If InStr(LCase(Cells(regel, kolom)), LCase(zoeken)) > 0 Then
    tekst = Str(regel) & "> "
    For X = 1 To 5
    tekst = tekst & Cells(regel, X)
    If X < 5 Then tekst = tekst & " - "
    Next
    ListBox1.AddItem tekst
    End If
    Loop
    [/code:1:989c57d914]

    You've got mail :)

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.