Opciones para almacenar información

Sub Opcion1()
'COPIAR INFORMACIÓN LINEAL DE UN RANGO Y
'ALMACENAR EN OTRA HOJA DENTRO DE UNA TABLA -  OPCIÓN CORTA V1



Dim oldRows&, Rng As Range, mFila As Range
Application.ScreenUpdating = False

Set Rng = Range([B2].End(xlDown), [B2].End(xlToRight).Offset(0))
With Hoja2.[a2].ListObject
  oldRows = .Range.Rows.Count
  If .ListRows.Count = 0 Then oldRows = oldRows - 1
  Set mFila = .ListRows.Add.Range
  .Resize .Range.Resize(oldRows + Rng.Rows.Count)
  mFila.Resize(Rng.Rows.Count) = Rng.Value
End With
Application.ScreenUpdating = True
MsgBox "Se agregó información a la data", vbOKOnly + vbInformation, "Excel Consultor" 'Muestra un aviso ejecutada la macro.


'Información:
'El código asume que la celda superior izquierda del rango de datos "de origen" está en la celda [B2]
'Si este rango base crece (en filas o en columnas) no se tiene que hacer nada.
'La celda superior izquierda de tu ListObject (TABLA) es [A2].
End Sub


Sub Opcion2()
'COPIAR INFORMACIÓN LINEAL Y ALMACENAR EN OTRA HOJA, EN LA MISMA POSICIÓN Y CUMPLIENDO UNA CONDICIÓN.



Application.ScreenUpdating = False ' |(Evita el parpadeo de la pantalla)

'inicializo la variable j
j = 2

    'comienzo el bucle
    For i = 2 To 19
        
        'activo la hoja donde están mis datos
        Sheets("Hoja1").Activate
            
            'compruebo que el valor de la fecha es mayor que 30
            If Cells(i, "A").Value = "x" Then
                'copio la fila entera
                'Set Rng = Range([B2].End(xlDown), [B2].End(xlToRight).Offset(0))
               Range(Cells(i, "B"), Cells(i, "L")).Copy
 'selecciono la hoja donde quiero pegar y después la celda
                Sheets("Data").Activate
                    Cells(j, "A").PasteSpecial Paste:=xlPasteValues
                'pego la fila que hemos copiado
                'aumento la variable j para que vaya a la siguiente fila de la hoja filtros
                'cuando encuentre una nueva fila que cumple con la condición de edad
                j = j + 1
            End If
    
    Next
Application.CutCopyMode = False '|Desactiva el modo copiar
MsgBox "Se agregó información a la data", vbOKOnly + vbInformation, "Excel Consultor" 'Muestra un aviso ejecutada la macro.

End Sub


Sub Opcion3()
'COPIAR INFORMACIÓN LINEAL Y ALMACENAR EN OTRA HOJA DENTRO DE UNA TABLA - OPCIÓN CORTA V2


Application.ScreenUpdating = False ' |(Evita el parpadeo de la pantalla)

Range("B2:L19").Select '=> Selecciona el rango a copiar.

Selection.Copy '=> Copia el rango.

Sheets("data").Select '=> Selecciona la hoja donde se pegará la información.

Range("A1").Select '=> Selecciona el título de la tabla donde se almacenará la información.

Selection.End(xlDown).Select '=> Selecciona la última celda con datos de la tabla.

ActiveCell.Offset(0, 0).Activate '=> Selecciona la celda que se encuentra debajo de la celda activa.

Selection.PasteSpecial Paste:=xlValues, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=False 'Pega la información.

Sheets("Hoja1").Select '=> Regresa a la hoja de registro.

Range("a1").Select '=> Selecciona una celda en particular de la hoja de registro.

Application.CutCopyMode = False '|Desactiva el modo copiar


MsgBox "Se agregó información a la data", vbOKOnly + vbInformation, "Excel Consultor" 'Muestra un aviso ejecutada la macro.



'Nota:
'Si la hoja de destino contiene una tabla donde se almacenará la información, se deberá cambiar el :
'ActiveCell.Offset(1, 0).Activate
'Por:
'ActiveCell.Offset(0, 0).Activate

End Sub


Sub Opcion4()
'COPIAR INFORMACIÓN LINEAL Y ALMACENAR EN OTRA HOJA CUMPLIENDO CONDICIÓN DEFINIDA DE UNA FILA


  
Dim NombreHoja As String
Dim HojaDestino As Range
Dim NuevaFila As Integer

Application.ScreenUpdating = False ' |(Evita el parpadeo de la pantalla)


    'comienzo el bucle
    For i = 2 To 19
        
        'activo la hoja donde están mis datos
        Sheets("Hoja1").Activate
            
            'compruebo que el valor de la fecha es mayor que 30
            If Cells(i, "A").Value = "x" Then
                'copio la fila entera
                 Range(Cells(i, "B"), Cells(i, "L")).Copy
 'selecciono la hoja donde quiero pegar y después la celda
 
  NombreHoja = "Data"
    Set HojaDestino = ThisWorkbook.Sheets(NombreHoja).Range("a1").CurrentRegion
    NuevaFila = HojaDestino.Rows.Count + 1
 
                Sheets("Data").Activate
                    Cells(NuevaFila, "A").PasteSpecial Paste:=xlPasteValues 'pego la fila que hemos copiado
                End If
    
    Next
Application.CutCopyMode = False '|Desactiva el modo copiar
MsgBox "Se agregó información a la data", vbOKOnly + vbInformation, "Excel Consultor" 'Muestra un aviso ejecutada la macro.


End Sub



Sub Opcion5()
'COPIAR INFORMACIÓN NO LINEAL Y ALMACENAR EN UNA FILA DENTRO  DE UNA TABLA EN OTRA HOJA - OPCION LARGA


  
    Dim NombreHoja As String
    Dim HojaDestino As Range
    Dim NuevaFila As Integer
    
    Dim Pregunta As Integer

  'CONDICIONALES PREVIAS AL REGISTRO:
  'If Range("c1").Value = "" Or Range("c2").Value = "" Or Range("h1").Value = "" Then
   ' MsgBox "Debe completar la información de Red, Lugar y Representante", , "Excel Consultor": Exit Sub
    
    'End If
Pregunta = MsgBox("¿Estás seguro de registrar la información?", vbOKCancel, "Excel Consultor")
    If Pregunta = 2 Then Exit Sub
        
    NombreHoja = "Data"
    Set HojaDestino = ThisWorkbook.Sheets(NombreHoja).Range("A1").CurrentRegion
    NuevaFila = HojaDestino.Rows.Count + 1
   
    
    With ThisWorkbook.Sheets(NombreHoja)
        
        .Cells(NuevaFila, 1).Value = Range("B2").Value
        .Cells(NuevaFila, 2).Value = Range("C2").Value
        .Cells(NuevaFila, 3).Value = Range("D2").Value
        .Cells(NuevaFila, 4).Value = Range("E2").Value
        .Cells(NuevaFila, 5).Value = Range("F2").Value
        .Cells(NuevaFila, 6).Value = Range("G2").Value
        .Cells(NuevaFila, 7).Value = Range("H2").Value
        .Cells(NuevaFila, 8).Value = Range("I2").Value
        .Cells(NuevaFila, 9).Value = Range("J2").Value
        .Cells(NuevaFila, 10).Value = Range("K2").Value
        .Cells(NuevaFila, 11).Value = Range("L2").Value
        
    End With
  
    MsgBox "Registro Exitoso.", vbInformation, "Excel Consultor"

End



End Sub




Sub Opcion6()
'COPIAR INFORMACIÓN NO LINEAL Y ALMACENAR EN VARIAS FILAS Y COLUMNAS DENTRO  DE UNA TABLA EN OTRA HOJA - OPCION LARGA

  
Dim Pregunta As Integer


Pregunta = MsgBox("¿Deseas registrar la Venta?", vbOKCancel, "Excel Consultor")
    If Pregunta = 2 Then MsgBox "Se canceló la ejecución", , "Excel Consultor": Exit Sub
    
    'Se puede usar este botón para ejecutar macros
    'cuya ejecución dependerá si se presiona el botón aceptar.
    
'CONDICIONALES PREVIAS AL REGISTRO:
'If Range("G4").Value = "" Or Range("C5").Value = "" Or Range("B9").Value = "" Or Range("G6").Value = "" Or Range("c32").Value = "" Then MsgBox "FALTA DATOS"
'If Range("G4").Value = "" Or Range("C5").Value = "" Or Range("B9").Value = "" Or Range("G6").Value = "" Or Range("c32").Value = "" Then Exit Sub

With Sheets("DATA").Range("a65536").End(xlUp)

.Offset(1, 0) = Range("B2").Value
.Offset(2, 0) = Range("B3").Value
.Offset(3, 0) = Range("B4").Value
.Offset(4, 0) = Range("B5").Value
.Offset(5, 0) = Range("B6").Value
.Offset(6, 0) = Range("B7").Value
.Offset(7, 0) = Range("B8").Value
.Offset(8, 0) = Range("B9").Value

.Offset(1, 1) = Range("C2").Value
.Offset(2, 1) = Range("C3").Value
.Offset(3, 1) = Range("C4").Value
.Offset(4, 1) = Range("C5").Value
.Offset(5, 1) = Range("C6").Value
.Offset(6, 1) = Range("C7").Value
.Offset(7, 1) = Range("C8").Value
.Offset(8, 1) = Range("C9").Value
MsgBox "Se registró exitosamente", vbInformation, "Excel Consultor"
 Range("G4").Select
End With

End Sub


Sub Opcion7()
'METODO RÁPIDO PARA MILES DE FILAS
'COPIAR INFORMACIÓN DE FILAS Y ALMACENAR EN OTRA HOJA CUMPLIENDO CONDICIÓN 
'ESPECÍFICA SEGÚN EL CONTENIDO DE LA CELDA DE LA FILA

Dim ORDEN  As String
Dim cate  As String
Dim FECHA As String
Dim IMPORTE As String

Dim ultimafila As Long
Dim ultimafilaAux As Long
Dim contador As Long

Dim palabra As String

'palabra = Sheets("HojaInicial").Cells(3, 3)
'palabra = "Excel"

ultimafila = Sheets("HojaInicial").Range("d" & Rows.Count).End(xlUp).Row

If ultimafila < 3 Then
Exit Sub
End If


Dim t0, t1 As Variant
t0 = Format(Now, "hh:mm:ss")


Call ControlaEntrada


For contador = 4 To ultimafila

'If Sheets("HojaInicial").Cells(contador, 3) = palabra Then
If Sheets("HojaInicial").Cells(contador, 11) > 0 Then

ORDEN = Sheets("HojaInicial").Cells(contador, 4)
cate = "Evento"
FECHA = Sheets("HojaInicial").Cells(contador, 6)
IMPORTE = Sheets("HojaInicial").Cells(contador, 10)

'Hoja de destino:
ultimafilaAux = Sheets("HojaDestino").Range("d" & Rows.Count).End(xlUp).Row
Sheets("HojaDestino").Cells(ultimafilaAux + 1, 4) = ORDEN
Sheets("HojaDestino").Cells(ultimafilaAux + 1, 5) = cate
Sheets("HojaDestino").Cells(ultimafilaAux + 1, 6) = FECHA
Sheets("HojaDestino").Cells(ultimafilaAux + 1, 11) = IMPORTE

End If
Next contador

ultimafilaAux = Sheets("HojaDestino").Range("b" & Rows.Count).End(xlUp).Row
Call ControlaSalida
t1 = Format(Now, "hh:mm:ss")
tiempo = Format(TimeValue(t1) - TimeValue(t0), "hh:mm:ss")
MsgBox "Se procesaron todos los registros en: " & Chr(13) & tiempo & Chr(13) & "hh:mm:ss", vbOKOnly + vbInformation, "Excel Consultor"    'Muestra un aviso ejecutada la macro.



End Sub

...
..
.