Formato Hora

13/05/2006 - 09:31 por smartito | Informe spam
Buenas grupo,

Por necesidades de una base de datos tenemos los siguientes horarios...

- Modelo hora BBDD

[A1]
08_15
08_16
0930_1530
1030_14_1530_17

que se deberian corresponder con...

-Modelo hora NORMAL

[A1] [B1] [C1] [D1]
08:00 - 15:00
08:00 - 16:00
09:30 - 15:30
10:30 - 14:00 15:30 - 17:00

no logro hacer alguna funcion, formula... para cambiar del "Modelo hora
BBDD" al "Modelo hora NORMAL"

Si me ayudais un poco...

gracias por adelantado.
Juan Antonio Castillo

Preguntas similare

Leer las respuestas

#1 martinez
13/05/2006 - 15:25 | Informe spam
Si tienes en columna esos datos puedes separarlos utilizando el menu datos,
texto en columnas, con los parametros delimitado por _. Esto te dejará los
numeros en celdas individuales, despues con formato puedes darle el formato
que quieras.


"smartito" escribió en el mensaje
news:
Buenas grupo,

Por necesidades de una base de datos tenemos los siguientes horarios...

- Modelo hora BBDD

[A1]
08_15
08_16
0930_1530
1030_14_1530_17

que se deberian corresponder con...

-Modelo hora NORMAL

[A1] [B1] [C1] [D1]
08:00 - 15:00
08:00 - 16:00
09:30 - 15:30
10:30 - 14:00 15:30 - 17:00

no logro hacer alguna funcion, formula... para cambiar del "Modelo hora
BBDD" al "Modelo hora NORMAL"

Si me ayudais un poco...

gracias por adelantado.
Juan Antonio Castillo

Respuesta Responder a este mensaje
#2 manuel rielo
15/05/2006 - 03:20 | Informe spam
Esto funcionará... mmm... creo!

'
Option Explicit

Dim Hora As Integer, Minuto As Integer, Columna As Integer

Sub Transformar()
', X As Integer
Dim Caracter As String, Stx As String
Dim N As Integer, Pos As Integer, Ini As Integer
Dim Texto As String
N = 1
Caracter = "_"
While Cells(N, 1) <> "" ' Hasta que la celda de la columna 1 haya
texto
Texto = Cells(N, 1)
' Indicamos la columna donde queremos volcar la transformación
Columna = 2
Ini = 0
' buscamos primer '_' si no hay controlamos hora despues del wend
Pos = InStr(1, Texto, Caracter, vbTextCompare)
' Iniciamos un bucle si hemos encontrado un '_'
While Pos > 0 ' hemos encontrado hora, analizamos...
Stx = Mid(Texto, Ini + 1, Pos - Ini - 1)
Ini = Pos
' colocamos en la ventana la hora encontrada
PonerHora Stx, N
' continuamos buscando en resto del string
Pos = InStr(Pos + 1, Texto, Caracter, vbTextCompare)
Wend
' buscamos mas texto despues del último '_' o si no hubiera
Stx = Right(Texto, Len(Texto) - Ini)
' colocamos en la ventana la hora encontrada
PonerHora Stx, N
' preparamos la siguiente fila
N = N + 1
Wend
End Sub

Sub PonerHora(Stx As String, N As Integer)
If Len(Stx) < 1 Then Exit Sub
If Len(Stx) > 2 Then ' contiene hora y minuto
Minuto = Val(Right(Stx, 2))
Hora = Val(Left(Stx, Len(Stx) - 2))
Else ' solo contiene la hora
Minuto = 0
Hora = Val(Stx)
End If
' colocar en columnas a la derecha
Cells(N, Columna) = Hora
Columna = Columna + 1
Cells(N, Columna) = Minuto
Columna = Columna + 1
End Sub

'

Saludos


"smartito" escribió en el mensaje
news:
Buenas grupo,

Por necesidades de una base de datos tenemos los siguientes horarios...

- Modelo hora BBDD

[A1]
08_15
08_16
0930_1530
1030_14_1530_17

que se deberian corresponder con...

-Modelo hora NORMAL

[A1] [B1] [C1] [D1]
08:00 - 15:00
08:00 - 16:00
09:30 - 15:30
10:30 - 14:00 15:30 - 17:00

no logro hacer alguna funcion, formula... para cambiar del "Modelo hora
BBDD" al "Modelo hora NORMAL"

Si me ayudais un poco...

gracias por adelantado.
Juan Antonio Castillo

Respuesta Responder a este mensaje
#3 manuel rielo
15/05/2006 - 03:29 | Informe spam
Igual pero con hora y minuto en la misma celda...

'
Option Explicit

Dim Hora As Integer, Minuto As Integer, Columna As Integer

Sub Transformar()
', X As Integer
Dim Caracter As String, Stx As String
Dim N As Integer, Pos As Integer, Ini As Integer
Dim Texto As String
N = 1
Caracter = "_"
While Cells(N, 1) <> "" ' Hasta que la celda de la columna 1 haya
texto
Texto = Cells(N, 1)
' Indicamos la columna donde queremos volcar la transformación
Columna = 2
Ini = 0
' buscamos primer '_' si no hay controlamos hora despues del wend
Pos = InStr(1, Texto, Caracter, vbTextCompare)
' Iniciamos un bucle si hemos encontrado un '_'
While Pos > 0 ' hemos encontrado hora, analizamos...
Stx = Mid(Texto, Ini + 1, Pos - Ini - 1)
Ini = Pos
' colocamos en la ventana la hora encontrada
PonerHora Stx, N
' continuamos buscando en resto del string
Pos = InStr(Pos + 1, Texto, Caracter, vbTextCompare)
Wend
' buscamos mas texto despues del último '_' o si no hubiera
Stx = Right(Texto, Len(Texto) - Ini)
' colocamos en la ventana la hora encontrada
PonerHora Stx, N
' preparamos la siguiente fila
N = N + 1
Wend
End Sub

Sub PonerHora(Stx As String, N As Integer)
If Len(Stx) < 1 Then Exit Sub
If Len(Stx) > 2 Then ' contiene hora y minuto
Minuto = Val(Right(Stx, 2))
Hora = Val(Left(Stx, Len(Stx) - 2))
Else ' solo contiene la hora
Minuto = 0
Hora = Val(Stx)
End If
' colocar en columnas a la derecha
Cells(N, Columna) = Hora & ":" & Minuto
Columna = Columna + 1
End Sub

'
"smartito" escribió en el mensaje
news:
Buenas grupo,

Por necesidades de una base de datos tenemos los siguientes horarios...

- Modelo hora BBDD

[A1]
08_15
08_16
0930_1530
1030_14_1530_17

que se deberian corresponder con...

-Modelo hora NORMAL

[A1] [B1] [C1] [D1]
08:00 - 15:00
08:00 - 16:00
09:30 - 15:30
10:30 - 14:00 15:30 - 17:00

no logro hacer alguna funcion, formula... para cambiar del "Modelo hora
BBDD" al "Modelo hora NORMAL"

Si me ayudais un poco...

gracias por adelantado.
Juan Antonio Castillo

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida