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
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
0