AfterUpdate

Status
Niet open voor verdere reacties.

Kramer

Gebruiker
Lid geworden
12 jun 2002
Berichten
447
Hallo Iedereen.

Ik heb een userform met het veld txtafdeling. Dit haalt hij uit een bestandje

Nu komt hier de hele afdeling te staan.
dus bijvoorbeeld afdeling inkoop.

nu zou ik graag willen dat wanneer er op de OK knop wordt geklikt niet de hele variable (afdeling inkoop) in het sjabloon wordt geplaatst maar alleen inkoop.

Is dit mogelijk en zou ja hoe??
 
Dit is een klein voorbeeld van hoe het zou kunnen!

Code:
AfdelingString = "afdeling Inkoop"
x = Len(AfdelingString) - 9
AfdelingString= Right(AfdelingString, 6)
 
helaas.

Wanneer ik in mijn userform langs het veld ga blijft gewoon de afdeling staan....

Wat ik wel moet nog moet vertellen dat het veld wel variable is aangezien er natuurlijk meerdere afdelingen zijn.
 
code

Dit is de hele code die achter mijn userform zit.

Code:
Private Sub CommandButton1_Click()
 Call Einde
End Sub

Private Sub CommandButton2_Click()
MultiPage1.Value = 1
End Sub

Private Sub CommandButton3_Click()
MultiPage1.Value = 0
End Sub

Private Sub CommandButton4_Click()
MultiPage1.Value = 2
End Sub

Private Sub CommandButton5_Click()
MultiPage1.Value = 1
End Sub

Private Sub TxtAanhef_Afterupdate()
    x$ = Trim$(TxtAanhef)
    If Right$(x$, 1) <> "," Then TxtAanhef = x$ + ","
    If TxtAanhef.Value = "Geachte heer" Then
     Rem Selection.MoveRight Unit:=wdCharacter, Count:=1
    TxtAanhef = x$
    x$ = Trim$(TxtAanhef)
    If Right$(x$, 1) <> " " Then TxtAanhef = x$ + " "
    Selection.TypeText Text:=" "
    End If
End Sub
Private Sub Txtafdeling_Afterupdate()
    Afdelingstring = "afdeling inkoop"
    x = Len(Afdelingstring) - 9
    Afdelingstring = Right(Afdelingstring, 6)
End Sub


Private Sub CommandButton6_Click()
Pad = Options.DefaultFilePath(wdWorkgroupTemplatesPath)
totaal = Pad + "\" + "alge\alge001.dot"

Documents.Add Template:=totaal, NewTemplate:=False
    
With ActiveDocument
    .Bookmarks("bwUwkenmerk").Range.Text = Me.TxtUwkenmerk
    .Bookmarks("bwOnskenmerk").Range.Text = Me.TxtOnskenmerk
    .Bookmarks("bwContactpersoon").Range.Text = Me.TxtContactpersoon
    .Bookmarks("bwAfdeling").Range.Text = Me.TxtAfdeling
    
    If Val(TxtDoorkiesnummer) < 600 Then
        .Bookmarks("bwTxtDoorkiesnummer").Range.Text = "600"
    Else
         .Bookmarks("bwDoorkiesnummer").Range.Text = Me.TxtDoorkiesnummer
    End If
    
    '.Bookmarks("bwEmail").Range.Text = Me.TxtEmail
    .Bookmarks("bwDatum").Range.Text = Me.TxtDatum
    .Bookmarks("bwOnderwerp").Range.Text = Me.TxtOnderwerp
    .Bookmarks("bwBijlage").Range.Text = Me.TxtBijlage
    .Bookmarks("bwAdres").Range.Text = Me.TxtAdres
    .Bookmarks("bwAanhef").Range.Text = Me.TxtAanhef
    
    .Bookmarks("bwfunctie").Range.Text = functie
    
    .Bookmarks("Start").Select
    
End With
    
Call Einde
End Sub

Private Sub Einde()
    UserFormBrief.Hide
    Unload UserFormBrief
End Sub

Private Sub TxtOnderwerp_Afterupdate()
    x$ = TxtOnderwerp.Text
    Mid$(x$, 1, 1) = UCase(Mid$(x$, 1, 1))
    TxtOnderwerp = x$
    x$ = Trim$(TxtOnderwerp)
    'If Right$(x$, 1) <> "." Then TB7 = x$ + "."
End Sub

Private Sub UserForm_Activate()
'pad = Options.DefaultFilePath(wdUserTemplatesPath)
paden
ipad = ipad + "\persgeg.ini"
'TB1 = ""
'TB2 = ""
'TB3 = ""
UserFormBrief.TxtAdres = adres
UserFormBrief.TxtOnderwerp = onderwerp
naam = System.PrivateProfileString(ipad, "geg", "naam")
telnr = System.PrivateProfileString(ipad, "geg", "telnr")
afd = System.PrivateProfileString(ipad, "geg", "afdeling")
functie = System.PrivateProfileString(ipad, "geg", "functie")
'mail = System.PrivateProfileString(ipad, "geg", "email")

MultiPage1.Value = 0

If naam = "" Then
    MsgBox "U dient eerst uw profielgegevens in te vullen", vbInformation
    pgeg.Show
End If
    TxtContactpersoon = naam
    TxtDoorkiesnummer = telnr
    TxtAfdeling = afd
 '   TxtEmail = mail
    TxtDatum = Format(Date, "d mmmm yyyy")
    TxtAanhef = "Geacht bestuur,"
    TxtAanhef.AddItem "Geacht bestuur,"
    TxtAanhef.AddItem "Geachte directie,"
    TxtAanhef.AddItem "Geacht college,"
    TxtAanhef.AddItem "Geachte heer,"
    TxtAanhef.AddItem "Geachte mevrouw,"
    TxtAanhef.AddItem "Geachte heer of mevrouw,"

        
End Sub
Private Sub UserForm_Initialize()
    MultiPage1.Value = 0
End Sub

Ik zoek zoiets als dit
Code:
Private Sub TxtOnderwerp_Afterupdate()
    x$ = TxtOnderwerp.Text
    Mid$(x$, 1, 1) = UCase(Mid$(x$, 1, 1))
    TxtOnderwerp = x$
    x$ = Trim$(TxtOnderwerp)

End Sub

Dit zorgt er voor dat er in het veld txtonderwerp het wat er wordt ingevuld met een hoofdletter begint en eindigt met een punt.

Nu zoek ik dus voor de txtafdeling een code die er voor zorgt dat wat welke afdeling er komt te staan het woord afdeling wordt weggegooid.
 
Laatst bewerkt:
Zie hier!

Code:
Private Sub TextBox1_AfterUpdate()
Dim x As Long
    x = Len(TextBox1) - 9 'Lengte van het woord Afdeling incl 1 spatie
    TextBox1.Value = Right(TextBox1.Value, 6)
End Sub
 
Kun je laten zien hoe je lijst met waarden eruit ziet? Die in die txtbox kan verschijnen.
 
Hij haalt de afdeling vanuit een bestandje op iedere medewerker hun harde schijf.
In dit bestand worden de persoonlijke gegevens bewaard (Naam, telefoonnummer, email, afdeling)

Met de code
Code:
Private Sub UserForm_Activate()
'gegevens ophalen
naam = System.PrivateProfileString(ipad, "geg", "naam")
telnr = System.PrivateProfileString(ipad, "geg", "telnr")
afd = System.PrivateProfileString(ipad, "geg", "afdeling")
functie = System.PrivateProfileString(ipad, "geg", "functie")
'mail = System.PrivateProfileString(ipad, "geg", "email")

'userform vullen
TxtAfdeling = afd       
End Sub

en dit wordt dan in het userform gezet.
Ik kan niet de code aanpassen om persoonlijke gegevens aan te passen. Want de tekst afdeling moet bij andere dingen er wel bij staan.

hier heb je bestandje
Bekijk bijlage persgeg.zip
 
afdeling inkoop of afdeling inkoop.

Ik denk dat je bedoeld afdeling inkoop of inkoop.

Ik komt te staan afdeling inkoop
 
Ik denk dat je moet proberen de lengte van de string te pakken en daarna dien je met string functies heb uit elkaar te trekken.
Misschien moet je hem niet eerst in de textbox gooien maar in een variabelen om zeker van te zijn dat het een string is.
 
heb je toevallig iets om mij op weg te helpen.

Het vervelende is dat ik sjabloon moet aanpassen maar dat ik hem niet zelf gemaakt heb
 
Code:
Me.TxtOnderwerp.Text = Mid(Me.TxtOnderwerp, 10)
 
Hoi Warme bakkertje.
Wanneer ik op de ok knop klik. Komt er in het word document OnWaar te staan.

Maar het gaat niet om onderwerp maar om afdeling.

Hij moet na het drukken op de ok toets de tekst afdeling uit het veld txtafdeling weg halen maar de rest wat er in het veld staat laten staan

in userform afdeling inkoop
in worddocument inkoop
 
Laatst bewerkt:
Stom laat maar had het niet goed gelezen. Warme bakkertje. Ik dacht dat ik alles er neer moest zetten. Maar ik hoefde alleen de
Code:
Mid(Me.TxtOnderwerp, 10)
neer te zetten. nogmaals bedankt
 
De code van Warme bakker werkt.

Nu komt ik er achter dat er ook afdelingen zonder afdeling dus haalt hij de eerste 10 karakters nu weg.

Nu ben ik aan de slag gegaan met de deze code.
Code:
If (TxtAfdeling) <> "Afdeling " Then
        .Bookmarks("bwAfdeling").Range.Text = Mid(Me.TxtAfdeling, 10)
        Else
        .Bookmarks("bwAfdeling").Range.Text = Me.TxtAfdeling
    End If

Ik probeer dus een voorwaarde te creëren, wanneer er in het veld afdeling staat moet hij de eerste doen.
staat er geen afdeling dan gewoon de hele veld toevoegen.
 
Code:
If Left(Me.TxtAfdeling, 9) = "Afdeling " Then
    .Bookmarks("bwAfdeling").Range.Text = Mid(Me.TxtAfdeling, 10)
Else
    .Bookmarks("bwAfdeling").Range.Text = Me.TxtAfdeling
End If

Deze voorwaarde gaat enkel op als Afdeling steeds met Hoofdletter begint maw identiek is aan de voorwaarde.
 
kleine letter

dus al het met afdeling met kleine letter is dan moet ik gewoon Afdeling vervangen met afdeling
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan