¿Cómo copiar consecutivamente de una hoja a otra?
Yo genero una orden de compra, ésta debo copiarla en otro archivo que tiene por objeto tener un registro de todas lar ordenes de compras que genero, es decir que ellas deben irse copiando una debajo de la otra, el problema es que con el procedimiento que le he dado no queda el registro de cada orden completa, si no de la ultima; de las anteriores solo quedan registrados las tres primeras filas, es decir el encabezado.
Este es el procedimiento que he dado:
Sub Send_ordre()
Sheets("Ordretabel").Unprotect
Sheets("Ordretabel").Visible = True
Sheets("Ordre").Activate
Range("B4:H44").Select
Selection.Copy
Sheets("Ordretabel").Activate
If Range("B5") = "" Then
Range("B5").Activate
ActiveSheet.Paste
Else
Range("B5").End(xlDown).Offset(1, 0).Activate
ActiveSheet.Paste
End If
Sheets("Ordre").Activate
Application.CutCopyMode = False
End Sub
Para mayor ilustración y quizás es el factor influyente, es que al copiar hay filas vacías, si no se solicitan todos los artículos, y al enviar a la siguiente hoja, le indico que active la fila inmediatamente vacía, después de B5. ¿Será esto el problema?
Como haría entonces para que las celdas con los datos totalizadores de la orden de compra aparezcan en función del numero de items solicitados, ¿y no queden como celdas fijas?
Este es el procedimiento:
Gå_til_ordre()
Sheets("Varetabel"). Activate
Range("B4"). Activate
Do
If ActiveCell.Offset(0, 3) > 0 Then
Varenummer = ActiveCell.Value
Varenavn = ActiveCell.Offset(0, 1).Value
Stykpris = ActiveCell.Offset(0, 2).Value
Antal = ActiveCell.Offset(0, 3).Value
'Para calcular la orden de compra
Sheets("Ordre"). Activate
Range("B12"). Activate
Do
ActiveCell.Offset(1, 0). Activate
Loop Until ActiveCell.Value = ""
With ActiveCell
.Offset(0, 0) = Varenummer
.Offset(0, 1) = Varenavn
.Offset(0, 2) = Stykpris
.Offset(0, 3) = Antal
.Offset(0, 4) = Stykpris * Antal
End With
Sheets("Varetabel").Activate
End If
ActiveCell.Offset(1, 0).Activate
Loop Until ActiveCell.Value = ""
'Para sumar
Sheets("Ordre").Activate
With ActiveSheet
.Range("F38").Formula = "=Sum(F13:F34)"
.Range("B44").Formula = "=Sum(F38:F39)"
.Range("D44").Formula = "=Sum(F13:F34)*0.25"
.Range("F44").Formula = "=Sum(B44:D44)"
End With
End Sub
Vivo en Dinamarca, por ello algunas palabras en danés