viernes, 5 de agosto de 2011

COMO COPIAR Y PEGAR EN EXCEL CON VISUAL BASIC - VBA


  1. Escriba este código en el cuadro de fórmula. ("A1") es la celda que desea duplicar. ("B1") es el lugar en el que desea pegar la información.

    Range ("A1"). Select
    Selection.Copy
    Range ("B1"). Select
    ActiveSheet.Paste

    Escriba este código en el cuadro de fórmula para copiar y pegar toda una columna.

  2. Range ("A: A"). Select
    Selection.Copy
    Range ("B: B"). Select
    ActiveSheet.Paste

    Escriba este código copiar y pegar toda la fila 1 a la 2. 
  3. Range ("1:1"). Select
    Selection.Copy
    Range ("2:2"). Select
    ActiveSheet.Paste

10 comentarios:

  1. muy util! muchas gracias

    ResponderEliminar
  2. tengo una duda, cuando realiza la funcion paste lo hace 3 veces, dejo programa fuente, gracias de antemano.
    Private Sub Auto_Open()
    Dim hoja As Worksheet
    Dim celda As Characters

    Sheets("Hoja1").Activate
    ActiveSheet.Cells(1, 4).Select
    If ActiveCell = 1 Then
    ActiveSheet.Range("A1:C1").Copy
    Sheets("Hoja2").Select

    For Each hoja In Sheets

    Range("A1").Select

    Do While Not IsEmpty(ActiveCell)

    ActiveCell.Offset(1, 0).Select
    Loop

    ActiveCell.Select
    ActiveSheet.Paste

    Next hoja

    Else

    End If

    ResponderEliminar
  3. Hola,
    ¿Cómo hago para copiar un rango de celdas situada en otro libro, dependiendo de una condición?
    Gracias

    ResponderEliminar
    Respuestas
    1. Aclaro. Estoy en el libro "libro1", y quiero una macro que, si se cumple determinada condición, me copie las celdas del rango A1:B20 que están en el "libro2"

      Eliminar
  4. Nada nuevo, todo lo que escribes esta en la ayuda de visual y lo que has hecho es trascribir, esto no me ayudo en nada

    ResponderEliminar
  5. como puedo buscar una fila y cuando la encuentre que copie toda la fila en otra hoja

    ResponderEliminar
  6. Hola, tengo la siguiente macro que hice para pasar datos de una hoja de captura VBA a una hoja de datos, pero resulta que las celdas d31, d32 y d33 son vinculos y me los pega en la hoja de datos como datos, como puedo hacer para que pegue los vinculos.

    Gracias.


    Sub Captura_Datos()
    'Declaración de variables
    '
    Dim strTitulo As String
    Dim Continuar As String
    Dim TransRowRng As Range
    Dim NewRow As Integer
    Dim Limpiar As String
    '
    strTitulo = "Atención Telefónica"
    '
    Continuar = MsgBox("Dar de alta los datos?", vbYesNo + vbExclamation, strTitulo)
    If Continuar = vbNo Then Exit Sub
    '
    Set TransRowRng = ThisWorkbook.Worksheets("Datos").Cells(1, 1).CurrentRegion
    NewRow = TransRowRng.Rows.Count + 1
    With ThisWorkbook.Worksheets("Datos")
    .Cells(NewRow, 1).Value = ThisWorkbook.Sheets(1).Range("d5")
    .Cells(NewRow, 2).Value = ThisWorkbook.Sheets(1).Range("d6")
    .Cells(NewRow, 3).Value = ThisWorkbook.Sheets(1).Range("d7")
    .Cells(NewRow, 4).Value = ThisWorkbook.Sheets(1).Range("d8")
    .Cells(NewRow, 5).Value = ThisWorkbook.Sheets(1).Range("d9")
    .Cells(NewRow, 6).Value = ThisWorkbook.Sheets(1).Range("d10")
    .Cells(NewRow, 7).Value = ThisWorkbook.Sheets(1).Range("d11")
    .Cells(NewRow, 8).Value = ThisWorkbook.Sheets(1).Range("d12")
    .Cells(NewRow, 9).Value = ThisWorkbook.Sheets(1).Range("d13")
    .Cells(NewRow, 10).Value = ThisWorkbook.Sheets(1).Range("d14")
    .Cells(NewRow, 11).Value = ThisWorkbook.Sheets(1).Range("d15")
    .Cells(NewRow, 12).Value = ThisWorkbook.Sheets(1).Range("d16")
    .Cells(NewRow, 13).Value = ThisWorkbook.Sheets(1).Range("d17")
    .Cells(NewRow, 14).Value = ThisWorkbook.Sheets(1).Range("d18")
    .Cells(NewRow, 15).Value = ThisWorkbook.Sheets(1).Range("d19")
    .Cells(NewRow, 16).Value = ThisWorkbook.Sheets(1).Range("d20")
    .Cells(NewRow, 17).Value = ThisWorkbook.Sheets(1).Range("d21")
    .Cells(NewRow, 18).Value = ThisWorkbook.Sheets(1).Range("d22")
    .Cells(NewRow, 19).Value = ThisWorkbook.Sheets(1).Range("d23")
    .Cells(NewRow, 20).Value = ThisWorkbook.Sheets(1).Range("d24")
    .Cells(NewRow, 21).Value = ThisWorkbook.Sheets(1).Range("d25")
    .Cells(NewRow, 22).Value = ThisWorkbook.Sheets(1).Range("d26")
    .Cells(NewRow, 23).Value = ThisWorkbook.Sheets(1).Range("d27")
    .Cells(NewRow, 24).Value = ThisWorkbook.Sheets(1).Range("d28")
    .Cells(NewRow, 25).Value = ThisWorkbook.Sheets(1).Range("d29")
    .Cells(NewRow, 26).Value = ThisWorkbook.Sheets(1).Range("d30")
    .Cells(NewRow, 27).Value = ThisWorkbook.Sheets(1).Range("d31")
    .Cells(NewRow, 28).Value = ThisWorkbook.Sheets(1).Range("d32")
    .Cells(NewRow, 29).Value = ThisWorkbook.Sheets(1).Range("d33")



    ResponderEliminar
  7. Creo que no sacan nada con preguntar si el personaje que creó este blog lo hizo el 2011 y no responde a ninguna de sus preguntas, con respecto al que dice que no sirve de nada pues por algo llegamos a esta página, lo más seguro porque andábamos buscando precisamente esto.
    Saludos a todos

    ResponderEliminar
  8. Y si lo que quiero es solo copiar una celda con la condición que sea en un rango de tiempo (intervalos de una hr) a otro archivo??? Alguien podría ayudarme????

    ResponderEliminar
  9. Hola podrían decirme cómo tendría que escribir el código de un boton para que me copie una fila en otra fila de la misma hoja excel. Y que cada vez que se le de al boton copiar me lo copie en la siguiente fila a la escrita.

    Muchas gracias

    ResponderEliminar