Unir celdas a través de una macro.

Hola dpizzio, veo que hace poco diste respuesta a un problema similar sobre unir celdas, solo que yo necesito que esto se realize por una macro sin que se pierda el formato de las celdas, las celdas que voy a unir serian como estas
Celda B2 = Sergio / Tipo texto
Celda C2 = 03/07/2006 / tipo fecha dd/mm/aaaa.
Celda D2 = 15:40 / Tipo hora hh:mm
La macro que tengo hasta ahora es:
------------
valor1 = "": valor2 = "": valor3 = ""
Range("B2").Select
valor1 = ActiveCell.Value
ActiveCell.Offset(0, 1).Range("A1").Select
valor2 = ActiveCell.Value
ActiveCell.Offset(0, 1).Range("A1").Select
valor3 = ActiveCell.Value
ActiveCell.Offset(0, -2).Range("A1").Select
ActiveCell.Value = valor1 & " " & valor2 & " " & valor3
-------------------
El problema es que altera el formato y da el resultado: Sergio 03/07/06 0.652777777777778
¿Qué debo agregar para que respete el formato? Y el resultado sea: Sergio 03/07/2006 15:40
Agradezco mucho tu atención.
Sergio Gonzalez.

1 Respuesta

Respuesta
1
Sergio, por macro el ingreso de esta fórmula de excel:
=B3&" "&TEXTO(C3;"dd/mm/yyyy")&" "&TEXTO(D3;"hh:mm")
Se graba asi:
ActiveCell.FormulaR1C1 = "=R[-2]C&"" ""&TEXT(R[-2]C[1],""dd/mm/yyyy"")&"" ""&TEXT(R[-2]C[2],""hh:mm"")"
Es el mismo razonamiento, igualmente me suena más que lo pases a una function si es que lo utilizas a menudo...
Una function de estas características en un modulo vba debería verse más o menos así, a mi me ha funcionado:
Public Function MCon(bNombre, bFecha, bHora) As String
a = " "
valor1 = "": valor2 = "": valor3 = ""
valor1 = bNombre
valor2 = Format(bFecha, "dd/mm/yyyy")
valor3 = Format(bHora, "hh:mm")
R = valor1 + a + valor2 + a + valor3
MCon = R
End Function
Si te ha servido lo que te dije y necesitas que veamos como seguir entonces comentame, si fue suficiente por favor no olvides finalizar.
Si quieres una mano para poner esto a un complemento para que cargue en el inicio de excel automáticamente dime que te ayudo.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas