Visual Basic - Macro para excel

Life is soft - evento anual de software empresarial
   
Vista:

Macro para excel

Publicado por l459 josele459@hotmail.com (1 intervención) el 29/01/2013 21:01:09
tengo una matriz de l3 a q9, con distintos números, a continuación tengo las siguientes formulas en las celdas:

s4: {=si.error(si(max(($l$3:$q3=l4)*fila($s$3:$x3))=0;"";fila(s4)-max(($l$3:$q3=l4)*fila($s$3:$x3)));"") }

t4: {=si.error(si(max(($l$3:$q3=m4)*fila($s$3:$x3))=0;"";fila(t4)-max(($l$3:$q3=m4)*fila($s$3:$x3)));"") }

u4: { =si.error(si(max(($l$3:$q3=n4)*fila($s$3:$x3))=0;"";fila(u4)-max(($l$3:$q3=n4)*fila($s$3:$x3)));"") }

v4: {=si.error(si(max(($l$3:$q3=o4)*fila($s$3:$x3))=0;"";fila(v4)-max(($l$3:$q3=o4)*fila($s$3:$x3)));"") }

w4: {=si.error(si(max(($l$3:$q3=p4)*fila($s$3:$x3))=0;"";fila(w4)-max(($l$3:$q3=p4)*fila($s$3:$x3)));"") }

x4: {=si.error(si(max(($l$3:$q3=q4)*fila($s$3:$x3))=0;"";fila(x4)-max(($l$3:$q3=q4)*fila($s$3:$x3)));"") }

s5: {=si.error(si(max(($l$3:$q4=l5)*fila($s$3:$x4))=0;"";fila(s5)-max(($l$3:$q4=l5)*fila($s$3:$x4)));"") }

t5: {=si.error(si(max(($l$3:$q4=m5)*fila($s$3:$x4))=0;"";fila(t5)-max(($l$3:$q4=m5)*fila($s$3:$x4)));"") }

u5: {=si.error(si(max(($l$3:$q4=n5)*fila($s$3:$x4))=0;"";fila(u5)-max(($l$3:$q4=n5)*fila($s$3:$x4)));"") }

v5: {=si.error(si(max(($l$3:$q4=o5)*fila($s$3:$x4))=0;"";fila(v5)-max(($l$3:$q4=o5)*fila($s$3:$x4)));"") }

w5: {=si.error(si(max(($l$3:$q4=p5)*fila($s$3:$x4))=0;"";fila(w5)-max(($l$3:$q4=p5)*fila($s$3:$x4)));"") }

x5: {=si.error(si(max(($l$3:$q4=q5)*fila($s$3:$x4))=0;"";fila(x5)-max(($l$3:$q4=q5)*fila($s$3:$x4)));"") }

…… hasta las celdas:

s9: { =si.error(si(max(($l$3:$q8=l9)*fila($s$3:$x8))=0;"";fila(s9)-max(($l$3:$q8=l9)*fila($s$3:$x8)));"") }

t9: { =si.error(si(max(($l$3:$q8=m9)*fila($s$3:$x8))=0;"";fila(t9)-max(($l$3:$q8=m9)*fila($s$3:$x8)));"") }

u9: { =si.error(si(max(($l$3:$q8=n9)*fila($s$3:$x8))=0;"";fila(u9)-max(($l$3:$q8=n9)*fila($s$3:$x8)));"") }

v9: { =si.error(si(max(($l$3:$q8=o9)*fila($s$3:$x8))=0;"";fila(v9)-max(($l$3:$q8=o9)*fila($s$3:$x8)));"") }

w9: { =si.error(si(max(($l$3:$q8=p9)*fila($s$3:$x8))=0;"";fila(w9)-max(($l$3:$q8=p9)*fila($s$3:$x8)));"") }

x9: {=si.error(si(max(($l$3:$q8=q9)*fila($s$3:$x8))=0;"";fila(x9)-max(($l$3:$q8=q9)*fila($s$3:$x8)));"") }

luego tengo de la celda ab23 a ab71 valores; y en la columna de al lado de ac23 a ac71, las siguientes formulas:

ac23: =si.error(si(max(($l$3:$q$8=ab23)*fila($s$3:$x$8))=0;0;fila(s$9)-max(($l$3:$q$8=ab23)*fila($s$3:$x$8)));0)

ac24: =si.error(si(max(($l$3:$q$8=ab24)*fila($s$3:$x$8))=0;0;fila(s$9)-max(($l$3:$q$8=ab24)*fila($s$3:$x$8)));0)
……
ac71: =si.error(si(max(($l$3:$q$8=ab71)*fila($s$3:$x$8))=0;0;fila(s$9)-max(($l$3:$q$8=ab71)*fila($s$3:$x$8)));0)

la cosa está en que cada vez que ejecute la macro, se realice lo siguiente:

1. que se pongan solas las formulas siguientes en :

s9: { =si.error(si(max(($l$3:$q9=l10)*fila($s$3:$x9))=0;"";fila(s10)-max(($l$3:$q9=l10)*fila($s$3:$x9)));"")}

t9: { =si.error(si(max(($l$3:$q9=m10)*fila($s$3:$x9))=0;"";fila(t10)-max(($l$3:$q9=m10)*fila($s$3:$x9)));"")}

u9: { =si.error(si(max(($l$3:$q9=n10)*fila($s$3:$x9))=0;"";fila(u10)-max(($l$3:$q9=n10)*fila($s$3:$x9)));"")}

v9: { =si.error(si(max(($l$3:$q9=o10)*fila($s$3:$x9))=0;"";fila(v10)-max(($l$3:$q9=o10)*fila($s$3:$x9)));"")}

w9: { =si.error(si(max(($l$3:$q9=p10)*fila($s$3:$x9))=0;"";fila(w10)-max(($l$3:$q9=p10)*fila($s$3:$x9)));"")}

x9: {=si.error(si(max(($l$3:$q9=q10)*fila($s$3:$x9))=0;"";fila(x10)-max(($l$3:$q9=q10)*fila($s$3:$x9)));"")}

2. que se actualicen las formulas de la siguiente manera en las ubicaciones:

ac23: { =si.error(si(max(($l$3:$q$9=ab23)*fila($s$3:$x$9))=0;0;fila(s$10)-max(($l$3:$q$9=ab23)*fila($s$3:$x$9)));0) }

ac24: {=si.error(si(max(($l$3:$q$9=ab24)*fila($s$3:$x$9))=0;0;fila(s$10)-max(($l$3:$q$9=ab24)*fila($s$3:$x$9)));0) }
……

ac71: { =si.error(si(max(($l$3:$q$9=ab71)*fila($s$3:$x$9))=0;0;fila(s$10)-max(($l$3:$q$9=ab71)*fila($s$3:$x$9)));0) }

cada vez que ejecute la macro que me avance todo como en el ejemplo expuesto, teniendo encuenta que ire añadiendo filas, 9,10,11….
gracias y un saludo


tengo una matriz de l3 a q9, con distintos números, a continuación tengo las siguientes formulas en las celdas:

s4: {=si.error(si(max(($l$3:$q3=l4)*fila($s$3:$x3))=0;"";fila(s4)-max(($l$3:$q3=l4)*fila($s$3:$x3)));"")}
t4:{=si.error(si(max(($l$3:$q3=m4)*fila($s$3:$x3))=0;"";fila(t4)-max(($l$3:$q3=m4)*fila($s$3:$x3)));"")}
u4: {=si.error(si(max(($l$3:$q3=n4)*fila($s$3:$x3))=0;"";fila(u4)-max(($l$3:$q3=n4)*fila($s$3:$x3)));"") }
v4: {=si.error(si(max(($l$3:$q3=o4)*fila($s$3:$x3))=0;"";fila(v4)-max(($l$3:$q3=o4)*fila($s$3:$x3)));"") }
w4: {=si.error(si(max(($l$3:$q3=p4)*fila($s$3:$x3))=0;"";fila(w4)-max(($l$3:$q3=p4)*fila($s$3:$x3)));"")}
x4: {=si.error(si(max(($l$3:$q3=q4)*fila($s$3:$x3))=0;"";fila(x4)-max(($l$3:$q3=q4)*fila($s$3:$x3)));"")}
s5: {=si.error(si(max(($l$3:$q4=l5)*fila($s$3:$x4))=0;"";fila(s5)-max(($l$3:$q4=l5)*fila($s$3:$x4)));"")}
t5: {=si.error(si(max(($l$3:$q4=m5)*fila($s$3:$x4))=0;"";fila(t5)-max(($l$3:$q4=m5)*fila($s$3:$x4)));"")}
u5:{=si.error(si(max(($l$3:$q4=n5)*fila($s$3:$x4))=0;"";fila(u5)-max(($l$3:$q4=n5)*fila($s$3:$x4)));"") }
v5: {=si.error(si(max(($l$3:$q4=o5)*fila($s$3:$x4))=0;"";fila(v5)-max(($l$3:$q4=o5)*fila($s$3:$x4)));"") }
w5: {=si.error(si(max(($l$3:$q4=p5)*fila($s$3:$x4))=0;"";fila(w5)-max(($l$3:$q4=p5)*fila($s$3:$x4)));"")}
x5: {=si.error(si(max(($l$3:$q4=q5)*fila($s$3:$x4))=0;"";fila(x5)-max(($l$3:$q4=q5)*fila($s$3:$x4)));"")}
…… hasta las celdas:
s9:{ =si.error(si(max(($l$3:$q8=l9)*fila($s$3:$x8))=0;"";fila(s9)-max(($l$3:$q8=l9)*fila($s$3:$x8)));"")}
t9:{ =si.error(si(max(($l$3:$q8=m9)*fila($s$3:$x8))=0;"";fila(t9)-max(($l$3:$q8=m9)*fila($s$3:$x8)));"")}
u9: {=si.error(si(max(($l$3:$q8=n9)*fila($s$3:$x8))=0;"";fila(u9)-max(($l$3:$q8=n9)*fila($s$3:$x8)));"") }
v9: {=si.error(si(max(($l$3:$q8=o9)*fila($s$3:$x8))=0;"";fila(v9)-max(($l$3:$q8=o9)*fila($s$3:$x8)));"") }
w9:{ =si.error(si(max(($l$3:$q8=p9)*fila($s$3:$x8))=0;"";fila(w9)-max(($l$3:$q8=p9)*fila($s$3:$x8)));"")}
x9: {=si.error(si(max(($l$3:$q8=q9)*fila($s$3:$x8))=0;"";fila(x9)-max(($l$3:$q8=q9)*fila($s$3:$x8)));"")}
luego tengo de la celda ab23 a ab71 valores; y en la columna de al lado de ac23 a
ac71, las siguientes formulas:

ac23: =si.error(si(max(($l$3:$q$8=ab23)*fila($s$3:$x$8))=0;0;fila(s$9)-max(($l$3:$q$8=ab23)*fila($s$3:$x$8)));0)
ac24: =si.error(si(max(($l$3:$q$8=ab24)*fila($s$3:$x$8))=0;0;fila(s$9)-max(($l$3:$q$8=ab24)*fila($s$3:$x$8)));0)
……
ac71: =si.error(si(max(($l$3:$q$8=ab71)*fila($s$3:$x$8))=0;0;fila(s$9)-max(($l$3:$q$8=ab71)*fila($s$3:$x$8)));0)
la cosa está en que cada vez que ejecute la macro, se realice lo siguiente:
1.que se pongan solas las formulas siguiente en :
s9:=si.error(si(max(($l$3:$q9=l10)*fila($s$3:$x9))=0;"";fila(s10)-max(($l$3:$q9=l10)*fila($s$3:$x9)));"")}
t9:{ =si.error(si(max(($l$3:$q9=m10)*fila($s$3:$x9))=0;"";fila(t10)-max(($l$3:$q9=m10)*fila($s$3:$x9)));"")}
u9: {=si.error(si(max(($l$3:$q9=n10)*fila($s$3:$x9))=0;"";fila(u10)-max(($l$3:$q9=n10)*fila($s$3:$x9)));"")}
v9: {=si.error(si(max(($l$3:$q9=o10)*fila($s$3:$x9))=0;"";fila(v10)-max(($l$3:$q9=o10)*fila($s$3:$x9)));"")}
w9:{ =si.error(si(max(($l$3:$q9=p10)*fila($s$3:$x9))=0;"";fila(w10)-max(($l$3:$q9=p10)*fila($s$3:$x9)));"")}
x9: {=si.error(si(max(($l$3:$q9=q10)*fila($s$3:$x9))=0;"";fila(x10)-max(($l$3:$q9=q10)*fila($s$3:$x9)));"")}
2.que se actualicen las formulas de la siguiente manera en las ubicaciones:
ac23: { =si.error(si(max(($l$3:$q$9=ab23)*fila($s$3:$x$9))=0;0;fila(s$10)-max(($l$3:$q$9=ab23)*fila($s$3:$x$9)));0)
ac24: {=si.error(si(max(($l$3:$q$9=ab24)*fila($s$3:$x$9))=0;0;fila(s$10)-max(($l$3:$q$9=ab24)*fila($s$3:$x$9)));0)}
……
ac71: { =si.error(si(max(($l$3:$q$9=ab71)*fila($s$3:$x$9))=0;0;fila(s$10)-max(($l$3:$q$9=ab71)*fila($s$3:$x$9)));0)}

cada vez que ejecute la macro que me avance todo como en el ejemplo expuesto, teniendo encuenta que ire añadiendo filas, 9,10,11….
gracias y un saludo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
información
Otras secciones de LWP con contenido de Visual Basic
- Código fuente de Visual Basic
- Cursos de Visual Basic
- Temas de Visual Basic
- Chat de Visual Basic
información
Códigos de Visual Basic
- Agenda personal
- Eliminación de gauss
- Api's

Macro para excel

Publicado por Guillermo (3 intervenciones) el 01/03/2013 20:58:28
Estimado, creo que mucha formula y poco contenido, se te podría ayudar más si pudieras entregar mejor el concepto de lo que quieres conseguir, porque las formulas que utilizas que la verdad no me dicen mucho.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar