Kun exceliin kirjoittaa aika-muotoilulla soluun esim 12:30, olisiko tämä mitenkään tehtävissä helpommin, eli ilman kaksoispistettä? Kun syötettäviä aikoja on paljon, tämä on yllättävän aikaa vievää. Eli jos soluun kirjoittaisi vaikkapa 1230, excel osaisi itse muuttaa sen muotoon 12:30. Jos tämä ei mitenkään päin ole mahdollista, kertokaa myös se. Kiitos!
Aika-muodon kirjoittaminen
Miia
9740
0Äänestä
Muut lukivat myös
Odottaa vastausta
Näihin keskusteluihin ei ole vielä vastattu. Ole ensimmäinen.
Vastaukset 9
Vanhimmat
Taulukon moduuliin ja oletuksena ,että syötät tietoja A-sarakkeeseen
Intersect(Target, Columns(1))
muuta itsellesi sopivaksi
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim r As Range, h As Integer
Set r = Intersect(Target, Columns(1))
If r Is Nothing Then Exit Sub
Set r = r.Cells(1)
If IsNumeric(r) Then
With r
If .Value >= 100 Then h = Left(.Value, Len(.Value) - 2) Else h = 0
Application.EnableEvents = False
.Value = h / 24 Right(.Value, 2) / 1440
.NumberFormat = "hh:mm"
Application.EnableEvents = True
End With
End If
End Sub
Taulukon moduuliin ja oletuksena ,että syötät tietoja A-sarakkeeseen
Intersect(Target, Columns(1))
muuta itsellesi sopivaksi
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim r As Range, h As Integer
Set r = Intersect(Target, Columns(1))
If r Is Nothing Then Exit Sub
Set r = r.Cells(1)
If IsNumeric(r) Then
With r
If .Value >= 100 Then h = Left(.Value, Len(.Value) - 2) Else h = 0
Application.EnableEvents = False
.Value = h / 24 Right(.Value, 2) / 1440
.NumberFormat = "[hh]:mm"
Application.EnableEvents = True
End With
End If
End Sub
Saisinko tuon vastauksen jotenkin rautalangasta väännettynä, kun en osaa vba:ta kovinkaan hyvin. Muutettavat ajat tulevat soluihin E9-22, F9-22, G9-22 ja H9-22. Yritin laittaa tuon ylimmän lauseen moduliin mutta herjaili kovasti?
...ja jos vielä jaksat tyhmää neuvoa niin miten koodin saa toimintaan sen jälkeen kun on sen kirjoittanut? yritin laittaa sen play-kohdasta, mutta silloin vain aukeaa ikkuna "Macros" ja kone kysyy makron nimeä. Eli?
Klikkaa hiiren oikealla taulukonvalinnassa haluamasi taulukon päällä ja valitse avautuvasta ikkunasta "Näytä koodi" ja Vba editori aukeaa ja liität sinne allaolevan koodin
Nyt kun kirjoittelet lukuja alueelle E9:H22 niin koodi suorittaa automaattisesti muotoilun
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim r As Range, h As Integer
Set r = Intersect(Target, Range("E9:H22"))
If r Is Nothing Then Exit Sub
Set r = r.Cells(1)
If IsNumeric(r) Then
With r
If .Value >= 100 Then h = Left(.Value, Len(.Value) - 2) Else h = 0
Application.EnableEvents = False
.Value = h / 24 Right(.Value, 2) / 1440
.NumberFormat = "[hh]:mm"
Application.EnableEvents = True
End With
End If
End Sub
Kiitos!
Saisinko kysyä, mitä tarkoittaa tuo "hiiren oikealla taulukonvalinnassa haluamasi taulukon päällä"? Lähinnä tuo "taulukonvalinnassa"?
Kokeilin tuota Resurssienhallinnassa Excel-taulukon kohdalla, mutta vaihtoehdoksi ei tullut "Näytä koodi", vaan ne tavalliset Avaa, Uusi, Tulosta, Lähetä, Kopioi, Leikkaa jne.
Kun sinulla on Excel auki vasemmassa alareunassa on Taul1,Taul2 ja Taul3, napsautat sieltä haluamasi taulukkovalitsimen päällä hiiren oikealla. Ilmestyy valikko josta löytyy "Näytä koodi"
Kiitos Paavali. Minulle valkeni nyt aivan uusi "maailma" uusine mahdollisuuksineen :)
Mitähän kaikkea tuolla VBA:lla saakaan aikaan...