Saltar al contenido

Seleccionar "x" fila y "x" rangos de la fila de una hoja y pegarlos en otra hoja


Recommended Posts

Hola a todos soy nuevo en este foro, este es mi problema tengo que crear la forma de que con un formulario el usuario introduzca en un TextBox numero de gafet y al dar clic al botón este busque y seleccione la fila donde encontró el dato y ciertos rangos sean copiados y pegados en otra hoja de Excel 2003 lo que yo hice fue crear dos hojas dentro de mi libro hoja1 se llama “bd” , hoja2 se llama “reporte”, en bd tengo una tabla con los campos

gafet nomina nombre apellido proyecto

en la hoja “reporte” se peguen gafet nomina nombre apellido , nombre y apellido juntos y la fecha y hora en cuanto caiga el dato.

Lo que yo hice fue una internas con su botón buscar este lo busca y muestra los campos que yo quier ver y cree un botón enviar el cual se envían los datos a otra tabla en otra hoja.

Este es el código:

' boton buscar

Private Sub CommandButton1_Click()

Dim id_gafet As Integer

Dim idBuscar As Integer

Dim fila As Integer

fila = 1

id_gafet = TextBoxBusca '''

Do While idBuscar <> id_gafet

fila = fila + 1

idBuscar = Range("A" & fila).Value

If idBuscar = Empty Then

MsgBox "No se encontro dato"

Exit Do

End If

Loop

Dim nom, ap As String

Dim num_gafet, num_nomina As Integer

nom = Range("C" & fila).Value

ap = Range("D" & fila).Value

TextBox2 = nom & " " & ap

TextBox3 = Range("A" & fila).Value

TextBox4 = Range("B" & fila).Value

TextBoxBusca.SetFocus

''''''''''''''''''''''''''''''''''''''''''

End Sub

' boton enviar

Private Sub CommandButton2_Click()

ActiveSheet.Protect DrawingObjects:=False, Contents:=False, Scenarios:=False

ActiveWorkbook.Protect Structure:=False, Windows:=False

Sheets("REPORTE").Activate

If TextBox2 = "" Or TextBox3 = "" Or TextBox4 = "" Then

MsgBox "Esta dejando campos requeridos vacion favor complete", vbExclamation, "REPORTE"

TextBox3.SetFocus

Else

Range("A" & Cells.Rows.Count).End(xlUp).Offset(1).Select

ActiveCell = TextBox3.Value

ActiveCell.Offset(0, 1) = TextBox4.Value

ActiveCell.Offset(0, 2) = TextBox2.Value

'ActiveCell.Offset(0, 3) = TextBox2.Value

MsgBox "Empleado ingresado exitosamente", vbInformation, "ServiCal"

'TextBox3 = ""

TextBox4 = ""

TextBox2 = ""

TextBox2.SetFocus

End If

' codigo para colocar la hora un la columna deseada

Dim x As Long, y As Long

With ActiveSheet

x = .Cells(.Rows.Count, "D").End(xlUp).Row + 1

y = .Cells(.Rows.Count, "A").End(xlUp).Row

If x <= y Then

.Range(.Cells(x, "D"), .Cells(y, "D")) = _

DateSerial(Year(Date), Month(Date), Day(Date))

End If

End With

' codigo para colocar hora automatica

Range("D1").Select

While ActiveCell <> ""

ActiveCell.Offset(0, 1).Select

While ActiveCell <> ""

ActiveCell.Offset(1, 0).Select

Wend

ActiveCell.Value = Format(Now, "hh:mm:ss")

ActiveCell.Offset(0, -1).Select

ActiveCell.Offset(1, 0).Select

Wend

Sheets("BD").Activate

End Sub

Private Sub TextBox2_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If KeyAscii < 47 Or KeyAscii > 57 Then KeyAscii = 0

End Sub

Private Sub TextBox3_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If KeyAscii < 45 Or KeyAscii > 57 Then KeyAscii = 0

End Sub

Private Sub TextBox4_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)

If KeyAscii < 47 Or KeyAscii > 57 Then KeyAscii = 0

End Sub

' boton para salir

Private Sub CommandButton3_Click()

End '--> Liquida TODAS las variables y/o similares de la memoria

Hide '--> Solo oculta el userform, mas no lo descarga de la memoria

Unload Me '--> Descarga el userform de la memoria

End Sub

Enlace a comentario
Compartir con otras webs

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

  • 96 ¿Te parecen útiles los tips de las funciones? (ver tema completo)

    1. 1. ¿Te parecen útiles los tips de las funciones?


      • No
      • Ni me he fijado en ellos

  • Ayúdanos a mejorar la comunidad

    • Donaciones recibidas este mes: 0.00 EUR
      Objetivo: 130.00 EUR
  • Archivos

  • Estadísticas de descargas

    • Archivos
      177
    • Comentarios
      90
    • Revisiones
      27

  • Crear macros Excel

  • Mensajes

    • Con el diseño así como lo tiene en su libro, una fórmula de BUSCARV con COINCIDIR debería ser de utilidad =C5*BUSCARV($C$1,Tabla1[#Todo],COINCIDIR($D5,Tabla1[#Encabezados],0)) Es con lo que participaría en su consulta. Lo que resta es definir que hacer si no encuentra la OT porque así como esta le devolvería error en ese caso, o si tiene condiciones que haya podido omitir también le afectarían el resultado.
    • He cambiado mi macro a este: Sub repetir() Set a = Sheets(ActiveSheet.Name) uf = a.Range("C" & Rows.Count).End(xlUp).Row 'ultima fila con datos ActiveCell.Select ActiveCell.Offset(1, 0).Select   'Application.OnTime Now + TimeValue("00:00:10"), "repetir", , True End If End Sub   Lo que no se es como detenerlo al llegar a la ultima fila con datos de la columna C. Muchas gracias
    • Buenas tardes a todos. Tengo un problema que preciso de vuestra ayuda.  Tengo que controlar los gastos de la oficina que trabajo y he de repartir unos gastos a % según una OT y unos tipos de gastos. Envío un archivo adjunto. Lo que necesito es que lo que aparece en la columna en amarillo lo haga automáticamente, teniendo en cuenta los datos de la tabla a la derecha. Por ejemplo, el primer gasto tiene una cuota de 1477 euros y teniendo en cuenta que es un gasto de tipo Común y que la OT es la 12810234, le corresponde un gasto de 605,57 euros ya que según la tabla de la derecha su % a imputar es de un 41%. ¿alguien me puede ayudar con la formula? He de añadir muchas más líneas y más hojas con el resto de OT y en el futuro cambiar más datos, así que necesito automatizarlo con una formula Excel. Gracias. Control de gastos.xlsx
    • Hola buenas tardes: Por favor me pueden ayudar a realizar lo siguiente. ejecutar una macro después de un tiempo, que recorra una columna a partir de la celda activa hacia abajo. Es una lista extensa, que filtro desde la columna B. y solo me muestra las filas que me interesan. ejemplo: Si mi celda activa es la C23 ejecutar la macro y baje una celda y repite la macro después de 20 segundos y lo vuelve hacer(Simpre bajando una celda), y que este se detenga hasta la ultima fila que este visible en el filtro. Ya que puedo tener muchos datos mas.   Gracias   Prueba filtro y avance.xlsm
    • Muchísimas gracias @Victor7 es realmente increíble. Ahora toca aprender un poco sobre como esta montada esta formula,  pero me ha encantado. Es justo lo que necesitaba. Solo he notado algún fallo cuando los datos no están bien introducidos, por ejemplo hay registro en el punto de control 2 y no en el tres, pero eso en teoría no debería pasar, pero ya sabes como es esto jajaj.  Muchas gracias de verdad. Un saludo
  • Visualizado recientemente

    • No hay usuarios registrado para ver esta página.
×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.