Jump to content

no me pega el formato de fila


Recommended Posts

bueans tengo este codigo

Private Sub BtnGrabarDatos_Click()
On Error Resume Next

intvalor = 1
For i = 1 To ReCantidad Step 1

Range("B6").Select

Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop

Range("B5:V5").Copy
Selection.PasteSpecial Paste:=xlPasteFormulasAndNumberFormatsAndFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False

ActiveCell = CDbl(ReCodigo)
ActiveCell.Offset(0, 1) = ReCategoria

If IsNumeric(ReNuFactura) Then
ActiveCell.Offset(0, 2) = CDbl(ReNuFactura)
Else
ActiveCell.Offset(0, 2) = ReNuFactura
End If

If ReReferencia.Enabled = False Then
ActiveCell.Offset(0, 5) = ""
ElseIf IsNumeric(ReReferencia) Then
ActiveCell.Offset(0, 5) = CDbl(ReReferencia)
Else
ActiveCell.Offset(0, 5) = ReReferencia
End If

ActiveCell.Offset(0, 6) = ReDescripcion
ActiveCell.Offset(0, 7) = ReFecha
ActiveCell.Offset(0, 10) = ReEstado

If ReVaUnitario1.Enabled = True Then
ActiveCell.Offset(0, 11) = CDbl(ReVaUnitario1)
Else
ActiveCell.Offset(0, 11) = CDbl(ReVaUnitario2)
End If
Next i

VCantidad1 = ""
VCantidad2 = ""
VUnitario1 = ""
VUnitario2 = ""
VTotal1 = ""
VTotal2 = ""

Unload Me
End Sub

[/CODE]

lo que hace es ingresar los datos en la primera fila vacia que encuentre a partir de la fila 6, en la "BASE DE DATOS" todo va bien ecepto que no me pega ni el formato ni las formulas de la fila cinco que estara oculta

DEPRECIACION 26.rar

Link to comment
Share on other sites

Hola aprendiz

Prueba a cambiar tu macro tal que

lo anterior..........
For i = 1 To ReCantidad Step 1

Range("B5:V5").Copy
Range("B6").Select

Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop

ActiveSheet.Paste
........... lo siguiente[/CODE]

Un saludod esde Vitoria

Link to comment
Share on other sites

me funciona! pero me queda el borde animado de la fila... esa linea animada que se quita con el enter... lo de insertar formulas formatos estan bien :D un tema casi resuelto!! solo esa animacion como quitarla...

tuve que desactivar las formulas insertadas desde el codigo por problemas de compativilidad con las versiones inglesas...

lo anterior..........

For i = 1 To Val(ReCantidad) Step 1
Range("B5:W5").Copy
Range("B6").Select
Do While Not IsEmpty(ActiveCell) ActiveCell.Offset(1, 0).Select Loop
ActiveSheet.Paste
Fila = ActiveCell.Row
ActiveCell = CDbl(ReCodigo) ActiveCell.Offset(0, 1) = ReCategoria
If IsNumeric(ReNuFactura) Then ActiveCell.Offset(0, 2) = CDbl(ReNuFactura) Else ActiveCell.Offset(0, 2) = ReNuFactura End If
'ActiveCell.Offset(0, 3).FormulaLocal = "=SUMAPRODUCTO(1*($D$5:$D$65536=D" & Fila & "))" 'ActiveCell.Offset(0, 4).FormulaR1C1 = "=ROW()-5"
If ReReferencia.Enabled = False Then ActiveCell.Offset(0, 5) = "" ElseIf IsNumeric(ReReferencia) Then ActiveCell.Offset(0, 5) = CDbl(ReReferencia) Else ActiveCell.Offset(0, 5) = ReReferencia End If
ActiveCell.Offset(0, 6) = ReDescripcion ActiveCell.Offset(0, 7) = ReFecha ActiveCell.Offset(0, 8) = Date ActiveCell.Offset(0, 10) = ReEstado
If ReVaUnitario1.Enabled = True Then ActiveCell.Offset(0, 11) = CDbl(ReVaUnitario1) Else ActiveCell.Offset(0, 11) = CDbl(ReVaUnitario2) End If
'ActiveCell.Offset(0, 12).FormulaLocal = "=SUMAPRODUCTO(($D$5:$D$65536=$D" & Fila & ")*$M$5:$M$65536)" 'ActiveCell.Offset(0, 13).FormulaLocal = "=SI($Q" & Fila & "=0;0;SIFECHA($I" & Fila & ";$A$1+1;""Y""))" 'ActiveCell.Offset(0, 14).FormulaLocal = "=SI($Q" & Fila & "=0;0;SIFECHA($I" & Fila & ";$A$1+1;""YM""))" 'ActiveCell.Offset(0, 15).FormulaLocal = "=SI(DIAS360($I" & Fila & ";$A$1)<0;0;DIAS360($I" & Fila & ";$A$1))" 'ActiveCell.Offset(0, 17).FormulaLocal = "=DACUM($M" & Fila & ";DEP($B" & Fila & ");$Q" & Fila & ")" 'ActiveCell.Offset(0, 18).FormulaLocal = "=SI($Q" & Fila & "=0;0;SI($Q" & Fila & "<30;DACUM($M" & Fila & ";DEP($B" & Fila & ");$Q" & Fila & ");DMEN($M" & Fila & ";DEP($B" & Fila & "))))" 'ActiveCell.Offset(0, 19).FormulaLocal = "=SI($Q" & Fila & "=0;0;SI($Q" & Fila & "<360;DACUM($M" & Fila & ";DEP($B" & Fila & ");$Q" & Fila & ");SI(DED($B" & Fila & ")-$Q" & Fila & ">=360;$M" & Fila & "*DEP($B" & Fila & ");SI(DED($B" & Fila & ")-$Q" & Fila & "=0;"""";DACUM($M" & Fila & ";DEP($B" & Fila & ");$Q" & Fila & ")))))" 'ActiveCell.Offset(0, 20).FormulaLocal = "=SI(S" & Fila & "=0;0;SI(Q" & Fila & "=0;0;M" & Fila & "-S" & Fila & "))" 'ActiveCell.Offset(0, 21).FormulaLocal = "=SI(S" & Fila & "=0;0;SI(Q" & Fila & "=0;0;N" & Fila & "-DACUM(N" & Fila & ";DEP(B" & Fila & ");Q" & Fila & ")))"
........... lo siguiente[/CODE]

como veras que comente las formulas

Copia de DEPRECIACION 36.rar

Link to comment
Share on other sites

muchas gracias por ayudarme ioyama con tu sugerencia no habira podido avanzar mucho, asi termine poneido el codigo que opinas?

Private Sub BtnGrabarDatos_Click()
On Error Resume Next

For i = 1 To Val(ReCantidad) Step 1

Range("B5:W5").Copy
Range("B6").Select

Do While Not IsEmpty(ActiveCell)
ActiveCell.Offset(1, 0).Select
Loop

ActiveSheet.Paste
Selection.RowHeight = 13

ActiveCell = CDbl(ReCodigo)
ActiveCell.Offset(0, 1) = ReCategoria

If IsNumeric(ReNuFactura) Then
ActiveCell.Offset(0, 2) = CDbl(ReNuFactura)
Else
ActiveCell.Offset(0, 2) = ReNuFactura
End If

ActiveCell.Offset(0, 3).FormulaR1C1 = "=SUMPRODUCT(1*(R5C4:R65536C4=RC4))"
ActiveCell.Offset(0, 4).FormulaR1C1 = Evaluate("=ROW()-6")

If ReReferencia.Enabled = False Then
ActiveCell.Offset(0, 5) = ""
ElseIf IsNumeric(ReReferencia) Then
ActiveCell.Offset(0, 5) = CDbl(ReReferencia)
Else
ActiveCell.Offset(0, 5) = ReReferencia
End If

ActiveCell.Offset(0, 6) = ReDescripcion
ActiveCell.Offset(0, 7) = ReFecha
ActiveCell.Offset(0, 8) = Date
ActiveCell.Offset(0, 10) = ReEstado

If ReVaUnitario1.Enabled = True Then
ActiveCell.Offset(0, 11) = CDbl(ReVaUnitario1)
Else
ActiveCell.Offset(0, 11) = CDbl(ReVaUnitario2)
End If

ActiveCell.Offset(0, 12).FormulaR1C1 = "=SUMPRODUCT((R5C4:R65536C4=RC4)*R5C13:R65536C13)"
ActiveCell.Offset(0, 13).FormulaR1C1 = "=IF(RC17=0,0,DATEDIF(RC9,R1C1+1,""Y""))"
ActiveCell.Offset(0, 14).FormulaR1C1 = "=IF(RC17=0,0,DATEDIF(RC9,R1C1+1,""YM""))"
ActiveCell.Offset(0, 15).FormulaR1C1 = "=IF(DAYS360(RC9,R1C1)<0,0,DAYS360(RC9,R1C1))"
ActiveCell.Offset(0, 17).FormulaR1C1 = "=DACUM(RC13,DEP(RC2),RC17)"
ActiveCell.Offset(0, 18).FormulaR1C1 = "=IF(RC17=0,0,IF(RC17<30,DACUM(RC13,DEP(RC2),RC17),DMEN(RC13,DEP(RC2))))"
ActiveCell.Offset(0, 19).FormulaR1C1 = "=IF(RC17=0,0,IF(RC17<360,DACUM(RC13,DEP(RC2),RC17),IF(DED(RC2)-RC17>=360,RC13*DEP(RC2),IF(DED(RC2)-RC17=0,"""",DACUM(RC13,DEP(RC2),RC17)))))"
ActiveCell.Offset(0, 20).FormulaR1C1 = "=IF(RC[-3]=0,0,IF(RC[-5]=0,0,RC[-9]-RC[-3]))"
ActiveCell.Offset(0, 21).FormulaR1C1 = "=IF(RC[-4]=0,0,IF(RC[-6]=0,0,RC[-9]-DACUM(RC[-9],DEP(RC[-21]),RC[-6])))"

Next i

Application.CutCopyMode = False
VCantidad1 = ""
VCantidad2 = ""
VUnitario1 = ""
VUnitario2 = ""
VTotal1 = ""
VTotal2 = ""

Unload Me
End Sub

[/CODE]

me inserta las formulas el ancho de fila y formatos aunque hubiera sido mas bonito si no dependiera de la fila 5 para copiar el formato pero parece funcionar muy bien

muchas gracias por tu ayuda

Copia de DEPRECIACION 41.rar

Link to comment
Share on other sites

Hola aprendiz

¿Has probado a usar la grabadora de macros?

Ponla en marcha ejecuta manualmente la acción y paras la grabadora. Observa el código generado (normalmente después hay que depurarlo), del mismo podrás obtener sentencias útiles para tu código. Prueba por ejemplo a dar el formato deseado a un rango. Así verás si puedes evitar la copia de la fila 5 y usar el código que obtengas para el formato.

Un saludo desde Vitoria

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

Privacy Policy