ARRGGGHHHH!!!!!!

26/10/2005 - 05:36 por sammuel.garcia | Informe spam
hola a todos!

estoy intentando:

12955 filas 62218 filas
archivo1 archivo2
codigo1 descrip cantidad... codigook descripcion existencia
...
xq31000 cerveza 1 xq31000 cerveza 1
pow5598 tarros 1 pow5598
.
.
.
la idea a grandes detalles es:
1. tomar codigo1 de archivo1 y buscarlo en archivo2
2. si lo encuentro, pegar de archivo1 los datos de descrip y cantidad
en archivo2 descripcion, existencia
3. si no lo encuentro, poner leyenda en archivo2 NO ENCONTRADO en
columnas descripcion y existencia
4. continuar asi hasta finalizar el contenido de archivo1

mi intención:
crear una macro, colocando un boton de comando y colocarle el codigo
siguiente:


Private Sub CommandButton1_Click()
Set mybook = Workbooks.Open(Filename:="archivo2.xls")
'archivo1 ya lo tengo abierto
For Each r In Worksheets("archivo1").Range("A8:a12955").Cells
=BUSCARH(A8:A12955,'[archivo2.xls]62617'!$A$2:$A$62618,1)
Next r
mybook.Close
End Sub

y me dice que no existe función buscarh...
despues de navegar por cientos de sitios buscando el motivo, me
encuentro conque con no es posible usar las funciones de excel en
vb!!!!! QUE???!!! mis neuronas casi se suicidan al enterarse de
esto!!!! arrggghhhh!!!! joder! que debo hacer entonces, reprogramar la
función????

por favor, tios, sé que hay geniecillos de excel, alguno, por favor,
por favor, digame que haceerrr¡¡
puedo salir de este enredo exportando dichas información a una tabla
de fox y remediar el asunto con un programa que puedo diseñar, pero
quiero saber si efectivamente no es posible hacerlo con macros.
mientras voy a consolar a mis probres neuronas con un par de cervezas
en tanto decido que hacer, y espero que alguna alma caritativa ilumine
mi camino, vale?

saludos!

Preguntas similare

Leer las respuestas

#1 Héctor Miguel
26/10/2005 - 06:51 | Informe spam
hola, sammuel !

12955 filas 62218 filas
archivo1 archivo2
codigo1 descrip cantidad... codigook descripcion existencia
xq31000 cerveza 1 xq31000 cerveza 1
pow5598 tarros 1 pow5598
la idea a grandes detalles es:
1. tomar codigo1 de archivo1 y buscarlo en archivo2
2. si lo encuentro, pegar de archivo1 los datos de descrip y cantidad en archivo2 descripcion, existencia
3. si no lo encuentro, poner leyenda en archivo2 NO ENCONTRADO en columnas descripcion y existencia
4. continuar asi hasta finalizar el contenido de archivo1
mi intención: crear una macro, colocando un boton de comando y colocarle el codigo siguiente:
Private Sub CommandButton1_Click()
Set mybook = Workbooks.Open(Filename:="archivo2.xls")
'archivo1 ya lo tengo abierto
For Each r In Worksheets("archivo1").Range("A8:a12955").Cells
=BUSCARH(A8:A12955,'[archivo2.xls]62617'!$A$2:$A$62618,1)
Next r
mybook.Close
End Sub
... [mas 'rollo'] ... :D



[parece que] existe una 'mezcla' de necesidades que no estan siendo 'compatibles' con la forma de usar codigos :(

1) lo unico que 'veo' poco probable de lograr... es poner 'no encontrado' en archivo2.xls
si cada hoja de excel 'dispone' de -solo- 65536 filas o renglones y ya tienes utilizadas 62618...
solo restan 3318... si de los 12995 articulos 'a buscar' no se encuentran 3319...donde pones los faltantes ???
[estoy poniendo la leyenda en el archivo1.xls junto al articulo que no se encontro en archivo2.xls] :))

2) no se de donde obtuviste que no se pueden usar las funciones de hoja de calculo en vba ???
lo que sucede es que no se pueden 'usar' en la forma que pretendes :-(

3) [ademas] para el caso que expones... existen otras alternativas -igualmente- 'funcionales' ;)
te paso al final un ejemplo de una de ellas [entre otras tantas posibilidades]...

si cualquier duda [o informacion adicional]... comentas ?
saludos,
hector.

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim Buscando As Range, Encontrado As Range, Col As Byte
Workbooks.Open "archivo2.xls"
For Each Buscando In ThisWorkbook.Worksheets("hoja1").Range("a8:a12955")
On Error Resume Next
With ActiveWorkbook.Worksheets("hoja1").Range("a2:a62618")
Set Encontrado = .Find(What:=Buscando, LookIn:=xlValues, After:=.Cells(1))
End With
On Error GoTo 0
If Not Encontrado Is Nothing Then
For Col = 1 To 2
Encontrado.Offset(, Col) = Buscando.Offset(, Col)
Next
Else
Buscando.Offset(, 3) = "No encontrado"
End If
Next
Set Encontrado = Nothing
Workbooks("archivo2.xls").Close True
End Sub
Respuesta Responder a este mensaje
#2 sammuel.garcia
26/10/2005 - 16:02 | Informe spam
Héctor, muchas, pero muchas gracías por atender, ahora te comento:

1) lo unico que 'veo' poco probable de lograr... es poner 'no
encontrado' en archivo2.xls
si cada hoja de excel 'dispone' de -solo- 65536 filas o renglones y
ya tienes utilizadas 62618...

-> bueno, en ambas hojas, solo dispongo hasta la columna K, el resto
esta libre

solo restan 3318... si de los 12995 articulos 'a buscar' no se
encuentran 3319...donde pones los faltantes ???

-> en realidad, el archivo1.xls es el resultado de depuración, con
datos ya complementados, que hay que completar en archivo2, por lo que
no es necesario insertar los registros de archivo1.xls en
archivo2.xls...

[estoy poniendo la leyenda en el archivo1.xls junto al articulo que
no se encontro en archivo2.xls] :))

2) no se de donde obtuviste que no se pueden usar las funciones de hoja
de calculo en vba ???
todo, lo que en internet encuentres, desgraciadamente no guardé el
link donde aparecia esta aseveración, pero si lo encuentro, lo posteo.

lo que sucede es que no se pueden 'usar' en la forma que pretendes
:-(
tostar mi pan para el desayuno, lo prometo.

3) [ademas] para el caso que expones... existen otras alternativas
-igualmente- 'funcionales' ;)
eso es lo que yo ignoraba pero que precisaba saber...amo la




internet.

te paso al final un ejemplo de una de ellas [entre otras tantas
posibilidades]...
gracías amigo, no sabes, de verdad, que agradezco que compartas


un poquitico tu experiencia, ahora mismo estoy estudiando el código
que me haz compartido. lo pruebo y te aviso, vale?

un abrazo!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida