UniversoExcelForo

Respuesta a consultas.
Fecha de creación: 09.Abril.2012

Fundadores: Wibly,Tyno,Servando,Sakkar,Rosendo2,RMaximo,Railar,Mcoronel,Ioyama,Igtelo,Hugotron,Drochar,Dedos,Alberto,Adolfo

No se pueden hacer consultas de Excel o VBA por mensaje privado.
Utiliza el botón buscar del foro y te ahorras tiempo para obtener "ayuda".

No estás conectado. Conéctate o registrate

Ver el tema anterior Ver el tema siguiente Ir abajo  Mensaje [Página 1 de 1.]

1RESUELTO Formato específico en fechas el 16/01/13, 03:23 pm

Aretradeser


En primer lugar, quiero saludar a todos los foreros; puesto que soy nuevo en el mismo. Espero no importunar demasiado y aprender lo máximo posible. Mi pregunta es la siguiente: estoy utilizando un código que me permite que, al introducir un número del 1 al 12 en una determinada celda, automáticamente, me devuleve "mes-año/mes-año". Ejemplo, si en esa celda ingreso el núm. 1, me devuelve "ene-12/ene-13"; si ingreso 2, devuelve "feb-12/feb-13", si ingreso 6, devuelve jun-12/jun-13" y, así, sucesivamente. Esto lo utilizo para indicar la fecha que quiero comparar de unos datos. Lo que que pretendo hacer es, si se puede, que si quiero comparar los datos, por ejemplo, del 1 al 14 de enero del 2012 con el mismo periodo del 2013, se me devuen¡lva el valor en el siguiente formato: "1-14 ene12 / 1-14 ene13". Quizá haya que tomar como apoyo alguna otra celda en la que conste ya estas fechas, no sé.
El código que estoy utilizando es el siguiente:
Private Sub Worksheet_Change(ByVal Target As Range)
Const Meses As String = "EneFebMarAbrMayJunJulAgoSetOctNovDic"
Dim myMonth As String
With Target
If Intersect(.Cells, [a2]) Is Nothing Then Exit Sub
If .Count > 2 Then Exit Sub
If .Value = Int(.Value) And .Value < 13 Then
Application.EnableEvents = False
myMonth = Mid(Meses, 3 * .Value - 2, 3)
.Value = myMonth & "-12/" & myMonth & "-13"
Application.EnableEvents = True
End If
End With
End Sub

Saludos.

2RESUELTO Re: Formato específico en fechas el 17/01/13, 04:27 am

ioyama


Hola Aretradeser

He modificado ligeramente tu macro, tal que

Código:
Private Sub Worksheet_Change(ByVal Target As Range)
    Const Meses As String = "EneFebMarAbrMayJunJulAgoSetOctNovDic"
    Dim myMonth As String
    With Target
        If Intersect(.Cells, [a2]) Is Nothing Then Exit Sub
        If .Count > 2 Then Exit Sub
        If Val(Left(.Value, 2)) = Int(Val(Left(.Value, 2))) And Val(Left(.Value, 2)) < 13 Then
            Application.EnableEvents = False
            myMonth = Mid(Meses, 3 * Val(Left(.Value, 2)) - 2, 3)
            .Value = Right(.Value, Len(.Value) - 2) & " " & myMonth & "-12 / " & Right(.Value, Len(.Value) - 2) & " " & myMonth & "-13"
            Application.EnableEvents = True
        End If
    End With
End Sub

Los datos los tienes que introducir tal que
1 16-21 y te devolverá 16-21 ene-12 / 16-21 ene-13
primero mes y después rango de días (este último da igual que introduzcas 1-6 que 1 a 6 que entre 1 y 6, o lo que te parezca.

Un saludo desde Vitoria

3RESUELTO Re: Formato específico en fechas el 17/01/13, 02:48 pm

Aretradeser


Perfecto, ioyama. Funciona a plena satisfacción.
Muchas gracias.
Saludos.

4RESUELTO Re: Formato específico en fechas el 17/01/13, 04:41 pm

Aretradeser


Una duda, si quisiera que me devolviera "1-15 Ene-12", en A2; y en A3, "1-15 Ene-13", qué modificación habría que realizar tu código.
Saludos

5RESUELTO Re: Formato específico en fechas el 18/01/13, 04:13 am

ioyama


Hola Aretradeser

Prueba con
Código:

Private Sub Worksheet_Change(ByVal Target As Range)
    Const Meses As String = "EneFebMarAbrMayJunJulAgoSetOctNovDic"
    Dim myMonth As String
    With Target
        If Intersect(.Cells, [a2]) Is Nothing Then Exit Sub
        If .Count > 2 Then Exit Sub
        If Val(Left(.Value, 2)) = Int(Val(Left(.Value, 2))) And Val(Left(.Value, 2)) < 13 Then
            Application.EnableEvents = False
            myMonth = Mid(Meses, 3 * Val(Left(.Value, 2)) - 2, 3)
            a = Right(.Value, Len(.Value) - 2) & " " & myMonth & "-12"
            b = Right(.Value, Len(.Value) - 2) & " " & myMonth & "-13"
            .Value = a
            .Offset(1, 0).Value = b
            Application.EnableEvents = True
        End If
    End With
End Sub

Un saludo desde Vitoria

Ver el tema anterior Ver el tema siguiente Volver arriba  Mensaje [Página 1 de 1.]

Permisos de este foro:
No puedes responder a temas en este foro.