Necesito copiar con visual basic en excel

Tengo un libro de excel con 2845 filas de información de la columna A a la columna H, yo necesito copiar la fila que yo especifique a la hoja2, fila1, columna B... Alguien me podía ayudar...

1 Respuesta

Respuesta

.13/09/16

Buenos días, Iván

Aquí te envío la rutina que hace exactamente lo que solicitas. Sin embargo, le dejé parámetros por si quieres variar los rangos de copia o el destino del pegado.

Sub PasaFila()
'---- Variables modificables:
'IVAN: Indica aquí las variables que necesitas
FilaOrigen = ActiveCell.Row ' esta  instrucción considera la fila de la celda seleccionada. O puedes colocar un número aquí
IniCol = "A" 'inicio rango a copiar
FinCol = "H" 'fin rango a copiar
HojaDest = "Hoja2" 'Hoja donde pegará la fila copiada
CeldaDest = "B1" 'Celda donde pegará la fila copiada
'---- fin Variables
'
'---- inicio de rutina:  
Range(IniCol & FilaOrigen & " : " & FinCol & FilaOrigen).Copy Sheets(HojaDest).Range(CeldaDest)
Application.CutCopyMode = False
End Sub

Está preparada para copiar la fila de la celda que tengas seleccionada al momento de ejecutar la macro.

Pero si quisieras que siempre fuese una fila determinada, reemplaza la expresión ActiveCell. Row por el número de tal fila que desees.

Bien, aquella rutina copia y pega lo que haya en el rango indicado. Pero si hubiera fórmulas en él, tal vez prefieras que lleve sólo los valores. Si así fuese tu caso, usa esta variante:

Sub PasaFila()
'---- Variables modificables:
'IVAN: Indica aquí las variables que necesitas
FilaOrigen = ActiveCell.Row ' esta  instrucción considera la fila de la celda seleccionada. O puedes colocar un número aquí
IniCol = "A" 'inicio rango a copiar
FinCol = "H" 'fin rango a copiar
HojaDest = "Hoja2" 'Hoja donde pegará la fila copiada
CeldaDest = "B1" 'Celda donde pegará la fila copiada
'---- fin Variables
'
'---- inicio de rutina:  
Range(IniCol & FilaOrigen & " : " & FinCol & FilaOrigen).Copy
Sheets(HojaDest).Range(CeldaDest).PasteSpecial xlValues
Sheets(HojaDest).Range(CeldaDest).PasteSpecial xlFormats
Application.CutCopyMode = False
End Sub

Esta macro también actúa -en la hoja activa- en la fila de la celda seleccionada. Por ello, tal vez quieras asignarle un atajo a esta macro de forma tal que puedas utilizarla más fácilmente en cada hoja.

Para lo del atajo, haz:

 "Vista" | "Macros" (o con atajo: Alt + F8)

Selecciona allí (un sólo click sobre) la nueva rutina ingresada y presiona el botón "Opciones". En la pantalla siguiente ingresa una letra a la que quieres asociar la macro. Por supuesto evita aquellas que ya están siendo utilizadas por MS Excel como atajo (v.g. Ctrl + C, Ctrl + X, etc)

 Luego de aceptar, cuando presiones Ctrl más la letra indicada, la macro se ejecutará instantáneamente. Si fuese una letra que ya usa MS Excel, tendrás que presionar Ctrl + [Shift o tecla para Mayúsculas] + [Letra asignada]

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas