Saltar al contenido

no me pega el formato de fila

publicado

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

Featured Replies

publicado
  • Autor

guien seria tan amable de ayudarme con este sencillo paso? que no veo como resolverlo o donde estoy cometiendo el error al insertar el formato de celdas y formulas?

y subo el archivo actualizado

DEPRECIACION 30.rar

publicado

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

publicado
  • Autor

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

publicado
  • Autor

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

publicado

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

publicado
  • Autor

uch no me percate de que tenia dos temas muy parecidos, bueno iguales pido disculpas al respecto un despiste de mi parte

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.