ERROR en Insertar datos en fila vacía
Hola chico, mis saludos
Como comprenderás, tengo un problema que dando vueltas por TODOEXPERTOS y googleando, no pude encontrar solución a mi problema, el siguiente, apesa rde utilizar varias rutinas para resolver mi problema
Tengo este código en un form donde inserto datos a una hoja(hoja1).
2 Combos captan los datos de la hoja2, el segundo capta según la selección en el primer, están perfectos, lo que si no logro resolver es que inserte datos en la linea SIGUIENTE A LA OCUPADA (Hoja1)
Option Explicit
Dim COLUMNA As Integer
Private Sub cmdAceptar_Click()
Dim CeldaInicial As Variant
Dim col As Integer
'------------------------
'------------------------
Dim fila As Integer
CeldaInicial = "A5"
Set CeldaInicial = Range(CeldaInicial)
col = CeldaInicial.Column
''Busca cuál es la última fila. De la 1 a la 4 es encabezado '''''Esta inserta pero tampoco puedo acomodarla para que inserte en la fila siguiente a la ocupada, siempre inserta encima de la existente
If CeldaInicial.Offset(1, 0).Value = "" Then
fila = 5
Else
fila = CeldaInicial.End(xlDown).Row + 1
End If
'----- El codigo que coloque, siempre me dá error en la linea Cells(fila, col).Value = Cbx_Estado
'Dim linea_libre As Long
'Application.ScreenUpdating = False
'Sheets(1).Select
'linea_libre = WorksheetFunction.CountA(Range("A:A")) + 1
'-----
''Comienza a copiar los valores del UserForm a la hoja
Cells(fila, col).Value = Cbx_Estado
Cells(fila, col + 1).Value = Cbx_Ciudad
Cells(fila, col + 2).Value = TextIPS.Value
Cells(fila, col + 3).Value = TextTelf.Value
Cells(fila, col + 4).Value = TextFecha.Value
Cells(fila, col + 5).Value = TextHora.Value
Cells(fila, col + 6).Value = TextRecibidor.Value
Cells(fila, col + 7).Value = TextMotivo.Value
Cells(fila, col + 8).Value = TextMiNombre.Value
Cells(fila, col + 9).Value = TextAccion.Value
Cells(fila, col + 10).Value = TextObservacion.Value
Set CeldaInicial = Nothing
Cbx_Estado.Text = "Estado"
Cbx_Ciudad.Text = "Ciudad"
TextIPS = ""
TextTelf = ""
TextFecha = ""
TextHora = ""
TextRecibidor = ""
TextMotivo = ""
TextMiNombre = ""
TextAccion = ""
TextObservacion = ""
TextIPS.SetFocus
End Sub
Private Sub Cbx_Estado_Change()
Application.ScreenUpdating = False
'Llenamos el cbx_Ciudad al recibir el foco, pero antes lo limpiamos
Cbx_Ciudad.Clear
'seleccionamos la hoja1
Hoja2.Select
'Miramos lo que hay seleccionado en el Cbx_Estado Listindex + 1 nos devuelve la columna del estado,
'porque el listindex empieza siempre por cero
COLUMNA = Cbx_Estado.ListIndex + 1
If COLUMNA = 0 Then Exit Sub
'seleccionamos la celda que proceda, a partir de la segunda fila
Cells(2, COLUMNA).Select
'Vamos a llenar dinámicamente el Cbx_Ciudad dependiendo del país elegido
Do While Not IsEmpty(ActiveCell)
'Añadimos los nombres de las ciudades al Cbx_Ciudad
Cbx_Ciudad.AddItem ActiveCell
ActiveCell.Offset(1, 0).Select 'Bajamos una fila
Loop
Hoja1.Select
Application.ScreenUpdating = True
End Sub
Private Sub cmdSalir_Click()
'ActiveWorkbook.Save 'Guarda el cambio de datos en el libro
Unload Me
End Sub
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
Hoja2.Select 'Al inciar el formulario, seleccionamos la hoja con los datos
Range("A1").Select 'Seleccionamos la celda A1
Do While ActiveCell <> Empty 'Hasta que no encuentre una columna vacía que llene todo con datos
Cbx_Estado.AddItem ActiveCell.Value
ActiveCell.Offset(0, 1).Select 'nos desplazamos una columna a la derecha
Loop
Hoja1.Select
TextIPS.SetFocus
Application.ScreenUpdating = True
End Sub
En esta imagen llega hasta la columna QUE que es hasta donde se llena con la inserción del form (TextBox y 2 ComboBox). ! Combo coge los Estados y el 2º coge las ciudades.
Lo demás son datos insertados desde los TextBox en el form por medio del botón cmdAceptar
Como comprenderás, tengo un problema que dando vueltas por TODOEXPERTOS y googleando, no pude encontrar solución a mi problema, el siguiente, apesa rde utilizar varias rutinas para resolver mi problema
Tengo este código en un form donde inserto datos a una hoja(hoja1).
2 Combos captan los datos de la hoja2, el segundo capta según la selección en el primer, están perfectos, lo que si no logro resolver es que inserte datos en la linea SIGUIENTE A LA OCUPADA (Hoja1)
Option Explicit
Dim COLUMNA As Integer
Private Sub cmdAceptar_Click()
Dim CeldaInicial As Variant
Dim col As Integer
'------------------------
'------------------------
Dim fila As Integer
CeldaInicial = "A5"
Set CeldaInicial = Range(CeldaInicial)
col = CeldaInicial.Column
''Busca cuál es la última fila. De la 1 a la 4 es encabezado '''''Esta inserta pero tampoco puedo acomodarla para que inserte en la fila siguiente a la ocupada, siempre inserta encima de la existente
If CeldaInicial.Offset(1, 0).Value = "" Then
fila = 5
Else
fila = CeldaInicial.End(xlDown).Row + 1
End If
'----- El codigo que coloque, siempre me dá error en la linea Cells(fila, col).Value = Cbx_Estado
'Dim linea_libre As Long
'Application.ScreenUpdating = False
'Sheets(1).Select
'linea_libre = WorksheetFunction.CountA(Range("A:A")) + 1
'-----
''Comienza a copiar los valores del UserForm a la hoja
Cells(fila, col).Value = Cbx_Estado
Cells(fila, col + 1).Value = Cbx_Ciudad
Cells(fila, col + 2).Value = TextIPS.Value
Cells(fila, col + 3).Value = TextTelf.Value
Cells(fila, col + 4).Value = TextFecha.Value
Cells(fila, col + 5).Value = TextHora.Value
Cells(fila, col + 6).Value = TextRecibidor.Value
Cells(fila, col + 7).Value = TextMotivo.Value
Cells(fila, col + 8).Value = TextMiNombre.Value
Cells(fila, col + 9).Value = TextAccion.Value
Cells(fila, col + 10).Value = TextObservacion.Value
Set CeldaInicial = Nothing
Cbx_Estado.Text = "Estado"
Cbx_Ciudad.Text = "Ciudad"
TextIPS = ""
TextTelf = ""
TextFecha = ""
TextHora = ""
TextRecibidor = ""
TextMotivo = ""
TextMiNombre = ""
TextAccion = ""
TextObservacion = ""
TextIPS.SetFocus
End Sub
Private Sub Cbx_Estado_Change()
Application.ScreenUpdating = False
'Llenamos el cbx_Ciudad al recibir el foco, pero antes lo limpiamos
Cbx_Ciudad.Clear
'seleccionamos la hoja1
Hoja2.Select
'Miramos lo que hay seleccionado en el Cbx_Estado Listindex + 1 nos devuelve la columna del estado,
'porque el listindex empieza siempre por cero
COLUMNA = Cbx_Estado.ListIndex + 1
If COLUMNA = 0 Then Exit Sub
'seleccionamos la celda que proceda, a partir de la segunda fila
Cells(2, COLUMNA).Select
'Vamos a llenar dinámicamente el Cbx_Ciudad dependiendo del país elegido
Do While Not IsEmpty(ActiveCell)
'Añadimos los nombres de las ciudades al Cbx_Ciudad
Cbx_Ciudad.AddItem ActiveCell
ActiveCell.Offset(1, 0).Select 'Bajamos una fila
Loop
Hoja1.Select
Application.ScreenUpdating = True
End Sub
Private Sub cmdSalir_Click()
'ActiveWorkbook.Save 'Guarda el cambio de datos en el libro
Unload Me
End Sub
Private Sub UserForm_Initialize()
Application.ScreenUpdating = False
Hoja2.Select 'Al inciar el formulario, seleccionamos la hoja con los datos
Range("A1").Select 'Seleccionamos la celda A1
Do While ActiveCell <> Empty 'Hasta que no encuentre una columna vacía que llene todo con datos
Cbx_Estado.AddItem ActiveCell.Value
ActiveCell.Offset(0, 1).Select 'nos desplazamos una columna a la derecha
Loop
Hoja1.Select
TextIPS.SetFocus
Application.ScreenUpdating = True
End Sub
En esta imagen llega hasta la columna QUE que es hasta donde se llena con la inserción del form (TextBox y 2 ComboBox). ! Combo coge los Estados y el 2º coge las ciudades.
Lo demás son datos insertados desde los TextBox en el form por medio del botón cmdAceptar
1 respuesta
Respuesta de Francisco Cardo
-1