hola

10/08/2006 - 21:33 por Migue | Informe spam
Hola soy nuevo en el grupo intento hacer una macro que me cruze un
valor de una columna con varios de otra ejemplo:

A B
1 1000 500
2 2800 500
3 2000
4 800

Necesito que estos valores los borre o los ponga de algun color.

Esta macro me seria de mucha ayuda debido a que estoy punteando esto
manual y buscando las posibles variaciones manualmente.


gracias

Preguntas similare

Leer las respuestas

#6 Gavillas
13/08/2006 - 21:11 | Informe spam
Amigo Hector y foro en general:
He visto tus soluciones al tema de cruzar datos descrito.
Es parecido a uno, publicado días antes, de conciliacion bancaria muy bien
resuelto por Alexander Chacin.
En este decías que "...para hacerte llegar 'algo' que [probablemente] te
pudiera servir ?".
Podrías publicarlo para todos, por favor. Sería una gran ayuda. Gracias.



Hola soy nuevo en el grupo intento hacer una macro que me cruze un
valor de una columna con varios de otra ejemplo:

A B
1 1000 500
2 2800 500
3 2000
4 800

Necesito que estos valores los borre o los ponga de algun color.

Esta macro me seria de mucha ayuda debido a que estoy punteando esto
manual y buscando las posibles variaciones manualmente.


gracias

Respuesta Responder a este mensaje
#7 Héctor Miguel
14/08/2006 - 04:11 | Informe spam
hola, Gavillas !

... soluciones al tema de cruzar datos descrito...
... decias que "...para hacerte llegar 'algo' que [probablemente] te pudiera servir ?".
Podrias publicarlo... Seria una... ayuda...



con relacion al uso del solver por codigo... te paso al final algunos 'apuntes', enlaces y datos +/- 'relevantes'
estoy pegando [muchas/demasiadas/... 'intentos' de] explicaciones :D [asegurate de leerlas -casi- todas] :))

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

-> deberas tomar en cuenta las siguientes 'observaciones':
1) para 'poder' usar el solver [por codigo], es necesario...
establecer una referencia [en el proyecto de macros] a la libreria 'solver.xla' [NO solver.dll]
-> buscando la ubicacion apropiada con [menu] [herramientas / referencias
[la cual, pudiera variar segun la version -ingles/espa#ol- del sistema operativo]...
2) hay ligeros cambios entre excel '97/2000 y excel xp/2003 ...
las llamadas [por codigo] a las funciones del solver [como SolverOK, SolverAdd, etc.]
en xp/2003 pasan [reducidas] a: SolvOK, SolvAdd, etc. les sobra el sufijo ->[solv]ER<-
3) [probablemente] la primera vez que lo ejecutes mandara un mensaje de error:
-> error inesperado o memoria agotada<- :((
para resolverlo [y SOLO por unica vez] tendras que usar la siguiente instruccion...
->Application.Run "Solver.xla!Auto_Open"<-
4) tomar en cuenta IDIOMAS p.e. para 'FormulaText:=' en castellano 'binario' debe cambiarse por 'binary'
5) tomar precauciones si se va a correr en hojas protegidas <- OJO
6) el solver tiene una 'restriccion' que SOLO admite un maximo de 200 celdas cambiantes [97 a 2003] :-((
[es decir]... te sugiero que las cantidades/celdas/... donde vayas a 'buscar que valores suman... x_cantidad'...
a) NO excedan de 200 celdas
b) NO incluyas valores 'superiores' al buscado [es decir... no pongas al solver a buscar... donde NO hay nada que encontrar] :))

7) podrias empezar por descargar los siguientes ejemplos:
http://www.xl-logic.com/xl_files/fo...linear.zip
http://www.xl-logic.com/xl_files/fo...solver.zip
tambien tutoriales y [mas] ejemplos [luego de suscribirte a]
http://www.solver.com/suppxlsguide.htm

8) un ejemplo de una consulta especifica de hace tiempo [pego junto con la consulta] ;)
consulta ==> ... lista de valores ... encontrar las que sumadas dan un resultado concreto.
... ejemplo ... quisiera filtrarlas para conseguir ... las celdas que sumadas dan 45.
A B
1 10
2 20
3 25
4 30
... con solver y buscar objetivo y no lo he conseguido.
No se trata de cambiar el valor de las celdas, sino de seleccionar aquellas con las que se consiga el resultado [...]



propuesta ==con los siguientes supuestos y usando solver [por codigo] se puede [+/-] conseguir lo que necesitas:
nota: [te sugiero] usar nombres [ya sea estaticos/dinamicos] para no estar cambiando sus referencias en el codigo.
1) al rango de los valores [col 'a'] asignale un nombre [p.e. Valores]
2) a un rango igual [adyacente y vacio -de momento-] asignale otro nombre [p.e. Filtro]
en estas celdas, el solver pondra 1's / 0's [unos o ceros] para lograr la combinacion que arroje la suma buscada
3) en una celda pon la suma que se desea conseguir y asignale otro nombre [p.e. Objetivo]
4) usa otra celda para el resultado y asignale otro nombre [p.e. Resultado]
la formula en esta celda [Resultado] seria -> =sumaproducto(valores,filtro)
5) IMPORTANTE -> marcar una referencia en el proyecto [vba] a la libreria del solver [solver.xla]
6) puedes aplicar autofiltro a la columna del rango Filtro o ...
usar formato condicional para identificar la/s fila/s cuyo valor [en su celda del rango Filtro] sea 1 [uno]
7) puedes asignar la macro a algun boton, o en el evento '_Change' de la celda Objetivo [en el modulo de su hoja]

en un modulo de codigo 'normal' ==Sub Localizar_Suma()
Application.ScreenUpdating = False
SolverReset
SolverOk SetCell:="" & [Resultado].Address & "", _
MaxMinVal:=3, _
ValueOf:="" & [Objetivo] & "", _
ByChange:="" & [Filtro].Address & ""
SolverAdd CellRef:="" & [Filtro].Address & "", _
Relation:=5, _
FormulaText:="Binario"
SolverOptions Precision:=0.0000001, _
Convergence:=0.001
SolverOk SetCell:="" & [Resultado].Address & "", _
MaxMinVal:=3, _
ValueOf:="" & [Objetivo] & "", _
ByChange:="" & [Filtro].Address & ""
SolverSolve UserFinish:=True
End Sub
Respuesta Responder a este mensaje
#8 Héctor Miguel
14/08/2006 - 05:22 | Informe spam
hola, Migue !

el solver NO 'parece' que sea la herramienta que necesitas -?-
[segun los datos que expones en este ejemplo en el que NO 'se ven' -muchos- valores 'compatibles']...
parece que se trata de una 'acumulacion' de saldos acreedores/deudores 'contables' [donde]...
la parte que haria 'dificil' encontrar los valores que necesitas ES:
-> al 'ajuste' final para 'cuadrar' las sumas de ambas columnas -?-

[de todas formas]... ve si la propuesta/respuesta a Gavillas la encuentras de utilidad -?-

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

__ la consulta original __
El ejemplo que puse anteriormente fue, muy simple pero tengo columnas con hasta 1000 filas por ejemplo:
4,245.00 908.32
227,989.32 189,104.89
1,720,226.00 227,081.00
10,000,000.00 1,531,121.11
29,550,000.00 3,913,005.00
58,804,709.06 4,000,000.00
71,195,290.94 6,000,000.00
101,881,568.00 12,254,416.13
134,409,184.13 18,804,709.06
327,693,271.00 26,195,290.94
379,340,280.00 32,375,268.00
382,257,271.00 40,000,000.00
432,466,755.00 45,000,000.00
508,222,000.00 68,468,000.00
510,876,000.00 89,779,500.00
633,400,600.00 132,257,271.00
- 3,101,053,714.00
TOTAL 3,582,049,389.45 3,582,049,389.45 -
En este caso la columna A y la columna B suman lo mismo y la diferenciaes (0) el problema es cuando no da (0)
y nesecito saber que numeros de la columna A al restarlos con numeros de la columna B no me dan (0) [...]
Respuesta Responder a este mensaje
#9 Gavillas
16/08/2006 - 19:10 | Informe spam
Gracias Hector.
Ha resultado muy pedagogica tu ayuda sobre Solver. "Solventa" muchas cosas.
Otra cosa. Confirmo con otros muchos, los problemas que hay al publicar los
post.
Tambien he notado que hay varios mios que no he visto publicados, pero si
contestados, como en este caso. Es decir que yo no los veo, pero los demas
si. Empleo el Outlook Express 6.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida