Help!

PC-Problemen?
De vrijwilligers van Oplossing.be zoeken gratis met u mee!

Hulp bij posten

Recente topics

Auteur Topic: Unieke waarden via userform  (gelezen 4025 keer)

0 leden en 1 gast bekijken dit topic.

Offline naam

  • Lid
  • *
  • Berichten: 65
  • Oplossing.be
Unieke waarden via userform
« Gepost op: 22 maart 2007, 21:43:36 »
Beste leden,

Ik wil graag via een userform unieke waarden wegboeken (4 cijfers en twee hoofdletters)
Nu lukte me dit zonder userform wel aardig maar met niet.
Ik wilde ook nog een bericht wanneer er dubbele waarden zijn ingevuld.
Kan iemand mij helpen??
Bvd,
Piet.
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

Offline spyder

  • Ambassadeur
  • *****
  • Berichten: 5.265
  • PC probleem zit meestal tussen scherm en rugleun
Re: Unieke waarden via userform
« Reactie #1 Gepost op: 22 maart 2007, 22:33:16 »
Hoi Piet,

Kan je geen kopie van je rekenblad (eventueel met fictieve namen) als bijlage aan je volgende berichtje hangen? Dit zou alles veel duidelijker maken, en bied jou het voordeel dat het in jou applicatie werkt.

spyder
Windows 7 Ultimate Unknow NLD
Intel(R) Core(TM) i7 CPU         870  @ 2.93GHz 2934
P7P55D-E PRO
NVIDIA GeForce GTX 470 1280MB 1680 x 1050
HD 1 : INTEL SSDSA2M080G2GC (80GB)
HD 2 : ST31500341AS (1,5TB)
HD 3 : ST320006 41AS (2TB)
browser: Maxthon  mail:Thunderbird AV: Bitdefender
Scarlet user

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: Unieke waarden via userform
« Reactie #2 Gepost op: 22 maart 2007, 23:54:28 »
Dag, Piet,

veronderstellingen:
1. datainvoer op het eerste werkblad in column 1
2. userform met TextBox1 en CommandButton1

deze elementen kan je in de code zo nodig aanpassen

Private Sub CommandButton1_Click()
Dim DataRange As Range
Dim Duplicate As Range

If TextBox1 = vbNullString Then Exit Sub

Set DataRange = Sheets(1).Columns(1)

    With DataRange
    Set Duplicate = .Find(TextBox1, after:=.Cells(1), LookIn:=xlValues, lookat:=xlWhole)
    End With

    If Duplicate Is Nothing Then
    Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = TextBox1
    TextBox1 = vbNullString
    Else
    MsgBox "Duplicate found in " & Duplicate.Address, 48, "NO DUPLICATES PLEASE"
    End If
End Sub
Wanneer je op de knop drukt en er iets is ingevuld in textbox1 wordt deze waarde getest:
1. reeds aanwezig in de lijst: popup met waarschuwing
2. niet aanwezig: item worst naar werkblad gecopieerd en textbox1 wordt gewist voor volgende invoer

4 cijfers en 2 hoofletters: nog in de code bij te voegen
komen deze uit een lijst of mag de gebruiker zomaar kiezen ?

beste groeten,
Erik

aanpassing: het is meestal angewezen in dit soort applicaties om de eigenschap van de button "TakeFocusOnClick" op FALSE te zetten
zo blijft je textbox actief voor verdere invoer

Offline naam

  • Lid
  • *
  • Berichten: 65
  • Oplossing.be
Re: Unieke waarden via userform
« Reactie #3 Gepost op: 23 maart 2007, 09:02:44 »
Bedankt voor je code, dat ziet er goed uit.
Ik heb een voorbeeldje erbij gedaan wat voor uniekecode ik gebruik

Groetjes,
Piet
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

Offline RedHead

  • Excel-Expert
  • Ambassadeur
  • *****
  • Berichten: 2.284
  • Geslacht: Man
  • Met Excel lukt 't wel.... (toch???)
Re: Unieke waarden via userform
« Reactie #4 Gepost op: 23 maart 2007, 09:50:23 »
Piet, je kan je code (die er voor zorgt dat je formulier getoond wordt) in je algemene module een beetje 'opfrissen'. De macro-recorder stopt er nogal wat 'meuk' bij die niet nodig is....

Vervang die hele sub maar hier voor...Sub knop1()
     UserForm1.Show
End Sub

Dan nog ff over je unieke codes...
Citaat van: Erik
komen deze uit een lijst of mag de gebruiker zomaar kiezen ?
Wat is daarop het antwoord? ???

Groet, Leo
______________________________

Groet, Leo

Offline naam

  • Lid
  • *
  • Berichten: 65
  • Oplossing.be
Re: Unieke waarden via userform
« Reactie #5 Gepost op: 23 maart 2007, 10:56:58 »
Hoi,

De code wordt aangeleverd door een klant en is willekeurig, maar bestaat wel altijd uit 4 cijfers en twee letters.

Groetjes,
Piet
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: Unieke waarden via userform
« Reactie #6 Gepost op: 23 maart 2007, 14:57:17 »
Citaat van: naam
De code wordt aangeleverd door een klant en is willekeurig, maar bestaat wel altijd uit 4 cijfers en twee letters.
Hoi,

Dan heb je hier een uibreiding van mijn code om de invoer te controleren.
Option Explicit

Private Sub CommandButton1_Click()
Dim DataRange As Range
Dim Duplicate As Range
Dim txt As String
Dim msg As String
Dim i As Integer
Dim ch As Integer

If TextBox1 = vbNullString Then Exit Sub

Set DataRange = Sheets(1).Columns(1)

    txt = TextBox1
    If Len(txt) <> 6 Then msg = msg & vbLf & "The input should contain 6 characters."
    If Not IsNumeric(Mid(txt, 1, 4)) Then msg = msg & vbLf & "First 4 characters should be numeric."
   
    On Error Resume Next
    For i = 5 To 6
    ch = Asc(LCase(Mid(txt, i, 1)))
        If ch < 97 Or ch > 122 Then
        msg = msg & vbLf & "Last two characters should be letters."
        Exit For
        End If
    Next i
    On Error GoTo 0

    If Len(msg) > 0 Then
    msg = "Please correct your input!" & vbLf & msg & vbLf & vbLf _
    & "EXAMPLE" & vbLf & "1234AB"
    MsgBox msg, 48, "ERROR"
    Exit Sub
    End If


    With DataRange
    Set Duplicate = .Find(TextBox1, after:=.Cells(1), LookIn:=xlValues, lookat:=xlWhole)
    End With

    If Duplicate Is Nothing Then
    Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0) = TextBox1
    TextBox1 = vbNullString
    Else
    MsgBox "Duplicate found in " & Duplicate.Address, 48, "NO DUPLICATES PLEASE"
    End If
End Sub

groeten,
Erik

PS: o, ja en probeerde je dit al uit
Citaat
het is meestal angewezen in dit soort applicaties om de eigenschap van de button "TakeFocusOnClick" op FALSE te zetten

Offline naam

  • Lid
  • *
  • Berichten: 65
  • Oplossing.be
Re: Unieke waarden via userform
« Reactie #7 Gepost op: 25 maart 2007, 21:50:01 »
Erik,

Jongen bedankt je hebt me enorm geholpen.

Groeten,
Piet
Gelieve uw systeemgegevens in te vullen. Klik HIER voor meer informatie.

Offline Erik Van Geit

  • Excel-Expert
  • Ervaren lid
  • *****
  • Berichten: 306
  • Geslacht: Man
Re: Unieke waarden via userform
« Reactie #8 Gepost op: 25 maart 2007, 22:11:28 »
Je bent van harte welkom !
Fijn om zo'n bericht te mogen lezen.

Het ga je goed!
Erik

 


www.combell.com