|
Responder ![]() |
Autor | |
Iris ![]() Asiduo ![]() ![]() Unido: 07/Noviembre/2005 Estado: Sin conexión Puntos: 219 |
![]() Enviado: 21/Mayo/2009 a las 20:59 |
Hola,
a ver si me pueden decir que estoy haciendo mal en este código. Esta hoja tiene 3 columnas. En la 1º un código numérico, en la 2º unas fecha con el formato 02.03.2009 pero algunas celdas pueden tener el valor NULL, si tiene este valor tengo que coger la fecha de la siguiente columna. Todo el proceso me lo hace bien excepto las fechas que empiezan por 0 que me quita el 0. Range("B1").Activate Range(ActiveCell, ActiveCell.End(xlDown)).Select For Each Celda In Selection.Cells If Celda.Value = "NULL" Then Celda.Value = Celda.Offset(0, 1).Value Celda.Font.Bold = True Nulls = Nulls + 1 End If fecha = Celda.Value Celda.Value = Application.WorksheetFunction.Substitute(fecha, ".", "") Next Celda fecha = 0 Muchas gracias por todo. Saludos |
|
Salu2, desde Asturias Iris!!!
![]() |
|
![]() |
|
Emilio ![]() Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador ![]() Santander Unido: 08/Agosto/2004 Localización: España Estado: Sin conexión Puntos: 18819 |
![]() |
Hola!
Prueba con
If isnull(Celda.Value) Then
Celda=celda.offset(0,1)
Endif
La mayor parte de ese código no tiene ninguna relación con lo que explicas
|
|
![]() |
|
Iris ![]() Asiduo ![]() ![]() Unido: 07/Noviembre/2005 Estado: Sin conexión Puntos: 219 |
![]() |
Perdón por mi mala explicación.
la última sentencia antes del Next Celda es porque toda la columna número 2 también la trato para dejarla con el formato 02022009, tengo que quitarle los punto a las fechas de la columna 2. Aquí es donde me quita el primer 0 si lo tiene. lo mismo que si utilizase =SUSTITUIR(B1;".";"") Gracias. |
|
Salu2, desde Asturias Iris!!!
![]() |
|
![]() |
|
Emilio ![]() Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador ![]() Santander Unido: 08/Agosto/2004 Localización: España Estado: Sin conexión Puntos: 18819 |
![]() |
Desde luego, ahora no tiene nada que ver el problema con el anterior.
Ultiliza replace
Replace(Celda,".",vbnullsring)
|
|
![]() |
|
Iris ![]() Asiduo ![]() ![]() Unido: 07/Noviembre/2005 Estado: Sin conexión Puntos: 219 |
![]() |
Siento no haberme explicado bien.
El codigo que muestro me funciona bien escepto por una cosa, que el tratar la columna B para quitar el punto a todas las fechas, las que empiezan por 0 me quita el 0. Un saludo. |
|
Salu2, desde Asturias Iris!!!
![]() |
|
![]() |
|
AnSanVal ![]() Ver perfil usuario
Enviar mensaje privado
Ver los mensajes del usuario
Visite la página de los usuarios
Añadir a la lista de amigos
Administrador ![]() ![]() Unido: 16/Marzo/2005 Localización: España Estado: Sin conexión Puntos: 5534 |
![]() |
Las fechas para Excel son números (los días transcurridos desde 1Enero 1900). Por lo que igual que con un número "ordinario", es lo mismo 00045 que 45, y Excel (por defecto), considera a ambos como 45.
Puedes ver el 45 como 00045 o 045 o... etc. con el formato de número adecuado (tendríamos que saber cual precisas), pero internamente seguiría siendo 45.
Si precisas que realmente tenga un cero (o varios) a la izquierda debes manejarle como texto. Tanto desde código como directamente en la hoja.
|
|
Aprendemos intentando resolver dudas ajenas (un mundo solidario es mejor mundo).
Mi sitio_web con ejemplos Excel. |
|
![]() |
|
Iris ![]() Asiduo ![]() ![]() Unido: 07/Noviembre/2005 Estado: Sin conexión Puntos: 219 |
![]() |
De acuerdo, muchas gracias a todos.
me funciona con este código y poniendo el formato de la columna a texto. Siento mi mala explicación. NOTA: lo del cambio del bucle es por probar con otro. Dim Celda As Range Dim fecha As String Dim Nulls As Integer Range("B1").Activate Do While Not ActiveCell.Text = "" If ActiveCell.Value = "NULL" Then ActiveCell = ActiveCell.Offset(0, 1).Value ActiveCell.Font.Bold = True Nulls = Nulls + 1 End If fecha = ActiveCell ActiveCell = Replace(fecha, ".", "") ActiveCell.FormulaR1C1 = ActiveCell.Text ActiveCell.Offset(1, 0).Activate Loop fecha = 0 MsgBox "La hoja de fechas tiene; , vbInformation " & Nulls Se puede cerrar el hilo, muchas gracias!! |
|
Salu2, desde Asturias Iris!!!
![]() |
|
![]() |
Responder ![]() |
|
Tweet
|
Ir al foro | Permisos de foro ![]() Usted No puede publicar nuevos temas en este foro Usted No puede responder a temas en este foro Usted No puede borrar sus mensajes en este foro Usted No puede editar sus mensajes en este foro Usted No puede crear encuestas en este foro Usted No puede votar en encuestas en este foro |