Formulario que coge los datos de las hojas según sea su backcolor.

Para Dam Amor

Hola:

Tengo un formulario que según se elija una opción u otra cambia el backcolor del mismo y según tenga el backcolor debe de seleccionar los datos de una hoja u otra.

1 Respuesta

Respuesta
1

H o l a:

Ajuste el código para abrir el formulario:

Private Sub CMB_VEHICULOS_Click()
    IngresarDatos &HFF00FF
End Sub
Private Sub CMB_HERRAMIENTAS_Click()
    IngresarDatos &HFFFF&
End Sub
Private Sub CMB_MAQUINARIA_Click()
    IngresarDatos &HFF0000
End Sub
Private Sub CMB_SEGOP_Click()
    IngresarDatos &HC0&
End Sub
'
Sub IngresarDatos(cat)
'Por.Dante Amor
    Unload Me
    FRM_INGRESAR_DATOS_NUEVOS.BackColor = cat
    FRM_INGRESAR_DATOS_NUEVOS.Show
End Sub

En el formulario Ingresar_datos_nuevos, te faltaba establecer la hoja como objeto:

set HDATOS = sheets(hoja) ,

la estabas poniendo como string:

HDATOS  = sheeets("maquinaria")

Private Sub UserForm_activate()
'Act.Por.Dante Amor
    Select Case Me.BackColor
        Case &HFF0000: hoja = "MAQUINARIA"
        Case &HFFFF&: hoja = "HERRAMIENTAS"
        Case &HFF00FF: hoja = "VEHÍCULOS"
        Case &HC0&: hoja = "SEGOP"
    End Select
    Set HDATOS = Sheets(hoja)
    '
    EliminarTitulo Me.Caption
    Me.Height = Me.Height - 20
    CMB_MODELO.SetFocus
    'Dim FILA As Integer, FINAL As Integer, REGISTRO As Integer
    'FILA = 2
    'Do While HDATOS.Cells(FILA, 1) <> ""
    '    FILA = FILA + 1
    'Loop
    'FINAL = FILA - 1
    '
    With HDATOS
        For FILA = 2 To .Range("A" & Rows.Count).End(xlUp).Row
            REGISTRO = WorksheetFunction.CountIf(.Range(.Cells(2, 1), .Cells(FILA, 1)), .Cells(FILA, 1))
            If REGISTRO = 1 Then
                CMB_MODELO.AddItem .Cells(FILA, 1)
            End If
        Next FILA
    End With
End Sub

Sal u dos

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas