Macro para copiar debajo de última fila de otra hoja con condicionales

En el libro hay dos hojas: Hoja1 y Hoja2. Necesito que una macro, la cual se ejecuta desde la Hoja2 mediante un botón, copie valores de la Hoja2 en la Hoja1 de acuerdo a los siguientes parámetros:

  • Hoja2 A6:A7 se copia en la primera celda vacía de Hoja1 C12:C
  • Hoja2 B6:B7 se copia en Hoja1 CB de la misma fila en que se copiaron los datos anteriores
  • Hoja2 C6:C7 se copia en Hoja1 CC de la misma fila...
  • Hoja2 D6:D7 se copia en Hoja1 CD de la misma fila...

También, al ejecutarse la macro, debe alertarse ante los siguientes condicionales:

  • Si Hoja2 A5 = 0, entonces no se realiza ninguna copia y se alerta mediante MsgBox con un texto.
  • Si Hoja2 A5 = ARS, entonces no se realiza ninguna copia y se alerta mediante MsgBox con un texto.
  • Si Hoja2 A5 = USDARS, entonces se realiza la copia, pero igulamente se alerta mediante MsgBox con un texto.
  • Si Hoja2 A5 = USD, entonces se realiza la copia sin alertar nada.

1 Respuesta

Respuesta
2

Prueba la siguiente:

Sub CopiarDatos()
  Dim sh1 As Worksheet, sh2 As Worksheet, lr As Long
  '
  Set sh1 = Sheets("Hoja1")
  Set sh2 = Sheets("Hoja2")
  Select Case sh2.Range("A5").Value
    Case 0
      MsgBox "no se realiza ninguna copia: Valor 0"
      Exit Sub
    Case "ARS"
      MsgBox "no se realiza ninguna copia: Valor ARS"
      Exit Sub
    Case "USDARS"
      MsgBox "Valor USDARS"
  End Select
  '
  lr = sh1.Range("C" & Rows.Count).End(3).Row + 1
  sh1.Range("C" & lr).Resize(2).Value = sh2.Range("A6:A7").Value
  sh1.Range("CB" & lr).Resize(2, 3).Value = sh2.Range("B6:D7").Value
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas