datum weergave afhankelijk van landinstellingen in VBA excel.

Status
Niet open voor verdere reacties.

bontekite

Gebruiker
Lid geworden
19 dec 2009
Berichten
80
Hallo,:)

Ik ben op zoek naar een eenvoudige vba code in excel voor het volgende probleem.

Op een brief wordt de code date opgehaald en gezet in de format 25 januari 2011
deze brief wordt ook in het engels en andere talen aangemaakt, maar nu blijft de datum aanduiding in het nederlands.

Als ik met de hand de landinstellingen van windows aanpas dan komt de datum wel in het engelse of een van de andere talen.

Ik wil dit niet steeds aanpassen.
In het programma is bekent in welke taal (engels,duits,nederlands,frans en Spaans) de brief aangemaakt moet worden.

Is er een vba code om deze landinstellingen aante passen .
Ik heb ook al wat op internet gezocht maar kan niets werkend vinden.:confused:

gr Ben




deze wil ik
 
Misschien kan dit wel helpen?
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
    ActiveCell.Value = Now()
    MsgBox ActiveCell.Value
    ActiveCell.NumberFormat = "[$-409]mmm-dd-yy;@"
    MsgBox ActiveCell.Text
End Sub
Dan rest enkel nog te zoeken naar de juiste landcodes...
 
oplossing datum weergave

Inderdaad hiermee ben ik aardig geholpen het was even puzzelen betreffende de codes maar uiteindelijk aan uitgekomen met een loop oplopend van 1 to 1000 echter bij 199 liep deze vast .
de meeste landcodes die ik nodig had liggen echter veel lager dan de [ $-409] die in je code gebruikt werd.
zie hieronder de codes van de diverse talen

hartelijke dank
gr Ben
:):):):):)

Code:
Private Sub test()
DATUM = Date
     
 'Nederland 13
   Range("a1").NumberFormat = "[$-13]dd-mmmm-yyyy;@"
   Range("a1") = DATUM
 'Duits 7
   Range("a2").NumberFormat = "[$-7]dd-mmmm-yyyy;@"
   Range("a2") = DATUM
 'Engels 9
   Range("a3").NumberFormat = "[$-9]dd-mmmm-yyyy;@"
   Range("a3") = DATUM
 'frans 14
   Range("a4").NumberFormat = "[$-14]dd-mmmm-yyyy;@"
   Range("a4") = DATUM
    ' spaans 10
   Range("a5").NumberFormat = "[$-10]dd-mmmm-yyyy;@"
   Range("a5") = DATUM
     
End Sub
 
Laatst bewerkt door een moderator:
echter als ik dit probeer te impementeren in de vba code gebeurt er niets.

hij opend een word bestand zoekt een : op en vervangt deze voor de : en de datum (in de juiste taal)

Code:
Private Sub test()
Dim datum As Date
Dim x As Integer
Dim wddocument As Object

Set wd = CreateObject("word.Application")


taal = "E"
If taal = "E" Then x = 9
If taal = "N" Then x = 13
 If taal = "D" Then x = 7
 If taal = "F" Then x = 14
If taal = "S" Then x = 10

NumberFormat = "[$-" & x & "]dd-mmmm-yyyy;@"
datum = Date

 Set wddocument = wd.documents.Open("L:\Company.doc")
  wd.Visible = True
  wddocument.Activate
  
  wd.Selection.Find.Execute
    With wd.Selection.Find
    .Text = ":"
    .Forward = True
    .Wrap = wdFindContinue
    .Format = false
    .MatchCase = False
    .MatchWholeW[ATTACH]138659.vB[/ATTACH]ord = False
    .MatchWildcards = False
    .MatchSoundsLike = False
    .MatchAllWordForms = False
    .Replacement.Text = ":" & Chr(9) & datum
    .Execute Replace:=wdReplaceOne
  End With



End Sub
 

Bijlagen

Laatst bewerkt door een moderator:
Ik ga niet in op de rest van de code maar
'NumberFormat'
moet wel toegepast worden op een cel. je gebruikt dus een cel als tussenstation voor het transformeren van een datum. Je zal dus hoe dan ook iets in deze aard moeten zetten:
ActiveCell.NumberFormat= ...
cells(1,1).NumberFormat= ...
 
Het probleem is dat het geen excel document is maar een word document en deze kent geen cellen behalve als je met tekst velden of tabellen gaat werken, maar zo is de opmaak van de brieven en de gehele vba code niet uitgevoerd.
dus ben ik er nog steeds niet achter hoe je in deze with deel datum op de juiste manier moet defineren om de juiste taal te verkrijgen.

gr
 
het is nog niet opgelost voor de word versie , echter ik heb het voorlopig via een excel veld opgelost indien iemand een word oplossing weet dan hoor ik die graag.
bedankt nog voor alle suggesties
gr
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan