/ Forside/ Teknologi / Administrative / MS-Office / Spørgsmål
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
MS-Office
#NavnPoint
sion 18709
refi 14474
Klaudi 9389
Rosco40 5695
berpox 5456
dk 5398
webnoob 4919
Benjamin... 4870
o.v.n. 4637
10  EXTERMINA.. 4373
Celleformatering, hjælp til Excel 2003
Fra : sprenger
Vist : 672 gange
100 point
Dato : 11-04-04 15:59

Hvordan er indskrivningsformatet til følgende:
Brugeren skal skrive 0800 og excel skal lave det om til 08:00 i en celle der er formateret med t:mm.

Med venlig hilsen

Poul-Erik


 
 
Kommentar
Fra : emesen


Dato : 11-04-04 16:05

Den nemme: formater> celle>klokkeslet>peg på 22:15>ok
skriv i cellen 0800 som bliver til 08:00
Emesen.

Kommentar
Fra : sprenger


Dato : 11-04-04 16:12

Tak for dit hurtige forsøg, men når jeg gør som du skriver, bliver indholdet af cellen 00:00, det skulle gerne blive 08:00. Det må være noget med brugerdiffineret format-indskrivning, ligesom når man skal have kr. 100,00 stående.



Kommentar
Fra : emesen


Dato : 11-04-04 16:14

Jeg sidder netop og kæmper med samme problem.
Det virkede i første omgang.
Emesen.

Kommentar
Fra : emesen


Dato : 11-04-04 16:50

Det irriterer mig lidt - for det kan man jo i access.
Emesen.

Kommentar
Fra : refi


Dato : 11-04-04 17:17

Tror ikke du kan det omtalte i excel "emesen" .

Man skal selv taste : under indtastning.

Kommentar
Fra : emesen


Dato : 11-04-04 17:21

Det burde kunne lade sig gøre, men jeg kan ikke lave nogen maske der passer til.
Hmmm

Kommentar
Fra : emesen


Dato : 11-04-04 17:28

brugerdefineret> 0#":"##
Et nyt problem jeg ved ikke rigtigt hvordan den regner på tiden.

Kommentar
Fra : sprenger


Dato : 11-04-04 18:05

emesen har ret i, at det giver et problem med at regne på tiden, resultatet af cellen bliver 800, så løsningen giver kun det synlige indtryk af et korrekt 08:00, men det er måske en del af den endelige løsning.

Sprenger

Kommentar
Fra : emesen


Dato : 11-04-04 20:23

Hvis du bare vil sikre dig at indtastningen er rigtig:
a1 = format klokkeslet
b1 = format brugerdefineret 0#":"## og formlen =HVIS(A1*1>1;A1*1;" ")
Ved korrekt indtastning i a1 vil der ikke stå noget i b1
Ved manglende ":" i a1 vil den korrekte indtastning stå i b1
Læg mærke til at du i a1 kan nøjes med at taste 3: så står der 03:00
Emesen.
Hvis det er indtastningsmetoden der skal være lettere er det måske en idé at bruge access.
Endelig er der jo også VBA eller VB som nok kan klare det.


Kommentar
Fra : refi


Dato : 11-04-04 20:29

Det er flot klaret "emesen" , men det er sgu da en omstændig affære bare for at skrive et klokkeslet.
Jeg har også siddet og leget lidt med ideen.
Alt er muligt, men vejen er MEGET omstændig.
"sprenger"
Hvad er formålet med at indtastningen skal kunne ske med tal alene?

Kommentar
Fra : sprenger


Dato : 11-04-04 21:22

Til refi:
Det er for at lette brugen af et arbejdstidsskema, starttid og sluttid. Det er et brugerønske at slippe for at taste : , så kan man nøjes med at bruge tal-tastaturet, og det går hurtigere, hm,hm, jeg ved det godt, men man må jo bøje sig for brugerne engang imellem.
Til emesen:
Jeg vil nu forsøge at gå VBA vejen for at løse mit problem, noget med at kode range ind på cellerne og så bruge LEN LEFT RIGHT og tilføje et : når jeg sammensætter indtastningen igen.

Accepteret svar
Fra : emesen

Modtaget 100 point
Dato : 11-04-04 21:27

Jeg er tæt på blank mht VBA og VB6 men har da leget lidt.
Access kan jo også gøre det, med flere betingelser og autoindtastninger.
Emesen.
PS. jeg orker ikke at bygge den i access, men vil da gerne hjælpe.

Kommentar
Fra : sprenger


Dato : 11-04-04 22:01

emesen:
Jeg fandt løsningen, her er den:

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim TimeStr As String

On Error GoTo EndMacro
If Application.Intersect(Target, Range("F4:H21")) Is Nothing Then
Exit Sub
End If
If Target.Cells.Count > 1 Then
Exit Sub
End If
If Target.Value = "" Then
Exit Sub
End If

Application.EnableEvents = False
With Target
If .HasFormula = False Then
Select Case Len(.Value)
Case 1 ' f.eks., 1 = 00:01 AM
TimeStr = "00:0" & .Value
Case 2 ' f.eks., 12 = 00:12 AM
TimeStr = "00:" & .Value
Case 3 ' f.eks., 735 = 7:35 AM
TimeStr = Left(.Value, 1) & ":" & _
Right(.Value, 2)
Case 4 ' f.eks., 1234 = 12:34
TimeStr = Left(.Value, 2) & ":" & _
Right(.Value, 2)
Case 5 ' f.eks., 12345 = 1:23:45 NOT 12:03:45
TimeStr = Left(.Value, 1) & ":" & _
Mid(.Value, 2, 2) & ":" & Right(.Value, 2)
Case 6 ' f.eks., 123456 = 12:34:56
TimeStr = Left(.Value, 2) & ":" & _
Mid(.Value, 3, 2) & ":" & Right(.Value, 2)
Case Else
Err.Raise 0
End Select
.Value = TimeValue(TimeStr)
End If
End With
Application.EnableEvents = True
Exit Sub
EndMacro:
MsgBox "Du har ikke skrevet en gyldig tid"
Application.EnableEvents = True
End Sub

Du skal have tak for hjælpen alligevel!!.

Sprenger

Godkendelse af svar
Fra : sprenger


Dato : 11-04-04 22:01

Tak for svaret emesen.
                        

Kommentar
Fra : emesen


Dato : 11-04-04 22:04

Ok - det var da meget sjovt at lege med.

Du har følgende muligheder
Eftersom du ikke er logget ind i systemet, kan du ikke skrive et indlæg til dette spørgsmål.

Hvis du ikke allerede er registreret, kan du gratis blive medlem, ved at trykke på "Bliv medlem" ude i menuen.
Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408925
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste