Como copiar cortar y pegar en VBA





Cuando nos iniciamos en el mundo de las macros de VBA, nos damos cuenta que algo básico es saber como se copia y pegan datos de una celda a otra, un rango a otro, una celda o otra de otro libro, etc., en definitiva como se copian, corta y pegan datos con VBA de un lugar a otro; aunque también es muy útil saber seleccionar o referenciar libros, hojas, celdas, rangos, filas, columnas;  en este post voy a mostrar algunas de las formas que existen de copiar datos con macros o las distintas maneras de copiar y pegar con VBA.

Es preciso que antes de introducirse más en el tema de copiado y pegado de datos sepas o manejes bien el tema de seleccionar o referenciar celdas en VBA, ya que copiar y pegar datos van de la mano con el tema de saber como referenciar o seleccionar una celda, rango de datos, una hoja, un libro, por lo tanto es preciso saber como se selecciona o hace referencia  a cierta dirección de copiado y pegado de datos.

Antes de seguir recomiendo leer un excelente libro sobre Excel que te ayudará operar las planillas u hojas de cálculo, haz click acá, si quieres aprender sobre Excel, en inglés, entonces debes hacer click here. Si lo que necesitas es aprender o profundizar sobre la programación de macros con VBA este es unos de los mejores cursos on line que he visto en internet.

  


Al fnal de este post existe un link del cual podrás bajar el archivo de ejemplo, examinarlo, estudiarlo y modificarlo de acuerdo a nuestras necesidades; el ejemplo consta de diez macros distintas que establecen como se copia y pegan distintos datos de la hoja de cálculo de Excel.

El comando que se utiliza para copiar normalmente es Copy, para cortar Cut y para pegar Paste, si se quiere pegar todo se utiliza .PasteSpecial xlAll, si se requiere pegar el formato se utiliza .PasteSpecial xlFormats; si se quieren pegar los números solamente con independencia de formatos se utiliza .PasteSpecial xlValues.

Si queremos desabilitar el modo cortar y copiar utilizaremos el siguiente código application.cutcopymode=false

Las distintas formas en que se pueden pegar los datos en forma especial son:


Range("F5").PasteSpecial xlPasteAll
Range("F5").PasteSpecial xlPasteAllExceptBorders
Range("F5").PasteSpecial xlPasteAllMergingConditionalFormats
Range("F5").PasteSpecial xlPasteAllUsingSourceTheme
Range("F5").PasteSpecial xlPasteColumnWidths
Range("F5").PasteSpecial xlPasteComments
Range("F5").PasteSpecial xlPasteFormats
Range("F5").PasteSpecial xlPasteFormulas
Range("F5").PasteSpecial xlPasteFormulasAndNumberFormats
Range("F5").PasteSpecial xlPasteValidation
Range("F5").PasteSpecial xlPasteValues
Range("F5").PasteSpecial xlPasteValuesAndNumberFormats

El vídeo que sigue muestra una explicación más detallada y gráfica de la macro presentada, recomiendo observar para una más fácil comprensión de la macro; suscribe a nuestra web desde la parte superior derecha de la página ingresando tu mail y a nuestro canal de You Tube para recibir en tu correo vídeos explicativos sobre macros interesantes, como  por ejemplo formulario que crea un listado de todas las hojas para poder luego seleccionarlasbuscar en listbox mientras escribes en textboxordenar hojas libro excel por su nombreconectar Excel con Access y muchos ejemplos más.





Código que se inserta en un módulo




Sub copia0()
'Copia la celda B2 en la celda F2 usando cell
Cells(2, 6) = Cells(2, 2)
End Sub

Sub copia01()
'Copia la celda B2 en la celda F3 usando cell
Cells(3, "F") = Cells(2, "B")
End Sub

Sub ccopia02()
'Copia la celda B2 en la celda F4 usando range
Range("F4") = Range("B2")
End Sub

Sub ccopia03()
'Copia la celda A2:C2 en la celda F5 usando range copia todo
Range("A2:C2").Copy
Range("F5").PasteSpecial xlPasteAll
End Sub

Sub ccopia04()
'Copia la celda B2:B2 en la celda F6 usando range copia formato
Range("A3:C3").Copy
Range("F6").PasteSpecial xlFormats
End Sub

Sub ccopia05()
'Copia la celda B2:B2 en la celda F6 usando range copia formato
Range("A3:C3").Copy
Range("F7").PasteSpecial xlPasteValues
End Sub

Sub ccopia06()
'Copia toda la columna B en la columna I
Range("B:B").Copy
ActiveSheet.Paste Destination:=ActiveSheet.Range("I1")
End Sub

Sub ccopia07()
'Otra forma de copiar datos
Range(Cells(2, "A"), Cells(2, "C")).Copy Destination:=Cells(7, "F")
End Sub

Sub ccopia08()
'Corta la columna B entera y la pega en la columna G reemplazando los datos de la columna G
Range("B:B").Cut
ActiveSheet.Paste Destination:=ActiveSheet.Range("G1")
End Sub

Sub ccopia09()
'Corta la columna B entera y la pega en la columna F insertando las columnas copiadas
Range("C:C").Cut
Columns("H:H").Insert Shift:=xlToRight
End Sub

Sub vuelve()
Range("F:G").Copy
ActiveSheet.Paste Destination:=ActiveSheet.Range("B1")
Range("E1:I20").Clear
End Sub

Sub copia1()
Worksheets("Hoja1").Range("A5").Copy Worksheets("Hoja2").Range("A5")
End Sub

Sub copia2 ()
Sheets("Hoja1").Range("A5").Copy Sheets("Hoja2").Range("A5")
End Sub



Si te fue de utilidad puedes INVITARME UN CAFÉ y de esta manera ayudar a seguir manteniendo la página, CLICK para descargar en ejemplo en forma gratuita.



If this post was helpful INVITE ME A COFFEE and so help keep up the page, CLICK to download free example.


Si te gustó por favor compártelo con tus amigos
If you liked please share it with your friends