Clases de Excel.
Enviado por Ensa05 • 20 de Marzo de 2018 • 1.062 Palabras (5 Páginas) • 312 Visitas
...
'
Range("A10:N18").Select
Selection.Copy
Sheets("regvtas").Select
Range("A1").Select
Selection.End(xlDown).Select
Range("A2").Select
Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
Application.CutCopyMode = False
Selection.Replace What:="", Replacement:="&", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False
Selection.End(xlDown).Select
Range("A11").Select
End Sub
Ejecute paso a paso la macro para ver su funcionamiento. Pulse varias veces la tecla F8.
Observamos que existe problemas cuando la base de datos está vacía al darle ctrl + Flecha abajo se va a la celda A65536 y ese no es lo que queremos y en caso que no estuviera vacía siempre va a ir a la celda “A2” y pegar los datos de la factura. Para solucionar esto vamos a hacer dos cosas: Grabar un movimiento relativo y aplicar un condicional de estructura If.
MACRO PARA GRABAR UN MOVIMIENTO RELATIVO
1. Escoja la Hoja Inventarios y pulse la celda “A1”. Active el Grabador de macros, (Grabar Macros) en el nombre de la macro escriba, sin espacios, MvtoRelativo, en la opción guardar macro escoja en este libro y pulse aceptar.
2. En la Barra de Herramientas de Visual Basic pulse el botón Referencia Relativa. Cuando se activa este botón, el grabador realiza las selecciones de celdas de forma relativa a la selección original. Queremos grabar la acción de desplazarse hasta el final de la base de datos y que corra una celda hacia abajo
3. Ctrl + FLECHA ABAJO, para ir al final de la base de datos
4 Pulse FLECHA ABAJO para grabar un movimiento Relativo.
5. Pulse el botón referencia relativa para desactivarlo y después pulse el botón detener grabación.
Active el botón Ejecutar Macro en la barra de herramientas de Visual Basic y en nombre de la macro escoja MvtoRelativo y pulse modificar. La Macro debe tener más o menos la siguiente estructura.
Sub MvtoRelativo ()
' MvtoRelativo Macro
' Macro grabada el 02/12/03 por JOSE LUIS PERDOMO DITTA
' Para ir al final de una base de datos e incluir un movimiento relativo,
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
End Sub
ESTRUCTURA IF
Esta es una estructura de programación de Visual Basic y se utiliza como condional
If (si) Tal cosa, Then (entonces)
Esta cosa Else (sino).
Esta otra cosa
End If
Vamos a incluir esta estructura en la macro RegVtas en la línea 5 después de Range("A1").Select. Escriba
If Range("A2") = "" Then
ActiveCell.Offset(1, 0).Range("A1").Select
Else
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select}
End If
MACRO PARA LIMPIAR LA BASE DE DATOS DE VENTAS
1. Active el Grabador de macros, (Grabar Macros) en el nombre de la macro escriba, sin espacios, LimpiarRegVtas, en la opción guardar macro escoja en este libro y pulse aceptar.
Sub regvtas()
' regvtas Macro
' Macro grabada el 02/12/03 por JOSE LUIS PERDOMO DITTA
' copia los datos de la factura en una hoja denominada regvtas y Crea un movimiento relativo y va al final de la columna y pega en forma especial valores
Sheets("Factura").Select
Range("A10:n18").Select
Selection.Copy
Sheets("REGVTAS").Select
Range("A1").Select
If Range("A2") = "" Then
ActiveCell.Offset(1, 0).Range("A1").Select
Else
Selection.End(xlDown).Select
ActiveCell.Offset(1, 0).Range("A1").Select
End If
Selection.PasteSpecial Paste:=xlValues, _
Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False
' Reemplaza los espacios vacios por "&"
Selection.Replace What:="", Replacement:="&", _
LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False
Cells.Replace What:="", _
Replacement:="&", LookAt:=xlPart, SearchOrder:= _
xlByRows, MatchCase:=False
...