Solicitud de Adaptar macro encontrada en Internet a mi caso particular

Para  D.A.N.T.E

En Internet encontré esta macro para un combobox que es aproximada a lo que necesito, es la siguiente (Es una Guia):

Private Sub ComboBox1_change()  
'cargamos listado desde la tabla 'datos' previamente creada...  
ComboBox1.ListFillRange = "datos"  
Dim ListadoDatos As Range  
Dim Buscado As Object  
'Definimos la variable ListadoDatos  
Set ListadoDatos = Range("datos")  
'Definimos una variable 'buscado'  
Set Buscado = Nothing  
'damos un valor a la variable 'buscado'  
Set Buscado = ListadoDatos.Find(ComboBox1.Value)  
If Buscado Is Nothing Then  
'Si el dato escrito no está en la lista arroja el siguiente error  
MsgBox "El dato introducido [" & ComboBox1.Value & "] no se encuentra en la lista", vbInformation, _  
"Detalle del error..."
'ESO ES LO QUE DICE EL EJEMPLO PERO AQUI LO QUE YO NECESITO ES LO AGREGUE A LA LISTA Y LO COPIE EN LA CELDA ACTIVA, COMO LO EXPLICO MAS ABAJO. 
Else  
'si está, entonces devuelve el valor del 'importe' correspondiente  
Range("F2").Value = Range("datos").Offset(ComboBox1.ListIndex, 1).Value 
'ESTO ES LO QUE HACE EL EJEMPLO PERO AQUI LO QUE YO DESEO ES QUE LO COPIE EN LA CELDA ACTIVA, LO EXPLICO MAS ABAJO.
End If  
Set ListadoDatos = Nothing  
Set Buscado = Nothing  
End Sub  

Actualmente tengo las siguientes instrucciones:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set h1 = Sheets("Constantes")
    u = h1.Range("K" & Rows.Count).End(xlUp).Row + 1
    h1.Range("K" & u) = ComboBox1
    ActiveCell.Value = ComboBox1
    Unload Me
End Sub
Private Sub CommandButton2_Click()
Unload Me
End Sub
'
Private Sub UserForm_Activate()
'Por.Dante Amor
    Set h = Sheets("Constantes")
    For i = 1 To h.Range("K" & Rows.Count).End(xlUp).Row
        ComboBox1.AddItem (h.Cells(i, "K"))
    Next
End Sub

Lo que necesito es que me ayudes a adaptar la macro que encontre en internet para mi caso particular que seria algo asi como lo siguiente:

Que yo escriba un valor (palabras) en el combobox y cuando ejecute el botón CommandButton1 lo que primero haga es buscar si en la hoja "Constantes" y columna "K" esa palabra se encuentra, si se encuentra entonces entonces solo ejecuta la instrucción :

    ActiveCell.Value = ComboBox1
    Unload Me

Pero si no la encuentra entonces ejecuta las instrucciones:

    Set h1 = Sheets("Constantes")
    u = h1.Range("K" & Rows.Count).End(xlUp).Row + 1
    h1.Range("K" & u) = ComboBox1
    ActiveCell.Value = ComboBox1
    Unload Me

Me ayudas

2 Respuestas

Respuesta
1

Listo Dante lo logré je je!

Private Sub CommandButton1_Click()
'Por.Dante Amor
Set h1 = Sheets("Constantes")
Set b = h1.Range("K:K").Find(ComboBox1.Value)
If b Is Nothing Then
    u = h1.Range("K" & Rows.Count).End(xlUp).Row + 1
    h1.Range("K" & u) = ComboBox1
    ActiveCell.Value = ComboBox1
    Unload Me
Else
    ActiveCell.Value = ComboBox1
    Unload Me
End If
End Sub
Respuesta
1

H o l a:

Qué bien!

Solamente pondría los siguiente, estas 2 líneas se ejecutan siempre,

    ActiveCell.Value = ComboBox1
    Unload Me

es decir, se encuentre o no se encuentre la palabra estas 2 líneas se ejecutan, entonces pueden ir después del end if, por ejemplo:

Private Sub CommandButton1_Click()
'Por.Dante Amor
    Set h1 = Sheets("Constantes")
    Set b = h1.Range("K:K").Find(ComboBox1.Value)
    If b Is Nothing Then
        u = h1.Range("K" & Rows.Count).End(xlUp).Row + 1
        h1.Range("K" & u) = ComboBox1
    End If
    ActiveCell.Value = ComboBox1
    Unload Me
End Sub

s a l u d o s

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas