Código de búsqueda de texto desde un UserForm cuando el contenido de la celda es una referencia a otra celda

05/06/2007 - 23:27 por Insumos | Informe spam
Hola Gente del Foro:

Espero que todos esten bien. Tengo una duda con el comportamiento del
siguiente código:

Dim Nombre as String
Dim columna As Integer

Nombre = ComboBox4
columna = Worksheets("Datos").Range("D6:W6").Find(Nombre).Column

El código lo que hace es identificar en que columna se encuentra lo que se
haya seleccionado en el ComboBox4, el cual tiene una lista de sucursales que
toma al inicializarse el UserForm desde una hoja llamada "Parámetros". Por
ejemplo:

Buenos Aires
Mar del Plata
Córdoba
...

Ahora, en la hoja "Datos" (que es dónde el código busca lo seleccionado en
el ComboBox4) los nombres se encuentran como títulos de columnas, por
ejemplo, de la siguiente manera:
Fila 6 Columna D Columna E Columna F ...
Fila 6 Buenos Aires Mar del Plata Córdoba ...

En la hoja "Datos", en realidad lo que está en la celda D6 es la fórmula que
hace referencia al nombre de la sucursal en la hoja "Parámetros", que es:
=Parámetros!C25. Y así en todos los títulos de la hoja "Datos" de la D a la
W.

Ahora el código que menciono al principio no funciona así como están las
cosas, ya que si selecciono en el ComboBox4, por ejemplo, "Buenos Aires", no
puede encontrarlo en el rango indicado, cuando claramente en D6 dice "Buenos
Aires". Ahora, lo curioso es que el código SI FUNCIONA si el contenido de la
celda D6 en lugar de ser =Parámetros!C25 es el texto "Buenos Aires".

Hay alguna manera de solucionar esto??? Ya que es muy incómodo tener que
reemplazar las celdas referenciadas a los Parámetros por textos lisos y
llanos sólo para que el código lo pueda identificar.
Desde ya muchas gracias y saludos!

Mariano

CONTADURIA
 

Leer las respuestas

#1 Ivan
06/06/2007 - 01:06 | Informe spam
On 5 jun, 23:27, "Insumos" wrote:
Hola Gente del Foro:

Espero que todos esten bien. Tengo una duda con el comportamiento del
siguiente código:

Dim Nombre as String
Dim columna As Integer

Nombre = ComboBox4
columna = Worksheets("Datos").Range("D6:W6").Find(Nombre).Column

El código lo que hace es identificar en que columna se encuentra lo que se
haya seleccionado en el ComboBox4, el cual tiene una lista de sucursales que
toma al inicializarse el UserForm desde una hoja llamada "Parámetros". Por
ejemplo:

Buenos Aires
Mar del Plata
Córdoba
...

Ahora, en la hoja "Datos" (que es dónde el código busca lo seleccionado en
el ComboBox4) los nombres se encuentran como títulos de columnas, por
ejemplo, de la siguiente manera:
Fila 6 Columna D Columna E Columna F ...
Fila 6 Buenos Aires Mar del Plata Córdoba ...

En la hoja "Datos", en realidad lo que está en la celda D6 es la fórmula que
hace referencia al nombre de la sucursal en la hoja "Parámetros", que es:
=Parámetros!C25. Y así en todos los títulos de la hoja "Datos" de la D a la
W.

Ahora el código que menciono al principio no funciona así como están las
cosas, ya que si selecciono en el ComboBox4, por ejemplo, "Buenos Aires", no
puede encontrarlo en el rango indicado, cuando claramente en D6 dice "Buenos
Aires". Ahora, lo curioso es que el código SI FUNCIONA si el contenido de la
celda D6 en lugar de ser =Parámetros!C25 es el texto "Buenos Aires".

Hay alguna manera de solucionar esto??? Ya que es muy incómodo tener que
reemplazar las celdas referenciadas a los Parámetros por textos lisos y
llanos sólo para que el código lo pueda identificar.
Desde ya muchas gracias y saludos!

Mariano

CONTADURIA




hola Mariano

no estoy seguro, pero prueba esta modificacion

esto->

columna = Worksheets("Datos").Range("D6:W6").Find(Nombre).Column



cambialo por esto->

columna = Worksheets("Datos").Range("D6:W6").Find(Nombre,,xlFormulas).Column




a ver si hay suerte

un saludo
Ivan


columna = Worksheets("Datos").Range("D6:W6").Find(Nombre).Column

Preguntas similares