¿Cómo utilizar una doble condición?

Muy buena tarde:

Tengo una pequeña Base de Datos dentro de una hoja excel. Es la lista de alumnos de una escuela, separadas por Apellido Paterno, Materno y Nombre.Para poder visualizar sus calificaciones, tengo un Userform donde el usuario escribe el nombre(s) y apellido paternoç, con una doble condición debo comparar el apellido paterno y los nombres para evitar si se duplican los nombres. Mi problema es que no logro recorrer todos los nombres pues no me marca error, solo no funciona: Adjunto Código:

If Grad = 1 Then
For i = 5 To 200
If Sheets("1er").Cells(i, 1) = ApellidoP Or Sheets("1er").Cells(i, 3) = Nombre Then
ApellidoM = Sheets("1er").Cells(i, 2)
Turn = Sheets("1er").Cells(i, 6)
UserForm5.Hide
'Sheets("1er").Cells(3, 60) = i
UserForm6.Nom = Nombre
UserForm6.APaterno = ApellidoP
UserForm6.AMaterno = ApellidoM
UserForm6.Grado = Grad
UserForm6.Turno = Turn
UserForm6.Show
End If
Exit For
Next i
End If

Espero puedan ayudarme. Gracias

Saludos Cordiales

1 Respuesta

Respuesta
1

Veo que estás comparando por 1 condición O la otra,

If Sheets("1er").Cells(i, 1) = ApellidoP Or Sheets("1er").Cells(i, 3) = Nombre Then

cuando en realidad debes comparar por las 2:

If Sheets("1er").Cells(i, 1) = ApellidoP and Sheets("1er").Cells(i, 3) = Nombre Then

Sdos y NO olvides finalizar la consulta.

Muchas gracias Elsa por tu pronta ayuda. Opte por el Or ya que el And no realiza absolutamente nada, no me marca error y cuando realizo un debug no marca la línea. Sin embargo el Or me realiza al menos dos renglones. El código como lo copie no recorre más de 2 renglones y se queda pasmado, realizo un debug y me marca hasta la condición más allá se pierde sin marcar error ni realizar nada.

Saludos Cordiales.

Estás cancelando con Exit For en TODOS los casos. El orden de las instrucciones (con AND) quedaría así:

If Grad = 1 Then
For i = 5 To 200
If Sheets("1er").Cells(i, 1) = ApellidoP AND Sheets("1er").Cells(i, 3) = Nombre Then
ApellidoM = Sheets("1er").Cells(i, 2)
Turn = Sheets("1er").Cells(i, 6)
UserForm5.Hide
'Sheets("1er").Cells(3, 60) = i
UserForm6.Nom = Nombre 'ATENCIÓN
UserForm6.APaterno = ApellidoP
UserForm6.AMaterno = ApellidoM
UserForm6.Grado = Grad
UserForm6.Turno = Turn
UserForm6.Show
Exit For
End If

Next i
End If

Atención que en OTRO formulario estás haciendo mención a variables que utilizaste en el form que acabas de ocultar.

Si Nombre, Apellido P, etc son nombres de controles del form 5 debes hacer mención a ellos como:

UserForm6.Nom = Userform5.Nombre

Si en cambio son variables debes definirlas como públicas.

PD) No dejes de visitar la sección de mi Manual Formularios.

Excelente poyo. Tienes mucha razón, las variables estaban como privadas. Las he cambiado a públicas y ha funcionado de manera correcta,

Excelente inicio de semana. Gracias

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas