Encontrar dato, ir a siguiente celda y buscar celda vacía

Otra vez, solicitando su apoyo para crear una macro. Tengo una macro que busca un dato, luego se ubica en la siguiente columna, y busca la ultima celda con datos. Luego se ubica debajo e inscrusta toda una fila, para luego pegar datos en la primera celda vacía. Todo funciona cuando en la columna siguiente hay varias filas llenas, pero si solo hay una fila llena, no funciona. Quisiera que me ayuden por favor:

Adjunto la macro:

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim i As Integer
Dim final As Integer
Hoja6.Activate
For i = 2 To 1000
        If ComboBox1 = Hoja6.Cells(i, 2) Then
        final = i
        Exit For
        End If
        Next
Range("C" & final).End(xlDown).Offset(1, 0).Select
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell = TextBox1.Text
MsgBox "Datos ingresados"
Unload Me
End Sub

1 respuesta

Respuesta
1

.15.03.17

Buenas tardes, colega

Prueba accediendo por abajo que será válida cualquiera fuesen la cantidad de líneas ocupadas en esa columna

La instrucción te la marco en tu mismo código:

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim i As Integer
Dim final As Integer
Hoja6.Activate
For i = 2 To 1000
        If ComboBox1 = Hoja6.Cells(i, 2) Then
        final = i
        Exit For
        End If
        Next
'  
'Range("C" & final).End(xlDown).Offset(1, 0).Select ' instrucción anterior
'  
Range("C" & Rows.Count).End(xlUp).Offset(1, 0).Select ' instrucción nueva
'  
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell = TextBox1.Text
MsgBox "Datos ingresados"
Unload Me
End Sub

Espero que te funcione OK.

Un abrazo

Fer

.

Hola Fer, gracias por responder, pero no funciona. Te Explico con gráficos:

Col B     Col C

A             uno

                Dos

Vacio

B             Tres

Vacio

C              cuatro 

                 Cinco

En el combobox pongo la letra B y la macro debe ubicarse en la columna C y buscar la celda vacía, sin llegar a C, al encontrarla debe insertar una fila completa y pegar el textbox. Eh ahí el problema. 

.

Ok, Julio

Reemplacé aquella instrucción por una subrutina que busca la celda libre para insertar la fila:

Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim i As Integer
Dim final As Integer
Hoja6.Activate
For i = 2 To 1000
    If ComboBox1 = Hoja6.Cells(i, 2) Then
        final = i
        Exit For
    End If
Next
'  
'busca próxima celda vacía:
'  
For Lafila = 1 To 1000
    If IsEmpty(Range("C" & final).Offset(Lafila)) Then
        Range("C" & final).Offset(Lafila).Select
        Exit For
    End If
Next
'  
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
ActiveCell = TextBox1.Text
MsgBox "Datos ingresados"
Unload Me
End Sub

Pruebala y dime si hace lo que necesitas.

Abrazo

Fer

.

Muchas gracias Fer, es el indicado. Saludos 

.

Perfecto!

Me alegro de que te haya funcionado.

Abrazo

Fer

.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas