Macro buscar una palabra en combobox

Tengo un listado en un combobox, que son las siguientes

Gastos Enero

Ingresos febrero

Gastos febrero

Ingresos febrero

Lo que necesito es que si selecciono uno de ese listado en el combobox si lleva la palabra gasto no permita seguir

Si me pudieran ayudar muy agradecido

3 respuestas

Respuesta
1

A lo aportado te podría fíjate si te funciona esto también

strg = combobox1
If UCase(strg) Like "*"& UCase(gastos) & "*" Then exit sub

Lo que hace es determinar si el item seleccionada en el combobox tiene contiene la palabra gasto que salga de la macro

Fíjate en estos ejemplos, si bien tu no quieres eliminar el concepto es lo mismo en vez de eliminar solo haz que termine la macro con exit sub

https://macrosenexcel.com/2018/12/como-eliminar-filas-en-base-criterio.html

https://macrosenexcel.com/2018/12/como-eliminar-filas-que-coincidan-con.html

https://macrosenexcel.com/2018/12/como-eliminar-filas-que-coincidan-con_31.html

https://macrosenexcel.com/2019/01/como-eliminar-filas-que-coincidan-con.html

https://macrosenexcel.com/2019/01/como-eliminar-filas-coincidan-con.html

Respuesta

¿A qué te refieres con no permitir seguir?
¿Quieres qué no busque algo? ¿Qué bloquee algo?, ¿Qué se cierre?
Igual puedes poner tu código para que podamos entender precisamente que es lo que quieres.

yo lo tengo así

Private Sub ComboBox1_Change()

If Me.ComboBox1 = "Gastos Enero" Then
MsgBox "Debe de ser un ingreso...", vbExclamation, "EXCELeINFO"
Me.ComboBox1 = "Seleccionar"

end sub

lo que quiero es, al hacer el cambio nomas detecte que haya la palabra "gasto" porque el mes va variar arroje un msgbox que diga que tiene que ser un ingreso

es que así como lo tengo debo de hacer ese código para cada mes 

¿Y cómo cargas esos valores al combobox?

Bueno voy a estar ocupado un buen rato y no se si pueda ayudarte más tarde. Así que lo único que se me ocurre por el momento es algo así:

Private Sub ComboBox1_Change()
Dim a As String
Dim b
a = ComboBox1.Value
b = Split(a, " ")
If b(0) = "gastos" Then
MsgBox "Debe de ser un ingreso..."
End If
End Sub

de las hojas que tengo

Private Sub UserForm_Initialize()

Dim I As Long
Me.ComboBox1.Clear
Me.ComboBox2.Clear
For I = 1 To Sheets.Count
Me.ComboBox1.AddItem Sheets(I).Name
Me.ComboBox2.AddItem Sheets(I).Name
Next
Me.ComboBox1.Value = ActiveSheet.Name
Me.ComboBox2.Value = ActiveSheet.Name

End Sub

Prueba la macro y me avisas.

muchas gracias, pero fíjate que no me resulto

¿Te salió error?

Recuerda que lo que los datos que te ponemos no necesariamente son iguales a tus datos, no tengo forma de saber totalmente tus datos.
Por lo que si pongo

If b(0) = "gastos" Then

Puede que tu lo tengas que poner como

If b(0) = "Gastos" Then
Respuesta

Solo reemplaza la línea que dice:

If Me.ComboBox1 = "Gastos Enero" Then

Por esta otra:

If Left(ComboBox1,6) = "Gastos" Then

Te invito a mirar el vídeo 11 de mi canal donde comento el uso (innecesario) de 'ME'

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas