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 de Miguel Angel
1
Respuesta de Dante Amor
1