Macro de Excel

rodsir

Buenas!

A ver si me podeis ayudar querria hacer una macro o algo, el asunto es que tengo una serie de pares de numeros en varias celdas en una misma columna, 1 numero de un color (rojo) y otro de otro (azul) asi sucesivamente...pero hay momentos en que el color se repite, y querria que me detectase cuando el color se repite y me informase cual, o que rellenase una de las celdas que se repite de un color, nose si me explico...xD

ej.

345569 (rojo)
345569 (azul)
554545 (rojo)
554545 (azul)
677676 (rojo)
677676 (rojo) MEC!!!!! AKI SE REPITE EL COLOR, QUE ME RELLENE EL FONDO O ME LO HAGA SABER DE ALGUNA MANERA.

Seria posible mediavideros?

Bloody

He mirado un poco por encima, y pienso que no se puede, al menos de la forma que yo quise hacerlo.

Usando un formato condicional, solo te permite hacer los formatos aplicados a formulas y valores, pero creo que no te avisará sobre el color de una celda o color de la fuente de esa celda.

Ähora no tengo mucho tiempo. Si recuerdo después en casa, te lo miro.

Saludos

rodsir

gracias por interesarte e intentarlo, a ver si me puedes ayudar me seria de mucha ayuda.

Bloody

Esos datos que vas a insertar en la columna, los vas a meter manualmente? es un copy/paste?

No se, dime si el fichero lo empiezas de 0 o como va :)

Saludos

rodsir

Veras te explico mejor como va la cosa, los numeros son num. de albaranes, me tienen que cuadrar los mios con los de mis compañeros, lo que hago es que los que me envian mis compañeros los pongo de rojo y los mios de azul, meto los mios luego los suyos le doy a "datos" -> "entrelazar" y asi se me ordenan los pares pero si hay uno que esta repetido o algo lo puedo verificar, pero el problema es que son muchisimos albaranes para ir comprobando uno a uno, otra cosa que se me habia olvidado tambien hay el importe de los albaranes en la columna de al lado que en todos los pares tiene que ser exactamente el mismo.Lo haciamos con colores para verlo mas claro pero pensandolo mejor seguro que hay alguna manera mas simple que con los colorcitos xDD

Bloody

Te propongo otra forma de hacerlo.

En una columna, pones los datos de tus compañeros, en una segunda columna, los datos tuyos, y en una tercera, una formula con la diferencia.

En la formula, puedes poner una condicion. Si el importe es el mismo, que el color del resultado sea verde; si es menor, rojo y si es mayor, azul, por poner ejemplos.

Saludos

rodsir

Vale, a ver seria:

  1           2        3

A 4859 3,12

B 4859 3,12

C 5444 3,78

D 5444 3,78

E 5233 5,12

F 5233 5,12

G 5233 5,12

H 6789 4,89

I 6789 4,89

.......

Que funcion podria poner para que me pusiera en la columna 3 que o bien esta repetido algun par de albaranes o el importe este mal mediante un color x ej.

bLaKnI

Si que se puede.

Tu quieres una macro que te detecte cuando un color se repite?
Es facil con VBA.

Pero debes especificar EXACTAMENTE que quieres que haga.

Se puede hacer varias cosas:

Sol1)

  • Bajando por la columna A. Guardando el ultimo color visto y si el siguiente se repite, fallo.
    Aqui hay que decidir que hacer:
    • Apuntarlo al lado?
    • Cambiarlo?
    • Con que color se sigue desde el que esta mal? Con el que deberia ser? O sencillamente da igual i solo se detectan repeticiones de color? Si quieres que en todos este igual, sencillamente hay que recolorear.
      Si una repeticion de color te indica que algo esta mal, entonces no quieres recolorear, sencillamente quitarte trabajo de encima detectandolo, no?

Di QUE QUIERES EXACTAMENTE.

Saludos.

Bloody

Una de las cosas que se me ocurre sería algo así:

Haces la fórmula con la diferencia de los importes, y luego le pones esas 3 condiciones a la fórmula (formato, formato condicional)

Pero todavía no entiendo por qué pones los albaranes de ambos en la misma columna, en vez de separar los nºs de albaran y los importes en 4 columnas, y una quinta con las diferencias.

Saludos

bLaKnI

Pero que no os compliqueis la vida.

Mira para que te quedes tranquilo, he aquí una simple macro que detecta colores.

Dada la columna A con este patron:

Rojo
Azul
Rojo
Azul
...

La macro que he creado te escribe a la columna de al lado el color de la celda.

Abre VBA (Visual Basic para Aplicaciones) en el Excel. Si tienes 2007, asegurate de tener la barra de herramientas de programador. Desde allí podrás acceder, si tienes 2003, hazlo desde el menu Herramientas->Macros->Editor Visual Basic o algo asi.

Una vez alli, verás un explorador del proyecto. Ponte en la zona blanca de el arbol del proyecto y haz "Insertar->Modulo" (NO modulo de Classe. SOLO modulo).

Y copia y pega lo que te pongo aquí:

Public Sub main()
    Call detectaColor
End Sub

Private Sub detectaColor()
    Range("A1").Select
    Dim actCol As String
    
Do While ActiveCell.Value <> "" actCol = ActiveCell.Interior.ColorIndex ActiveCell.Offset(0, 1).Select Select Case actCol Case 3 ActiveCell.Value = "ROJO" Case 5 ActiveCell.Value = "AZUL" End Select ActiveCell.Offset(1, -1).Select Loop End Sub

Vuelve al Excel, no hace falta que cierres el VBA, y ejecuta la macro (veras que se llama "main").
Y observa lo que sucede.

Funciona de momento solo con ROJO puro 255,0,0 y AZUL puro 0,0,255.
Y el patron del fichero excel debe ser este (los numeros no importan para nada. Solo el color):

Y el resultado de ejecutar la macro este:

Viendo esto, puedes ver que sencillamente debes decirme que hacer. Dado que es muy facil cambiarlo o lo que sea.

Saludos.

rodsir

#8 quiero detectarlo, saber cual se repite, tienen que cuadran todos los pares de albaran los mios con los suyos tienen que haber los mismos con los mismos importes.

#9 yo los ponia todos en la misma columna porque era mas facil para ponerlos, son 1500 pares de albaranes, para ordenarlos ytal nose..y lo de la formula para los importes vale, pero cuando el nº de albaran no es el mismo xq se repite ya no sirve :S

Bloody

#10 Hombre, yo a tanto no llego para hacer eso :) , pero si que trabajo también con albaranes y con excel, y pienso que lo que el quiere se puede hacer sencillo.

Saludos

Edit: pero si los tienes en 2 columnas y luego las ordenas (tienes varias formas de hacerlo, en datos, ordenar, o con un autof¡ltro), verás si se te repiten o no.

bLaKnI

xDD
Si perdonad... Es lo jodido de ser un puto programador! xDD

Es cierto que no es la manera convencional de resolver esto en Excel.
Pero a los de mi empresa estaban contentissimos dado que cuando aparecian casos asi, "hardcodeando" solucionas lo que con formulación Excel puede convertirse en un dolor de cabeza brutal!

Sea dicho pero, que el problema es de raiz, no en la solución. Si esto esta bien planteado desde un principio, no deberia ser necesario usar macros para nada. Y mucho menos, VBA.

Aunque llegados a este punto... :P

Saludos, dime que quieres que haga ahora, y te acabo la macro.

edit: otro problema. Si tenias rojo y el siguiente es rojo, entonces error, no?
Pero el que sigue a este que esta mal, TAMBIEN es rojo. Luego, que par se considera correcto? El primer rojo con el que sigue que esta incorrecto, o el que esta incorrecto con el que sigue que debe ser rojo, pero el programa reconoceria repeticion de nuevo?
Por eso digo, especifica.
Si quieres, detecto las repeticiones y al lado te escribo "CUIDADORL!" xD Y tu ya vas mirando...

Como quieras.

PD: seria bueno que hicieras un screen de como tienes el documento para poder representarlo tan igual como sea posible.
Saludos.

rodsir

Ok, entiendo, lo que quiero es que al haber tantissimos albaranes se detecten facilmente cuales estan repetidos, y que el importe sea el mismo, asi que me vale que las siguientes columnas de al lado sean de algun color para saber cuales estan mal.

rodsir

#13 xDDD a ver a mi me da igual hacerlo con colorines o no o de que manera, yo he dicho lo de los colores xq es la manera manual que teniamos de ir mirando si los pares de albaranes eran diferentes y su importe, si hay alguna manera mas facil mejor eh! xD

repito:

Yo tengo 1500 albaranes con sus importes y mis compañeros tienen otros 1500 con sus importes tienen que ser los mismos, que manera sencilla hay de meterlos en una plantilla y detectar de una manera vistosa cuales faltan o estan repetidos y que los importes sean iguales en ambos, deberia haber empezado asi el post y dejarme de colorines xD

edit: #12 eso de datos-ordenar es lo que ya hacia y podia ver si se repetian pero manualmente y son 1500 pares...xD

bLaKnI

Que si hombre, pero esos albaranes, que quieres colocar?
Como debe ser la plantilla?
Como es tu albaran?

Da datos coñe!

En el ejemplo has puesto una columna con pares de numeros.
Que son esos numeros? El numero de albaran? Entonces si los colorines estaban mal porque los pares de numeros estan bien?
Que coño controlabais con los colorines?

Explica el proces hombre!

Tu tienes 1500 albaranes.
Tu compañero tiene sus 1500 abaranes.
Quereis comprobar que son los mismos, y al empezar el post, presentas una columna con pares de numero IGUALES pero colores diferentes, y el problema residia en la REPETICION DE COLORES.

Luego la pregunta es, ¿porque los numeros SI SON IGUALES pero NO LOS COLORES? Y porque cuando los colores eran iguales estaban mal?
Que distinguian los colores? Y los numeros?

Entiendes porque te pregunto todo eso?

Redacta QUE HACIAIS paso por paso para detectar que estaba bien y que estaba mal.
Yo almenos necesito entender QUE HACEIS para poder ayudarte.

Saludos. :)

EDIT:
supongo que el Rojo eras tu, por ejemplo, y el Azul, tu compi.
Luego si se repite un rojo, es que tu tienes 2 veces el albaran, no?
Todo era siempre Rojo-Azul-Rojo-Azul...
O iba cambiando? Azul-Azul-Azul-Rojo-Rojo-Azul-Rojo...?

EDIT2:

puedes poner un puto screen del excel tal como lo tienes cuando lo haceis manualmente? Cuando te toca ir par por par verificando porfavor? No pongas datos comprometidos sino quieres, almenos algo que ejemplifique visualmente lo que haciais y redactar por encima el proceso que seguias.
Gracias.

rodsir

a ver ahora no tengo ningun ejemplo porque no estoy en el trabajo, pero es eso, yo soy un color y mi compañero otro, cogia los mios y los suyos los entrelazaba y ordenaba entonces salia rojo-azul-rojo-azul...entonces cuando tenia uno mas de mi color o del suyo es que estaba repetido y el importe lo iba mirando a ojo., la plantilla da igual..

es una lista de mis nº de albaranes con su importe al lado, e igual para el, a partir de ahi me da igual como se haga.

numero albaran: 55534 importe: 3,13

asi unos 1500 y el tiene que tener exactamente lo mismo.

siento no explicarme con mas claridad, lo de los colores no lo tendria que haber dicho, lo hacemos asi para ver visualmente el cambio mejor ya que vamos viendo de par en par..pero haciendolo con formula y tal no tiene porque haber colores por medio..

Bloody

Bueno, yo mañana, desgraciadamente, tengo que currar para el cierre de mes de mi hotel. Si puedes, y tienes un archivo de excel hecho, me lo envías por correo o algo, porque como dice Blakni, la mejor forma es verlo en su forma original.

Saludos

rodsir

ya esta solucionado, lo he hecho como ha dicho bloody, restando los valores y si salia 0 lo pintaba de verde y sino rojo, la verdad es que era sencillo, pero lo he planteado mal desde el princpio con lo de los colores, gracias por vuestra ayuda ;)

Usuarios habituales

  • rodsir
  • Bloody
  • bLaKnI