Corregir este codigo

23/12/2006 - 08:34 por Alejandro Garcia | Informe spam
No se por que cuando ejecuto este codigo, se demora y me muestra como
una especie de parpadeo en la hoja en la cual lo estoy aplicando, hace
exactamente lo que necesito pero es demorado, ¿habra manera de
corregirlo para que esto no suceda?

Sub CambioFecha()
Dim celda As Range
For Each celda In Selection
With celda
.TextToColumns Destination:=celda, DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False,
Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False,
FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True
End With
Next celda
End Sub

El codigo lo que me realiza es pasar unas celdas con fecha tipo texto a
tipo fecha, pues es un archivo que se crea de otra aplicacion externa y
las columnas de las fehcas las muestra como texto. Agradezco sus
comentarios como siempre.

¡Feliz Navidad!

Preguntas similare

Leer las respuestas

#1 Alejandro Garcia
23/12/2006 - 09:25 | Informe spam
Ivan, gracias pero no me funciona:

With Worksheets("Fechas")


No tengo una hoja "Fechas", entonces cambio esta por ActiveSheet pero
igual no me hace nada.

Pero estare trabajando con este codigo para ver que logro.

Gracias.
Respuesta Responder a este mensaje
#2 Alejandro Garcia
23/12/2006 - 09:33 | Informe spam
Listo, estuve analizando y como yo lo que deseo es cambiar de texto a
fecha una seleccion N de celdas cambie algunas partes del codigo y me
funciona:

Borro todo lo que me remitia a la variable Celda, y coloque simplemente
Selection.

Sub CambioFecha()
' Dim celda As Range => Esta parte la borron
' For Each celda In Selection =>Esta parte la borro
With Selection => No coloco Celda sino Selection
.TextToColumns Destination:=Selection [Aqui tambien borro celda
y coloco Selection], DataType:=xlDelimited, _
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False,
Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False,
FieldInfo _
:=Array(1, 4), TrailingMinusNumbers:=True
End With
'Next celda => Como elimien el ciclo para borro esta instruccion
End Sub


GRacias a todos igualmente.
Respuesta Responder a este mensaje
#3 Ivan
23/12/2006 - 15:04 | Informe spam
hola Alejandro, mira a ver si te vale esto

cambia -> .Range("a1:a" & .[a65536].End(xlUp).Row) por la columna que
sea

Sub cambiaraFecha()
Dim celda As Range
With Worksheets("Fechas")
For Each celda In .Range("a1:a" & .[a65536].End(xlUp).Row)
celda = Format(celda, "dd/mmmm/yyyy")
Next
End With
End Sub

espero te ayude

un saludo y hasta pronto
Ivan
Respuesta Responder a este mensaje
#4 Ivan
23/12/2006 - 18:08 | Informe spam
hola Alejandro

daba por hecho que cambiarias el nombre de la hoja y el rango de
celdas. En cualquier caso esto haria lo mismo

Sub cambiaraFecha2()
Dim celda As Range
For Each celda In Selection
celda = Format(celda, "dd/mmmm/yyyy")
Next
End Sub

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