Traspasos de datos de una hoja a otra en excel

Tengo una hoja de excel con una serie de datos sobre acciones, y quisiera que cuando les ponga fecha de venta se bararan de la hoja Acción y pasaran a otra hoja del mismo libro acciones vendidas, pero no encuentro la forma de hacerlo, si alguno puede ayudarme lo agradecería.

1 respuesta

Respuesta
1

Pon todo el siguiente código en los eventos de tu hoja "acción"

Actualizo en el código los nombres de las hojas y la columna "F" por la columna donde tienes la fecha de venta, en estas líneas:

Set rng = Intersect(Target, Range("F:F"))

Set sh = Sheets("acciones vendidas")
lr = sh.Range("F" & Rows.Count).End(3).Row + 1

---

Option Explicit
'
Dim numordenados As New Collection
'
Private Sub Worksheet_Change(ByVal Target As Range)
  Dim rng As Range, c As Range
  Dim i As Long, num As Long, lr As Long
  Dim sh As Worksheet
  '
  Application.ScreenUpdating = False
  Set rng = Intersect(Target, Range("F:F"))
  If Not rng Is Nothing Then
    For Each c In rng
      If c.Value <> "" Then
        Call Addnum(c.Row)
      End If
    Next
    '
    On Error GoTo salir
    Set sh = Sheets("acciones vendidas")
    lr = sh.Range("F" & Rows.Count).End(3).Row + 1
    For i = numordenados.Count To 1 Step -1
      num = numordenados(i)
      Rows(num).Copy sh.Range("A" & lr)
      lr = lr + 1
    Next
    For i = 1 To numordenados.Count
      num = numordenados(i)
      Application.EnableEvents = False
      Rows(num).Delete
    Next
  End If
  '
salir:
  Application.ScreenUpdating = True
  Application.EnableEvents = True
End Sub
'
Sub Addnum(n)
  Dim m As Long
  'Ordena números en una colección
  For m = 1 To numordenados.Count
    If numordenados(m) < n Then
      'si el número almacenado es mayor lo almacena antes
      numordenados.Add n, Before:=m
      Exit Sub
    End If
  Next
  numordenados.Add n 'si es el mayor de todos lo agrega al final
End Sub

---

Sigue las Instrucciones para poner la macro en los eventos de worksheet

  1. Abre tu libro de excel
  2. Para abrir Vba-macros y poder pegar la macro, Presiona Alt + F11
  3. Del lado izquierdo dice: VBAProject, abajo dale doble click a worksheet(tu hoja "accion")
  4. En el panel del lado derecho copia la macro

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas