Insertar fila con unamacro

Expertos necesito una ayuda. Tengo un formulario donde capturo en textbox el documento, nombre y departamento de un empleado. Lo necesito almacenar en una hoja de excel que tiene la siguiente estructura.

Fila 1 columna a y b : combinada el nombre del departamento

Fila 2 hasta fila 20 columna a : documento columna b nombre

Fila 21 fila en blanco

Fila 22 columna a y b combinada y otro nombre de departamento

Debajo documento y nombre.

Y asi sucesivamente con 12 departamentos mas

Lo que quiero es que al dar enter en el botón de registrar en el formulario vaya y busque a que departamento pertenece e inserte una fila y coloque el documento y nombre en esa fila nueva.

1 respuesta

Respuesta
2

Suponiendo que se captura el depto en un TextBxo1, la rutina del botón debe contemplar estas instrucciones:

Select Case Textbox1
Case is = "Bogotá"
fila = 2
Case is "Guayaquil"
fila = 23
'el resto de los deptos
End Select

Aquí estoy contemplando que la fila se inserta al inicio de cada grupo, por eso las filas son 2, 23 y así. Sino indicarás la última de cada rango.

Para insertar una fila, la instrucción es:

Range("A" & fila).EntireRow.Insert

Elsa muchas gracias por su tiempo, funciona para insertar las filas, pero cuando inserto de los primeros, al final las filas se van moviendo, y cuando inserto de los departamentos de abajo queda por encima del titulo porque ya no es en la fila 23 sino puede quevaya en la 25.

Y que pena después de insertar la fila como le asigno los valores de la columna a y b a la nueva fila.

Confirma x favor si vas a insertar las filas al inicio de cada depto o al final de cada depto...

Sdos

Elsa

Ytambién aclara qué dato se puede utilizar para ubicar cada nuevo depto... un título en alguna celda... algo que Excel pueda saber que es el nuevo grupo.

Sdos!

Elsa me gustaría que fuera al fina de cada departamento que inserte la fila, efectivamente hay un titulo que esta combinado en la columna a y b. ejemplo el primer departamento esta en la fila 1 el segundo departamento en la fila 22, y asi sucesivamente.

Gracias por su tiempo. Una ultima cosa como asigno el valor de textbo2 y textbox3 a la celda que inserte.

gracias

Enviame la hoja o dejame un correo para que te la solicite porque no me estás aclarando lo que se necesita para la macro: 'reconocer' si cierta fila tiene un dato o un título de algún depto.

Imagina esta situación: tenemos que recorrer una col (generalmente la A) y al 'reconocer' que su contenido corresponde a otro depto, insertar una fila.

Entonces reitero: ¿Cómo reconocer que es otro depto? Quizás haya algún dato que los diferencia, un cód o un título o ALGO ... ¿se entiende?

Sdos!

A B

CONTABILIDAD (CELDA COMBINADA A YB)

1001 PEDRO

1002 JOSE

1003 ELSA

(FILA EN BLANCO)

SISTEMAS

2101 SANDRA

2023 CARLOS

PRODUCCIÓN

2345 JOSE

2134 OMAR

Y asi sucesivamente, son 12 dependencias o oficinas, el titulo de la oficina va en una celda combinada. y debajo del ultimo de cada oficina va una fila en blanco e inicia la otra oficina.

Es decir yo en el formulario selecciono la oficina y el me debe buscar aquí el departamento e insertar una fila al fina de cada departamento y colocar los datos de código y nombre.

Gracias Elsa

Este es el código y sirve tanto para un Textbox como para un Combobox donde selecciones el depto.

Private Sub CommandButton1_Click()
'x Elsamatilde
'ajustar nbre de hoja y nombre de los controles.
'sirve tanto para textbox como para combobox
Set buscoDpto = Sheets("Hoja1").Range("A:B").Find(TextBox1, LookIn:=xlValues, lookat:=xlWhole)
'si no se encuentra ese depto avisa
If buscoDpto Is Nothing Then
 MsgBox "No se encuentra ese departamento en la hoja"
 Exit Sub
End If
'a partir de aquí busco la primer fila libre que representa el fin del grupo
Range("A" & buscoDpto.Row).Select
While ActiveCell <> ""
ActiveCell.Offset(1, 0).Select
Wend
'ahora estoy en la fila vacía, inserto otra para pasar los datos.
fila = ActiveCell.Row
Range("A" & fila).EntireRow.Insert
'paso los datos de los otros textbox
Range("A" & fila) = TextBox2
Range("B" & fila) = TextBox3
End Sub

Ahora, en tu última entrada estás incluyendo un nuevo tema: Es decir yo en el formulario selecciono la oficina y el me debe buscar aquí el departamento

Esto es totalmente nuevo y no responde a lo consultado en su origen. La macro responde a la consulta original:

Lo que quiero es que al dar enter en el botón de registrar en el
Formulario vaya y busque a que departamento pertenece e inserte una fila
Y coloque el documento y nombre en esa fila nueva.

Espero que puedas avanzar con lo enviado aquí, sino finaliza la consulta y deja la nueva en el tablón para que la pueda ajustar.

Excelente Elsa , muchas gracias. No lo ultimo era lo mismo es que confundo los términos oficina y departamento era lo mismo para mí,. Pero la macro que me enviaste funciona perfectamente.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas