Visual Basic - Ayuda Con Codigo

Life is soft - evento anual de software empresarial
 
Vista:

Ayuda Con Codigo

Publicado por Eugenio (2 intervenciones) el 12/03/2010 21:20:34
Hola a todos, soy nuevo aqui, jeje, tengo un problema con un codigo que debería ser relativamente simple. La cosa es que estoy haciendo una planilla con el siguiente código:

Private Sub Worksheet_Change(ByVal Target As Range)
For i = 9 To 40 'VERIFICA SI EL ITEMIZADO TERMINA O NO
If Cells(i, 7) = Empty And Cells(i, 4) = Empty Then
Exit For
Else
If Cells(i, 7) = Empty Then
Range(Cells(i, 3), Cells(i, 8)).Interior.ColorIndex = 1 '||||||Pinta celda negra
Range(Cells(i, 3), Cells(i, 8)).Font.ColorIndex = 2 '||||||Pinta color blanco
Range(Cells(i, 3), Cells(i, 8)).Font.Bold = True '|||||||Aplica Negrita
Else 'APLICA FORMATO DE MONEDA
Range(Cells(i, 3), Cells(i, 8)).Interior.ColorIndex = xlNone '|||||||Quita color casilla
Range(Cells(i, 3), Cells(i, 8)).Font.ColorIndex = 1 '|||||||Pinta color negro
Range(Cells(i, 3), Cells(i, 8)).Font.Bold = False '|||||Quita Negrita
Cells(i, 5).Font.Bold = True '|||||Aplica Negrita
Range(Cells(i, 7), Cells(i, 8)).NumberFormat = "$ #,##0" '||||||Formato Moneda
Hoja1.Cells(i, 8) = "=F" & i & "*G" & i & ""
End If '|||||
End If
Next
End Sub

La idea de esto, es para hacer una planilla (la cual estoy recien comenzando). En la cuál se ingresarán datos de la siguiente forma:

ITEM DESCRIPCION UNIDAD CANTIDAD P.UNITARIO P.TOTAL
1.1 Movimiento de tierras
1 Excavación 0-2 m3 45 $ 6.800 $ 306.000
2 Excavación 2-4 m3 150 $ 10.950
.
.
etc

La idea es que esta planilla a medida de que voy ingresando los datos, va pintando y arreglando los datos de forma que queden ordenados y divididos segun capítulos y partidas (siendo los títulos los capítulos y el 1 y 2 que se ven, las partidas). La cosa es que estuve bien complicado al tratar de que la planilla agregue automáticamente las fórmulas hasta que llegue al comando: Hoja1.Cells(i, 8) = "=F" & i & "*G" & i & ""
con el que a mi juicio debería andar bien la cosa. Sin embargo eso no fue asi, por algún motivo que desconozco, cuando se ejecuta ese comando, se va directamente al for, haciendo partir el contador 'i' desde cero, por lo que entra en un ciclo interminable.

Espero que se haya entendido, ojalá alguien pueda ayudarme.
Saludos Cordiales
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

RE:Ayuda Con Codigo

Publicado por jose (3 intervenciones) el 12/03/2010 22:07:26
genera el proceso en una macro de excel, activa la referencia de microsof excel en tu proyecto y pega el contenido de la macro.
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

RE:Ayuda Con Codigo

Publicado por Eugenio (2 intervenciones) el 12/03/2010 23:18:50
Antes que nada gracias por contestar jeje, no estoy seguro de haber entendido, te refieres a que en la barra de herramientas utilice la funcion "grabar macro" y luego extraerla desde el menu que se abre con F11??
Hay un problema con eso, al sacar la función me entregará algo por el estilo:
activecell.formulaR1C1= "=G9*F9"
Además depende de la celda activa, y no quiero utilizarlas.

Lo que yo necesito es una fórmula general, ya que las filas variaran según el tipo de lista que tenga. por ende el comando al que llegue fue este
Hoja1.Cells(i, 8) = "=F" & i & "*G" & i & ""
donde i es el contador del ciclo 'for' y de hecho el comando funciona bien, lo único raro es que luego de que se ejecuta, el valor de i vuelve a cero por ende se mete en un ciclo interminable y no tengo la mas mínima idea de porque vuelve a cero :S, cuando borro esa línea del algoritmo, todo funciona impecable y el 'i' avanza como corresponde.

Saludos y Gracias
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