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

dag en maand worden omgedraaid in userform

Status
Niet open voor verdere reacties.

Danielle22

Gebruiker
Lid geworden
8 mei 2007
Berichten
378
Hallo allemaal,

Wat ik ook probeer maar ik kom niet echt verder. Als ik de datum wil wijzigen in de userform en dan ga wegschrijven dan worden de dag en datum omgedraaid. Als ik dan de gegevens weer ophaal en weer iets ga wijzigen dan worden weer de dag en maand van de datum omgedraaid.

Ik kan het bestand helaas niet uploaden (is te groot). Maar textbox B en I zijn de datum velden die steeds worden omgedraaid.

Voor het wijzigen van de gegevens in de userform gebruik ik deze code:

Code:
Private Sub wijzig_Click()
'sorteer alles terug

    ActiveWindow.SmallScroll ToRight:=-3
    ActiveWorkbook.Worksheets("Werkblad").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Werkblad").Sort.SortFields.Add Key:=Range( _
        "A3:A12695"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:= _
        xlSortNormal
    With ActiveWorkbook.Worksheets("Werkblad").Sort
        .SetRange Range("A2:L12695")
        .Header = xlYes
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("A1").Select 'eins backsorteer
zoeknaam = Itembewerken.zoeknaam.Value
[B]itembewerken_module[/B] (zoeknaam) 'AANPASSEN

response = MsgBox("Wilt u andere gegevens wijzigen?", vbYesNo, Title:="Gegevens wijzigen!")
    If response = vbNo Then
        Me.Hide
        Unload Me
    Else
        
        Unload Me
        On Error Resume Next
        Itembewerken.Show 'AANPASSEN
        On Error GoTo 0
        
        
        
    End If
''ActiveWorkbook.Save 'save het bestand
Sheets("Werkblad").Select
    With ActiveSheet 'verwijzen naar werkblad
With .Range("A2:A" & .Cells(.Rows.Count, "E").End(xlUp).Row) 'maak van tekst ordernummer een getal (active sheet wel aanpassen!)
.NumberFormat = "###0"
.Value = .Value

Sheets("Werkblad").Select
    Range("F3:G45").Select
    Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
        SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
        ReplaceFormat:=False
    Range("G15").Select
    
ActiveWorkbook.Save 'save het bestand

Hoofdmenu.Show
End With
End With
End Sub

In deze code wordt er verwezen naar de itembewerken_module. Hierin staat de volgende code:

Code:
Sub itembewerken_module(zoeknaam As String)

Dim MyRange             As Variant
Dim c                   As Range
Dim i                   As Long

Set MyRange = Worksheets("Werkblad")

zoeknaam = Itembewerken.zoeknaam.Value

'tegen flikkeren van beeldscherm
Application.ScreenUpdating = False
    
If Itembewerken.zoeknaam.Text = Empty Then
    MsgBox "!!     Je hebt niets geslecteerd     !!"
    MsgBox "!! Er kan dus niets gewijzigd worden !!"

Else

    'wat gaan we opslaan
    
          KolomB = Itembewerken.KolomB.Value
          KolomC = Itembewerken.KolomC.Value
          KolomD = Itembewerken.KolomD.Value
          
          KolomF = Itembewerken.KolomF.Value
          KolomG = Itembewerken.KolomG.Value
          KolomH = Itembewerken.KolomH.Value
          KolomI = Itembewerken.KolomI.Value
          KolomK = Itembewerken.KolomK.Value
          KolomL = Itembewerken.KolomL.Value
         
        
          
           'InStr geeft het locatienummer van waar de komma staat in de string zoeknaam
i = InStr(zoeknaam, ", ")
           'Left geeft vanaf links aantal karakters weer in de string zoeknaam.
           'we doen dit mbv de locatie van de komma
           'bv jan, klaassen dan is Instr = 4 (, staat op de 4e plek), left is dan Instr - 1 want de komma willen we niet. Left = Instr - 1 (Jan, - , wordt Jan)
stZoekenLinks = Trim(Left(zoeknaam, i - 1))
           'Hier zoeken we in de string zoeknaam naar het midden gedeelte.
           'We zoeken het gedeelte tussen de komma en de spatie
stKolomf = Mid(zoeknaam, i + 2, InStr(i + 2, zoeknaam, " ") - (i + 2)) 'Achternaam
           'Hier zoeken we gegevens rechts van de spatie.
           'met de functie Trim halen we de komma's links en recht (als deze aanwezig zijn) weg
stZoekenRechts = Right(zoeknaam, Len(zoeknaam) - InStr(i + 2, zoeknaam, " "))

    For Each c In MyRange.Range("E3:E20000")
        If c = stZoekenLinks And c.Offset(0, 1).Value = stKolomf And c.Offset(0, 2).Value = stZoekenRechts Then
            
            MyRange.Range("B" & c.Row) = Itembewerken.KolomB.Text
            MyRange.Range("C" & c.Row) = Itembewerken.KolomC.Text
            MyRange.Range("D" & c.Row) = Itembewerken.KolomD.Text
            
            MyRange.Range("F" & c.Row) = Itembewerken.KolomF.Text
            MyRange.Range("G" & c.Row) = Itembewerken.KolomG.Text
            MyRange.Range("H" & c.Row) = Itembewerken.KolomH.Text
            MyRange.Range("I" & c.Row) = Itembewerken.KolomI.Text
            MyRange.Range("K" & c.Row) = Itembewerken.KolomK.Text
            MyRange.Range("L" & c.Row) = Itembewerken.KolomL.Text
            
       
            
        End If
    Next

'tegen flikkeren van beeldscherm
Application.ScreenUpdating = True

naam1 = Itembewerken.KolomE.Text & " " & Itembewerken.KolomF.Text & " " & Itembewerken.KolomG.Text
naam2 = Itembewerken.KolomE.Text & " " & Itembewerken.KolomG.Text

    If Itembewerken.KolomF.Text <> "" Then
        MsgBox ("Gegevens van " & naam1 & " zijn gewijzigd!")
    Else
        MsgBox ("Gegevens van " & naam2 & " zijn gewijzigd!")
    End If
End If

End Sub

Weet iemand wat ik moet veranderen of aanpassen zodat de datumvelden van textbox B en I niet steeds worden omgedraaid?

Alvast heel erg bedankt voor de eventuele hulp.

Groetjes,

Danielle
 
Code:
.value = cdate(textbox1)
 
Bedankt voor je reactie. Ik heb het nu zo staan, maar helaas worden de dag en maand nog steeds opgedraaid.

Code:
'wat gaan we opslaan
    
          KolomB = Itembewerken.KolomB.Value = CDate(KolomB)
          KolomC = Itembewerken.KolomC.Value
          KolomD = Itembewerken.KolomD.Value
          
          KolomF = Itembewerken.KolomF.Value
          KolomG = Itembewerken.KolomG.Value
          KolomH = Itembewerken.KolomH.Value
          KolomI = Itembewerken.KolomI.Value = CDate(KolomI)
          KolomK = Itembewerken.KolomK.Value
          KolomL = Itembewerken.KolomL.Value
          
          KolomS = Itembewerken.KolomS.Value
          KolomT = Itembewerken.KolomT.Value
        
          
           'InStr geeft het locatienummer van waar de komma staat in de string zoeknaam
i = InStr(zoeknaam, ", ")
           'Left geeft vanaf links aantal karakters weer in de string zoeknaam.
           'we doen dit mbv de locatie van de komma
           'bv jan, klaassen dan is Instr = 4 (, staat op de 4e plek), left is dan Instr - 1 want de komma willen we niet. Left = Instr - 1 (Jan, - , wordt Jan)
stZoekenLinks = Trim(Left(zoeknaam, i - 1))
           'Hier zoeken we in de string zoeknaam naar het midden gedeelte.
           'We zoeken het gedeelte tussen de komma en de spatie
stKolomf = Mid(zoeknaam, i + 2, InStr(i + 2, zoeknaam, " ") - (i + 2)) 'Achternaam
           'Hier zoeken we gegevens rechts van de spatie.
           'met de functie Trim halen we de komma's links en recht (als deze aanwezig zijn) weg
stZoekenRechts = Right(zoeknaam, Len(zoeknaam) - InStr(i + 2, zoeknaam, " "))

    For Each c In MyRange.Range("E3:E20000")
        If c = stZoekenLinks And c.Offset(0, 1).Value = stKolomf And c.Offset(0, 2).Value = stZoekenRechts Then
            
            MyRange.Range("B" & c.Row) = Itembewerken.KolomB.Text
            MyRange.Range("C" & c.Row) = Itembewerken.KolomC.Text
            MyRange.Range("D" & c.Row) = Itembewerken.KolomD.Text
            
            MyRange.Range("F" & c.Row) = Itembewerken.KolomF.Text
            MyRange.Range("G" & c.Row) = Itembewerken.KolomG.Text
            MyRange.Range("H" & c.Row) = Itembewerken.KolomH.Text
            MyRange.Range("I" & c.Row) = Itembewerken.KolomI.Text
            MyRange.Range("K" & c.Row) = Itembewerken.KolomK.Text
            MyRange.Range("L" & c.Row) = Itembewerken.KolomL.Text
            
            MyRange.Range("S" & c.Row) = Itembewerken.KolomS.Text
            MyRange.Range("T" & c.Row) = Itembewerken.KolomT.Text

Of is dit niet de juiste manier?

Groetjes,

Danielle
 
Ik denk dat dit meer kans op slagen heeft:
KolomB = CDate(Itembewerken.KolomB.Value)
en
KolomI = CDate(Itembewerken.KolomI.Value)
 
Bedankt voor je reactie.

Helaas nog steeds hetzelfde resultaat. Heb echt geen idee waar het aan kan liggen.

Kan ik ook grotere bestanden uploaden?
 
Je kan ook, als het niet anders lukt, via Wetransfer uw bestand stallen en de verkregen link hier te posten.
 
Bij deze de link:

http://we.tl/xlBzNAZvuS

Dit bestand gebruiken we altijd. Alleen bij het menu wijzigen worden steeds de dag en maand omgedraaid. Heb echt geen idee waar dat aan kan liggen.

In ieder geval alvast bedankt voor de eventuele reacties.

Groetjes,

Danielle
 
Zo te zien moet je dus dit:
MyRange.Range("I" & c.Row) = Itembewerken.KolomI.Text

Wijzigen in dit:
MyRange.Range("I" & c.Row) = CDate(Itembewerken.KolomI.Text)
 
Ik heb de kalenders niet dus ik kan beperkt testen.
Ook:
Code:
 KolomB = CDate(Werkbestand.KolomB.Value)
KolomH = CDate(Werkbestand.KolomH.Value)
          KolomI = CDate(Werkbestand.KolomI.Value)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan