Problema con Texttocolumns o texto en columnas

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$F$10" Then
        ActiveSheet.Unprotect
        Selection.TextToColumns Destination:=Range("F10")
        ActiveSheet.Protect
    End If
End Sub

Tengo esta macro para intentar corregir mi problema. El problema es que una de las celdas de una hoja, tras escribir un número en ella se convierte en texto automáticamente. Da igual como lo ponga (escribiéndolo, copiándolo, arrastrando la celda colindante...), siempre arroja ese error y solo esa celda, la F10.

Cambio el formato de la cerda, una vez escrita y con el error y no se modifica el formato. La única forma de hacerlo es pinchando en el botón "Texto en columnas", sin modificar ningún parámetro del cuadro de diálogo que sale.

Intento reproducirlo en una macro para que haga lo mismo que yo al pinchar en el botón sin tener que darle al botón. La macro se activa una vez introduzco un valor en esa celda, desbloqueando la hoja (porque tengo bloqueadas una serie de celdas) y una vez hecho, volviendo a bloquearla.

No se que anda mal

1 respuesta

Respuesta
2

Evidentemente tienes algún problema allí, o de formatos o una macro que te lo esté cambiando en esa celda.

Fíjate si hay alguna macro en el libro 'Personal' y sino envíame tu libro a alguno de los correos que aparecen en mi sitio.

Es raro porque la una macro que hace algo en esa celda es una de limpieza, que deja en blanco un rango de celdas, pero de todas ellas, la F10 es la única que me da este problema.

¡Gracias! 

Range("E9:N14").Select
Selection.ClearContents

Debes revisar las macros que pudiera contener el libro Personal:

Si desde el Editor no logras ver este proyecto (PERSONAL) volvé a la hoja y grabá una macro cualquiera indicandole que la guarde en el libro Personal. Esto luego te permitirá acceder a ese proyecto y así revisarlo que no contenga alguna macro que te esté formateado esa celda.

NO OLVIDES quitar la macro que acabas de crear.

Si en el libro Personal tampoco tenés macros que afectan a la celda en cuestión tendrás que enviarme el libro (cibersof. Arg de gmail) porque no hay razón para que esto suceda.

Sdos!

He enviado la hoja por correo, no hay ninguna macro que haga referencia a esa celda. Solo hay la que ya he puesto que limpia un rango de celdas y hay otra que he intentado poner a modo de solución:

  • Una aplica un formato numérico después de que la celda cambie, lo que hace que excel entre en bucle infinito. (está desactivada)
  • Otra que intento imitar el comportamiento del botón "Texto en columnas" de excel, que me soluciona el problema una vez que ya está hecho todo, pero la macro no funciona igual que el botón de excel para este cometido y no me hace ningún cambio.

¡Gracias! 

He podido observar que no es solo esa celda. He rellenado la tabla entera y ese error afecta a toda la columna. No se por qué excel hace eso en esa columna solo

Lo hace porque pasas el contenido de esas celdas a mayúsculas... por eso Excel los convierte asumiéndolos como texto:

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Column = 1 Or Target.Column = 6 Then ' SE EVALUAN COL A y F
        On Error Resume Next
        If Target.Row = 8 Or Target.Row = 10 Or Target.Row = 12 Or Target.Row = 14 Then Target = UCase(Target)
        End If
    End If

Quizás te hayas equivocado de col o intentabas realizar otra conversión.....pero este código no va para la col 6 o F.

Y también retirá la macro, del evento Change que se encuentra en el objeto ThisWorkbook. Solo debe ir en el objeto Hoja1.

Sdos!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas