Despues de un If y una comparacion por igualdad no puedo poner False antes del then?

For i = 1 To 1000
If Hoja5.Cells(i, 1) = "" Then
final = i
Exit For
End If
Next

For j = 2 To final
If Hoja5.Cells(j, 1) = ComboBox1 False Then
UserForm26.Show
ComboBox1.BackColor = &HFF00&
Exit Sub
Exit For
End If
Next

2 Respuestas

Respuesta
1

No, no puedes poner el "False"

Si quieres poner otra condición tendrías que poner algo así

If Hoja5.Cells(j, 1) = ComboBox1 and condicion = False Then

Pero no te podría decir que poner en "condicion" ya que no explicaste por qué quieres poner el "False".

Si solamente quieres comparar la celda con el valor del combo, basta con poner esto:

If Hoja5.Cells(j, 1) = ComboBox1 Then

Para hacer la búsqueda puedes poner una instrucción como esta, con el find, te ahorras 2 ciclos for. Por ejemplo:

Private Sub ComboBox1_Change()
'Por.Dante Amor
    Set b = Hoja5.Columns("A").Find(ComboBox1, lookat:=xlWhole)
    If Not b Is Nothing Then
        UserForm26.Show
        ComboBox1.BackColor = &HFF00&
    Else
        MsgBox "El dato no existe"
    End If
End Sub

Veo que sigues con dificultad para adaptar la función Find.

Dime qué quieres buscar, ¿en dónde lo quieres buscar y qué esperas de resultado?

Pero no dejes las respuestas sin valorar, sin antes pedir más información.

Si todavía no puedes adaptar la búsqueda, envíame tu archivo y me explicas con imágenes o con colores lo que necesitas.

Mi correo [email protected]

En el asunto del correo escribe tu nombre de usuario “ermacia” y el título de esta pregunta.

Respuesta
1

Yo creo que lo quieres hacer es esto

For i = 1 To 1000
If Sheets("Hoja5").Cells(i, 1) = "" Then
Final = i
Exit For
End If
Next
For j = 2 To Final
If Sheets("Hoja5").Cells(j, 1) <> ComboBox1 Then
UserForm26.Show
UserForm26.ComboBox1.BackColor = &HFF00&
Exit Sub
Exit For
End If
Next

·
·

La negación de una igualdad es la desigualdad <>

Aparte he cambiado alguna otra cosa ya que si no no funcionaba, pero no he alterado tu forma de programarlo.

Mira a ver si te sirve.

Hola! Ante todo gracias por tu respuesta pero me da error. Te lo explicaré más detalladamente. Tengo un formulario para introducir la entrada de una referencia (combobox1) en un almacen virtual. A parte de lo que ya he conseguido (que te pongo a continuación) quisiera que cuando la referencia que escribo en el combobox1 exista siga su camino y cuando no me salga otro formulario con el mensaje correspondiente y se ponga el combobox en otro color. En otras palabras quiero el valor booleano de una función que me diga si ha encontrado o no el texto del combobox1.

Tengo lo siguiente ya, ¿dónde pongo tu código para que funcione? ¿Aunque creo que lo que me has pasado no es exactamente lo que necesito no?... gracias!

Private Sub CommandButton1_Click()
Dim validar As Boolean
Dim validarfecha As Boolean
Dim i As Integer
Dim j As Integer
Dim final As Integer


If ComboBox1 = "" Then
UserForm10.Show
Exit Sub
End If

If TextBox2 = "" Then
UserForm11.Show
Exit Sub
End If

If TextBox4 = "" Then
UserForm12.Show
Exit Sub
End If

If TextBox6 = "" Then
UserForm13.Show
Exit Sub
End If

If TextBox7 = "" Then
UserForm14.Show
Exit Sub
End If

validar = IsNumeric(TextBox2.Value)
If validar = False Then
UserForm22.Show
TextBox2.BackColor = &HFF00&
Exit Sub
End If

validarfecha = IsDate(TextBox6.Value)
If validarfecha = False Then
UserForm23.Show
TextBox6.BackColor = &HFF00&
Exit Sub
End If

If TextBox2 <> "" And TextBox1 <> "" And TextBox4 <> "" And TextBox6 <> "" And TextBox7 <> "" Then
TextBox2.BackColor = -2147483643
TextBox6.BackColor = -2147483643
UserForm15.Show
End If

End Sub

Creo que Dante te dará una buena respuesta.

Lo que querías hacer por el camino que llevabas podría haber sido

For i = 1 To 1000
If Hoja5.Cells(i, 1) = "" Then
final = i
Exit For
End If
Next

Hallado = False

For j = 2 To final
If Hoja5.Cells(j, 1) = ComboBox1 Then

    Hallado=True

    Exit For

End If

Next

If not Hallado Then
    UserForm26.Show
    ComboBox1.BackColor = &HFF00&
End If

Pero eso mismo o lo contrario es lo que hacía Dante con menos instrucciones.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas