Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[Excel 2003 SP3] Internationaal compatibele time formats

Pagina: 1
Acties:

  • Mastakilla
  • Registratie: Februari 2001
  • Laatst online: 12-11 15:11
Hallo,

Ik heb laatst veel tijd gestoken in een sheet met daarin een hoop formules met tijden.
Ik ben er zonet, via een collega, echter achter gekomen dat mijn sheet niet werkt in het buitenland.

De reden hiervan is niet zo moeilijk, een voorbeeld:
=CONCATENATE(TEXT($F29+$G29;"u:mm"); "-"; TEXT($F39+$G39;"u:mm"))

Het enige probleem voor internationale compatibiliteit hierin lijkt me het tijd formaat te zijn: "u:mm"

Nu kan ik niet echt vinden hoe ik dit moet oplossen...

* Tools - Options - Spelling staat op English (UK)
* Mijn Office 2003 SP3 is een Engelse versie
* Mijn Windows is een Engelse Versie
* Mijn Regional Settings staan uiteraard "correct" en die ga ik ook niet echt veranderen
* "u:mm" vervangen door "h:mm", dan werkt de formule op mijn pc niet meer

Kan iemand me hiermee helpen? Hoe forceer ik dat de volledige formule in een internationaal ondersteund formaat kan opgesteld worden? Want momenteel is het een combinatie van... (CONCATENATE is Engels, terwijl het tijd formaat in het Nederlands moet)

Bedankt

Verwijderd

dit is mogelijk door een speciale naam te definiëren die gebruikt maakt van een excel 4.0 xlm macro die het juiste formaat kan uitlezen. je gaat als volgt tewerk :
kies een cel uit (misschien een verborgen cel) en formatteer deze via de celeigenschappen zoals gewenst (bv. u:mm)
maak een naam met de xlm macro die het formaat van deze cel uitleest. insert->names->define (invoegen->namen->definieren). geef als naam bv. lokaletijdsnotatie en in het refers to (verwijst naar) veld zet je het volgende :
code:
1
2
3
4
'engelstalig
=GET.CELL(7;Blad1!$A$1))
'nederlandstalig
=CEL.LEZEN(7;Blad1!$A$1)

deze naam geeft dus informatietype 7 (celnotatie) weer voor de cel a1 op werkblad blad1.
de formule wordt overeenkomstig aangepast :
code:
1
=CONCATENATE(TEXT($F29+$G29;lokaletijdsnotatie);"-";TEXT($F39+$G39;lokaletijdsnotatie))

  • Mastakilla
  • Registratie: Februari 2001
  • Laatst online: 12-11 15:11
bedankt voor de oplossing

als ik het goed begrijp moet je dan per taal een "oplossing" schrijven?

Het probleem is dat ik niet weet in welke talen het allemaal gebruikt zal worden (kan in principe iedere taal van wereld zijn)

is dit trouwens niet wat moeilijk voor een basic behoefte als "internationale compabiliteit van een excel file"? of bestaat zoiets niet in excel?

Verwijderd

nee deze oplossing zou moeten werken voor alle talen (formulenamen enz worden immers automatisch vertaald - aangezien je over de engelstalige versie van excel beschikt breng je de naamdefinitie in met de engelstalige formule)

Verwijderd

Mastakilla schreef op dinsdag 10 februari 2009 @ 08:39:
is dit trouwens niet wat moeilijk voor een basic behoefte als "internationale compabiliteit van een excel file"? of bestaat zoiets niet in excel?
ter aanvulling van m'n eerder antwoord. het probleem dat zich hier stelt is dat je een opmaaknotatie als literal gebruikt in een formule (voor jouw specifieke probleem zie ik trouwens geen andere oplossing dan dat idd zo te doen). enkel indien de literal overeenstemt met de opmaaknotatie van de taalversie van excel, zal dit correct functioneren zoals je zelf hebt opgemerkt.
wanneer je van de opmaaknotatie in de cel zelf gebruik maakt, dan wordt deze automatisch aangepast aan de taalversie en is er geen probleem. dus een engelse h:mm celopmaak gaat automatisch naar u:mm in het nederlands, maar de literal blijft "onvertaald" en wordt dus bij andere taalversies niet herkend als opmaakpatroon.

  • Lustucru
  • Registratie: Januari 2004
  • Niet online

Lustucru

26 03 2016

Eerlijk gezegd zie ik na enkele malen kijken nog steeds niet welk probleem er nu met die formule wordt opgelost. :)

Misschien is het handiger als de Ts erbij verteld wat er nu eigenlijk in die cellen staat en wat eruit moet komen, want het lijkt me stug dat dat niet veel simpeler en eleganter kan. :)



Is het dan niet net zo handig om meteen een functie aan te maken die de tijdstring retourneert?
code:
1
2
3
Function GetTimeString(timevalue As Date) As String
    GetTime = Format$(timevalue, "h:mm")
End Function
en werkbladformule
code:
1
=GetTimeString(f1+g1) & " - " & gettimestring(f2+g2)

[ Voor 137% gewijzigd door Lustucru op 10-02-2009 18:15 . Reden: zo sneu voor _heretic als zijn post in de lucht hangt. :p ]

De oever waar we niet zijn noemen wij de overkant / Die wordt dan deze kant zodra we daar zijn aangeland


Verwijderd

TS heeft in 4 broncellen 4 maal tijd staan (al dan niet geformatteerd). zijn concatenateformule voegt dit samen in 1 cel volgens het formaat u:mm-u:mm dus bv. 9:46+0:0:04 & 10:30+0:0:31 wordt dmv de formule in de doelcel 9:52-11:01
het probleem is dat de opmaakliteral die in de doelformule gebruikt wordt niet automatisch omgezet wordt volgens de regionale instellingen van de computer. nu zou hij het resultaat 9:52-11:01 dat nu in 1 cel staat kunnen splitsen over drie kolommen, dan is z'n probleem ook opgelost.

  • Mastakilla
  • Registratie: Februari 2001
  • Laatst online: 12-11 15:11
inderdaad...

sorry voor het late antwoord en bedankt nog voor de alternatieve oplossingen en uitleg waarom het niet internationaal werkt

functies in office heb ik niet echt ervaring mee, vandaar dat ik ze nog niet het geprobeerd.

Ik heb intussen trouwens de cellen opgesplitst in 2 ipv in 1 cel een streepje er tussen

het grote nadeel hieraan was dat alle andere cellen van die kolom dan moest mergen...

Maar ja, nu dat dat gebeurt is, is het geheel wel iets onderhoudbaarder en ook internationaal compatibel zonder functies

nogmaal bedankt...
Pagina: 1