Page 1 of 1

Reemplazar celdas en hoja Excel desde otra hoja

PostPosted: Wed Jun 15, 2016 6:01 pm
by FranciscoA
Amigos del foro.

Es la primera vez que intento usar Excel directamente, desde codigo FiveWin, y por eso recurro a ustedes en busca de un ejemplo o guía.

Lo qu necesito hacer es lo siguiente:

Tengo dos hojas excel ("Fuente","Destino") en diferentes libros. Tambien pueden estar en el mismo libro.

1- Recorrer totalmente la hoja "Fuente" y tomar dos valores de las celdas, por ej: de las columnas "E" y "H", a medida que se recorre.
2- El valor tomado de la celda x, Col "E" de la tabla "Fuente", buscarlo en la Col X de la tabla "Destino", y si lo encuentra
reemplazar el valor en la celda xx de la Col Z de la tabla "Destino".

Agradezco de antemano su apoyo.

Saludos.

Re: Reemplazar celdas en hoja Excel desde otra hoja

PostPosted: Thu Jun 16, 2016 2:17 pm
by FranciscoA
Nobody?

Re: Reemplazar celdas en hoja Excel desde otra hoja

PostPosted: Thu Jun 16, 2016 2:22 pm
by Armando
Francisco:

Nunca he hecho algo parecido a lo que buscas, sin embargo te
puedo sugerir que hagas lo mismo en Excel activando la grabación
de macros y luego veas el código que se genera, aunque en vbasic,
te da la pauta de lo que hay que hacer.

Saludos

Re: Reemplazar celdas en hoja Excel desde otra hoja

PostPosted: Thu Jun 16, 2016 5:15 pm
by FranciscoA
Armando, gracias por responder.

Investigaré lo que decís.

Ya he avanzado un poco estudiando los códigos parciales que he encontrado en el foro.

Muchas gracias.

Re: Reemplazar celdas en hoja Excel desde otra hoja

PostPosted: Thu Jun 16, 2016 6:12 pm
by Armando
Francisco:

Una vez que empieces pones las dudas aquí y seguramente alguien
podrá dar soluciones. Efectivamente en el foro hay mucho código
aunque no es precisamente lo que buscas, es un buen inicio.

Saludos

Re: Reemplazar celdas en hoja Excel desde otra hoja

PostPosted: Fri Jun 17, 2016 12:07 am
by Bayron
No he tocado ese tema aun desde FiveWin, pero supuestamente hojas externas pueden accederse desde la hoja actual, de esta manera:
Code: Select all  Expand view

=SUM(D:\Reportes\[Ventas.xlsx]Enero!B2:B5)
 

Re: Reemplazar celdas en hoja Excel desde otra hoja

PostPosted: Fri Jun 17, 2016 4:18 pm
by FranciscoA
Armando, Byron.

Ya he logrado hacerlo, pero me encuentro con el problema de la velocidad, ya que se recorre la tabla destino hasta encontrar coincidencia.

Estoy buscando la manera de usar las funciones BURCARV, INDICE u otra de EXCEL, para agilizar esto. Si alguien ya lo ha hecho, agreceré información.

El ejemplo de Byron me ha dado ideas que voy a probarlas.

Gracias, a ambos, por su apoyo.

Saludos.

Re: Reemplazar celdas en hoja Excel desde otra hoja

PostPosted: Fri Jun 17, 2016 7:49 pm
by cnavarro
Francisco, no tengo referencias sobre la velocidad, pero esto me devuelve la celda en la que se encuentra el valor buscado

https://msdn.microsoft.com/es-es/librar ... 01006.aspx

Image

El formato que tiene la tabla de 237 lineas es:

A B C D E
CLASS TSYMTABLE
CLASS TSYMBOL
CLASS TTABLE
CLASS TOUTLOOK2003GROUP
CLASS TITEMLISTBAR
CLASS TTRAYICON
CLASS TBARTABS
CLASS TOUTLOOK2010GROUP
CLASS TBLOCK
CLASS TTVITEM
CLASS TBRUSHEX

.../...

Re: Reemplazar celdas en hoja Excel desde otra hoja

PostPosted: Fri Jun 17, 2016 11:07 pm
by FranciscoA
Cristóbal.
Gracias por la información y el código. Voy a probar con :Find(cTexto):xxx
Saludos.

Re: Reemplazar celdas en hoja Excel desde otra hoja

PostPosted: Sun Jun 19, 2016 2:23 am
by FranciscoA
Cristobal, Armando, Byron.

Lo he solucionado asi:
Code: Select all  Expand view
        nR2 := oSheet2:Columns( 1 ):Find( cValueBuscado )
         if nR2 != NIL
            oSheet2:Cells(nR2:Row(),12):Value := cValueReemplazado
         endif
 

Gracias por su apoyo.

Saludos