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

De ene keer Engelse datum en de andere keer normale datum

Status
Niet open voor verdere reacties.

Mcstupid

Gebruiker
Lid geworden
11 feb 2011
Berichten
81
Goedendag allen!!

Ik gebruik momenteel de code...
Code:
Dim zoekwaarde As String
zoekwaarde = Range("B11")

    For Each cl In .Range("B1") 'voor elke waarde in bereik
    If Not Sheets(cl.Value).Range("J:J").Find(zoekwaarde) Is Nothing Then MsgBox "Vrachtbriefnummer bestaat al", vbExclamation: Exit Sub
      If cl > 0 Then 'als waarde groter is dan 0 of leeg ga naar volgende regel, anders naar End if
        If cl.Column = 2 Then 'als de waarde in kolom 2 staat doe volgende regel, anders naar else
       Sheets(cl.Value).[A65536].End(xlUp).Offset(1) = Cells(7, cl.Column).Offset(, 1) ' als de waarde in kolom 2 staat, dan cel rechts van waarde  kopiëren naar laatste rij in kolom A van werkblad-waarde die bezet is + 1 erbij.
    Else: Sheets(cl.Value).[A65536].End(xlUp).Offset(1) = Cells(7, cl.Column).Offset(, -1) 'anders als waarde in kolom 3 staat, cel links van waarde kopiëren naar....
 End If
     Sheets(cl.Value).[B65536].End(xlUp).Offset(1).Resize(, 9).Value = _
        WorksheetFunction.Transpose(.Range(Cells(3, cl.Column), Cells(11, cl.Column)).Value)  'werkblad-waarde laatste rij + 1 en 5 kolommen breed = van verticaal naar horizontaal de waarden zetten van B10:B14 of C10:C14 zetten
       End If
      Next cl ' Volgende waarde van bereik B7:C7, en de code loopt nog een keer het rondje af
    End With
        If Left(Range("b11").Value, 4) = "0085" Then Range("k1") = Range("k1") + 1
        If Left(Range("b11").Value, 4) = "0085" Then Range("K2") = Range("B11").Value

...om een reeks weg te werken van de ene tabblab naar de andere waaronder in cel B3 de datum van wegschrijven.

Alleen het ene moment wordt ie weggeschreven als DDMMJJJJ en op andere momenten als MMDDJJJJ.
Hoe kan ik hem in de VBA formule als DD-MM-JJJJ laten wegschrijven?

Bij voorbaat dank!!

FYI: ik heb de code ergens vandaag geplukt op dit forum en een beetje aangepast:d:d. Voor een deel snap ik hem :cool::rolleyes:
 
Kan niet zelf testen, maar doe zelf eens de test:

Code:
Dim zoekwaarde As String
With Sheets(Range("B1"))
 zoekwaarde = Range("B11")
 If Not .Range("J:J").Find(zoekwaarde) Is Nothing Then MsgBox "Vrachtbriefnummer bestaat al", vbExclamation: Exit Sub
  If .Range("B1") > 0 Then 
      .[A65536].End(xlUp).Offset(1) = .Cells(7, 2).Offset(, 1) 
   Else: .[A65536].End(xlUp).Offset(1) = .Cells(7, 2).Offset(, -1) 
           .[B65536].End(xlUp).Offset(1).Resize(, 9).Value = Format(WorksheetFunction.Transpose(.Range(.Cells(3, 2), Cells(11, 2)).Value), "dd/mm/yyyy") 
  End If
        If Left(.Range("b11").Value, 4) = "0085" Then .Range("k1") = .Range("k1") + 1: .Range("K2") = .Range("B11").Value
End With
 
Alleen het ene moment wordt ie weggeschreven als DDMMJJJJ en op andere momenten als MMDDJJJJ.

Dat is dus niet zo. VBA werkt standaard met de Amerikaanse notatie, MMDDYYYY.
Dus bijvoorbeeld 05-04-2016 is voor ons 5 April maar voor een Amerikaan 4 Mei.

Cobbe laat al zien hoe je zelf kan aangeven dat je het Europese formaat wil gebruiken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan