Autocompletar en excel de una hoja a todas

Hola amigos ojala alguien me pueda orientar como hacer para que en las diferentes hojas de un libro funcione el auto completado de Excel 2003, es decir que si escribo los primeros caracteres de una palabra que quedo escrita en la hoja 1, en las hojas 2,3, etc me autocomplete el texto automáticamente.

Gracias

Saludos

Alexx

1 respuesta

Respuesta
1

No podemos hacer un auto completado visual como el que tiene Excel ya que el el objeto Sheets no tenemos un evento que verifique la pulsación de una tecla, unicamente tiene el evento Change que solo se comprueba cuando se valida la celda. Métodos de autocompletar visuales e interactivos solo pueden hacerse en otro tipo de objetos, un Combobox por ejemplo.

Primero, en las hojas 2, 3, etc. tendrás que añadir esta subrutina en cada una.

Private Sub Worksheet_Change(ByVal target As Range)
Call completar(ActiveSheet, target)
End Sub

Y crear un módulo con esta otra.

Public Sub completar(ByVal Hoja As Worksheet, ByVal target As Range)
Dim Fila, Columna, Longi As Integer
Dim Valor As String
Dim Celda As Variant
Fila = target.Row
Columna = target.Column
Valor = UCase(Hoja.Cells(Fila, Columna))
If (Valor <> "") Then
   Longi = Len(Valor)
   ' For Each Celda In Sheets(1).Range("A1", "Z100") 'Metodo alternativo
   For Each Celda In Sheets(1).Range("A1", Sheets(1).Range("A1").End(xlDown).End(xlToRight))
     If Valor = Left(UCase(Celda.Value), Longi) Then
       Hoja.Cells(Fila, Columna) = Celda.Value
       Exit For
     End If
   Next
End If
End Sub

El rango de búsqueda de palabras en la hoja 1 es probable que tengas que modificarlo si no quieres que empiece en la celda A1. Si hay celdas vacías puede que tampoco funcione bien porque se detecta fin de tabla cuando encuentra celdas vacías.Sería conveniente que todas las palabras estuvieran seguidas a ser posible en la primera columnna primera, eso sería lo mejor.

Te he puesto una línea alternativa con un método en el que tu pondrías el rango de búsqueda. Puedes utilizarla, pero entonces pon la comilla de comentario en la otra, una sola de las líneas con For Each... puede estar activa a la vez.

Es conveniente si usas eso que el rango sea lo más similar a la región que tengas con palabras. Si usas un rango muy grande gastarás recursos del ordenador. Si pusieras un rango exagerado "A1", "JZ65532" pueden transcurrir hasta segundos cuando introduzcas una palabra que no este en la tabla.

Y esto es todo, espero que te sirva, ya me dirás. Y cuando ya no tengas dudas que plantear no tengas dudas que plantear no olvides puntúar.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas