Problema, con macro VBA en excel 2010

Tengo una macro desarrollada y usada por años en excel 2003. Me combiaron de WinXP a Windows7 y de office2003 a 2010.
Al correr la macro que procesa datos de un archivo bastante grande (~6MBytes) al ejecutar rutina bastante sencilla (formateo de celdas con fechas que puede venir como texto) se despliega, en la pantalla el mensaje: NobreArchivo [Not responding] por un tiempo interminable. Al querer interrumpir la ejecución del códico (teclas Shift+Pausa o fn + inter) no lo logro. La rutina es muy sencilla:
    Kolumna = 23
    Dim StrgFecha As String
    Windows(xxx).Activate
    Sheets("BookingRegion").Select
    Range("A3").Select
    Do Until ActiveCell = ""        
        StrgFecha = ActiveCell.Offset(0, Kolumna)
        On Error Resume Next
        Fecha = CDate(StrgFecha)
        If Err.Number <> 0 Then
           ' instrucciones de error    
        End If
        ActiveCell.Offset(0, Kolumna).NumberFormat = "d-mmm-yy"
        ActiveCell.Offset(0, Kolumna) = Fecha
        ActiveCell.Offset(1, 0).Select
    Loop 
Alguien puede orientarme, POR FAVOR, de que camino tomar para solucionar el problema. Es vital y urgente para mi trabajo.

1 respuesta

Respuesta
1
A lo mejor no es , pero antes de Loop no has de poner Kolumna=Kolumna+1?
Y NobreArchivo que significa o te has equivocado al escribir
Hola,
1) Si me equivoqué al escribir: puse NobreArchivo en lugar de NombreArchivo (es el woorkbook excel Name).
2)Aun no se porque, luego de algunos loops de la macro VBA, Exel2010 despliega el mensaje NombreArchivo [Not Responding], "congela la pantalla de la PC" (no da bola a la instrucción Application.screenUpdating= False / true) e impide cualquier interacción con teclado y/o mouse. Si intentas interrumpir la ejecución del código con las teclas  fn + inter no entra en debug, y la pantalla pierde brillo (lo probé en varias PCs y siempre ocurre lo mismo)
3)Descrubrí, en el caso de la rutina que envié, que la instrucción
                            ActiveCell.Offset(0, Kolumna).NumberFormat = "d-mmm-yy"
Consume muuuuuuuuuucho tiempo (en office2010) y repetida en cada loop, conlleva un bloqueo (o por lo menos así lo asume uno luego de largos minutos de espera)
La reemplacé por una instrucción, previa al loop, que formatea de una vez toda la columna.
No evita el "estado" [Not Responding] pero la rutina dura mucho menos tiempo y la macro se completa en un intervalo "digerible".
Si alguien tiene idea de como enfrentarse a este, aparente, escollo en excel2010 que no ocurría con la misma rutina en excel2003, agradeceré me oriente.
Abrazo
Juan Carlos
Es que el excel, cuando son muchas instrucciones lo que hace es que se bloquea. A mí a veces también me pasa y pienso que se ha colgado y resulta que todavía está calculando.
Si vas a tener que poner cada día ese formato, te recomiendo que hagas un copia/pega del resultado del formato, ponlo como texto, porque si no vas a perder tiempo cada día.
Si tienes alguna macro que utiliza las fechas y, si es posible, cambia el programa para que la macro transforme el texto con forma de fecha a una variable fecha, porque al fin y al cabo las macros cogen las celdas como si fuera texto.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas