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

Code toevoegen aan bestaande code.

Status
Niet open voor verdere reacties.

danny147

Terugkerende gebruiker
Lid geworden
29 apr 2007
Berichten
4.744
Beste, ;)

Heb een bestaande code :

Code:
Private Sub Txt_wa_Change()
    If Len(Txt_wa) = 6 Then
    Dim FindString As String, Rng As Range
    FindString = Txt_wa.Value
    If Trim(FindString) <> "" Then
        With Sheets("Blad1").Range("C9:C1008")
            Set Rng = .Find(What:=FindString, After:=.Cells(1), LookIn:=xlValues, LookAt:=xlWhole, _
                            SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False)
            If Not Rng Is Nothing Then
                MsgBox "Dit Wa Nr. is al in gebruik. Voer een ander nummer in!", vbInformation, "Dubbel WA-nummer"
                Txt_wa = ""
                Txt_wa.SetFocus
            Else
                Exit Sub
            End If
        End With
    End If
    End If
End Sub

En wil graag deze code erin plaatsen.

Code:
If txt_wa.Value = "" Then
Exit Sub
End If
If IsNumeric(txt_wa.Value) Then
Exit Sub
Else
MsgBox ("Sorry, Enkel nummers.")
txt_wa.Value = ("")
End If

Heb het geprobeerd maar dan lukt het ene wel en het andere dan weer niet.

Groetjes Danny. :thumb:
 
danny147,

Als je de code als eerst zet?
Was zomaar een gedachte van me.
 
anny147,

Ik weet het nu weer, je moet de code zetten in de textbox txt_wa
 
Laatst bewerkt:
Beste Hoornvan ;)

anny147,

Ik weet het nu weer, je moet de code zetten in de textbox txt_wa

De bovenste code staat in textbox txt_wa.

Maar ik heb het ondertussen gevonden, gewoon de code erachter plaatsen.

Code:
Private Sub Txt_wa_Change()

    If Len(Txt_wa) = 6 Then
    Dim FindString As String, Rng As Range
    FindString = Txt_wa.Value
    If Trim(FindString) <> "" Then
        With Sheets("Blad1").Range("C9:C1008")
            Set Rng = .Find(What:=FindString, After:=.Cells(1), LookIn:=xlValues, LookAt:=xlWhole, _
                            SearchOrder:=xlByRows, SearchDirection:=xlPrevious, MatchCase:=False)
            If Not Rng Is Nothing Then
                MsgBox "Dit Wa Nr. is al in gebruik. Voer een ander nummer in!", vbInformation, "Dubbel WA-nummer"
                Txt_wa = ""
                Txt_wa.SetFocus
            Else
                Exit Sub
            End If
        End With
    End If
    End If
    If Txt_wa.Value = "" Then
Exit Sub
End If
If IsNumeric(Txt_wa.Value) Then
Exit Sub
Else
MsgBox ("Sorry, Enkel nummers.")
Txt_wa.Value = ("")
End If
End Sub

Groetjes Danny. :thumb:
 
Laatst bewerkt:
of

Code:
Private Sub Txt_wa_Change()
  on error resume next
  If trim(TxT_wa.text)="" or len(txt_wa.Text<>6 or not isnumeric(txt_wa.text) then exit sub
  c0=Sheets("Blad1").Range("C9:C1008").Find(Txt_wa.Text, ,xlValues,xlWhole).row
  if err.number>0 then 
     MsgBox "Dit Wa Nr. is al in gebruik. Voer een ander nummer in!", vbInformation, "Dubbel WA-nummer"
     Application.enableevents=false
     Txt_wa.Text = ""
     Application.enableevents=true
  End If
End Sub

Maar het is natuurlijk veel handiger een combobox te maken met alle mogelijke WA-nummers die nog niet voorkomen. Door een selektie uit de combobox te maken kan de gebruiker geen fout maken en zijn irritante mededelingen (MsgBoxes) overbodig.
 
Beste snb ;)

Bedankt voor het meedenken van een kortere code maar helaas geeft hij een foutmelding bij de volgende regel.

Code:
If trim(TxT_wa.text)="" or len(txt_wa.Text<>6 or not isnumeric(txt_wa.text) then Exit Sub

Groetjes Danny. :thumb:
 
Beste snb ;)

Code:
If trim(TxT_wa.text)="" or len(txt_wa.Text<>6 or not isnumeric(txt_wa.text) then Exit Sub

Moet worden:

Code:
If trim(TxT_wa.text)="" or len(txt_wa.Text[COLOR="Red"])[/COLOR]<>6 or not isnumeric(txt_wa.text) then Exit Sub

Maar nu kan ik 6 cijfers invoeren die reeds bestaan alsook letters.


Groetjes Danny. :thumb:
 
Code:
Private Sub Txt_wa_Change()
  If  len(trim(txt_wa.Text))=6 and isnumeric(trim(txt_wa.text)) then
    on error resume next
    c0=Sheets("Blad1").Range("C9:C1008").Find(Txt_wa.Text, ,xlValues,xlWhole).row
    if err.number>0 then 
      MsgBox "Dit Wa Nr. is al in gebruik. Voer een ander nummer in!", vbInformation, "Dubbel WA-nummer"
      Application.enableevents=false
      Txt_wa.Text = ""
      Application.enableevents=true
    End If
  End If
End Sub

Maar dit soort gepriegel is allemaal overbodig als je ervoor zorgt dat de gebruiker geen fouten kan maken met behulp van een combobox. Of als je automatisch een nieuw nummer toekent.
 
Beste snb ;)

Code:
Maar dit soort gepriegel is allemaal overbodig als je ervoor zorgt dat de gebruiker geen fouten kan maken met behulp van een combobox. Of als je automatisch een nieuw nummer toekent.[/QUOTE]

Dit zou natuurlijk gemakkelijk zijn.

Deze nummers zijn aangemaakt van verschillende diensten op een bedrijf van 6000 arbeiders.
De nummers die voor ons bestemd zijn worden apart behandeld.

De nummers kunnen een verschil hebben van 1 tot 100 nummers.

Het bestandje [COLOR="Red"][B][URL="http://www.helpmij.nl/forum/showthread.php?t=364414&highlight=userform&page=6"]staat hier[/URL][/B][/COLOR] waar de code in moet komen.

Groetjes Danny. :thumb:
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan