I have an Excel file imported from a specific information system. I have been working with its automation through VBA code. However i encountered a problem while dealing with hh:mm cells. I can’t sum them up, I tried formatting them to hh:mm, I also tried to format my output cell as [HH]:MM, none of it seems to work.
I guess the problem is with how the cells are formatted, they are in Times New Roman and seem a bit off.
I need a vba code to select a certain range and copy the ancien value and paste them again, but with the normal default Excel formatting.
You will have to custom format the cell where you are summing to
This may not work if the time is not correct in the source cells or are formatted as Text. You can manually format the cells as
General and then press F2 and then Enter key to check if it works.
Before you automate this, you need to understand what we are doing.
- Changing the format
- Changing the
Formulaof the cell and not the
Value. In this case, however both are the same.
how can I automate this process, I cant do this manually to thousands of cells.. – Yassine Lachgar 2 mins ago
Option Explicit Sub Sample() Dim ws As Worksheet Dim lastRow As Long, lastCol As Long Dim rng As Range, aCell As Range '~~> Set this to the relevant worksheet Set ws = Sheet1 With ws If Application.WorksheetFunction.CountA(.Cells) <> 0 Then '~~> Find Last row and last column lastRow = .Cells.Find(What:="*", _ After:=.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByRows, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Row lastCol = .Cells.Find(What:="*", _ After:=.Range("A1"), _ Lookat:=xlPart, _ LookIn:=xlFormulas, _ SearchOrder:=xlByColumns, _ SearchDirection:=xlPrevious, _ MatchCase:=False).Column '~~> Identify your range Set rng = .Range(.Cells(1, 1), .Cells(lastRow, lastCol)) '~~> Set the format. Be careful with this '~~> This will overwrite existing formats rng.NumberFormat = "General" '~~> Perform F2 + Enter via code For Each aCell In rng aCell.Formula = aCell.Value Next aCell End If End With End Sub