Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Error de Sintaxis en Checkbox

Estas en el tema de Error de Sintaxis en Checkbox en el foro de Visual Basic clásico en Foros del Web. Necesito recorrer 10 campos check de un formulario llamados Checkbox1, Checkbox2....Checkbox10, verificando si se encuentran en False. Si es así, me dirijo a una hoja ...
  #1 (permalink)  
Antiguo 24/08/2009, 09:51
Avatar de cmarti  
Fecha de Ingreso: noviembre-2003
Ubicación: Buenos Aires - Argentina
Mensajes: 442
Antigüedad: 20 años, 5 meses
Puntos: 1
Error de Sintaxis en Checkbox

Necesito recorrer 10 campos check de un formulario llamados Checkbox1, Checkbox2....Checkbox10, verificando si se encuentran en False. Si es así, me dirijo a una hoja llamada "A DB" y dejo en blanco determinada celda.

Aquí el código que me da como error: Error de Compilación, Error de Sintaxis
Código:
Private Sub ActualizarCodigos_Click()
Dim i, j As Integer
j = 1
     Sheets("A DB").Select
    For i = 1 To 10
        If CheckBox&i = False Then
            ActiveSheet.Cells(1, j).Value = "" 'cells(fila,columna)
            j = j + 1
        Else
            Next i
        End If
        Next i
End Sub
__________________
When all else is lost the future still remains.
  #2 (permalink)  
Antiguo 28/08/2009, 16:25
 
Fecha de Ingreso: agosto-2009
Mensajes: 19
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Error de Sintaxis en Checkbox

tienes un next i de mas
  #3 (permalink)  
Antiguo 30/08/2009, 08:37
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Error de Sintaxis en Checkbox

Además del next i de más, el error de sintaxis debe ser por el "CheckBox&i"
Tienes que comprobar uno por uno los checkbox o haber creado un indice CheckBox(i)

Para eso quitas todos los checkbox menos el primero.
Despues pinchas boton derecho en el y copiar y luego lo pegas en el form.
Cuando te diga que ya existe y te pregunte si quieres hacer una matriz de controles le dices que si y sigues pegando tantos checkbox como necesites sin que te vuelva a preguntar nada.
Ordena los checkbox segun su index para saber cual es el 0, el 1, etc.
Después el codigo te quedaría así (para 10 checkbox):

Private Sub ActualizarCodigos_Click()
Dim i, j As Integer
j = 1
Sheets("A DB").Select
For i = 0 To 9
If CheckBox(i) = 0 Then
ActiveSheet.Cells(1, j).Value = "" 'cells(fila,columna)
j = j + 1
End If
Next i
End Sub

Por cierto los checkbox tienen valores de 0, 1 y 2, no false o true.

Saludos by PKJ

Última edición por pkj; 30/08/2009 a las 17:17 Razón: Ampliación
  #4 (permalink)  
Antiguo 31/08/2009, 17:45
Avatar de cmarti  
Fecha de Ingreso: noviembre-2003
Ubicación: Buenos Aires - Argentina
Mensajes: 442
Antigüedad: 20 años, 5 meses
Puntos: 1
Respuesta: Error de Sintaxis en Checkbox

Gente. Miro el código y no veo lo del next de más sin embargo, si veo el error en la línea del for de todos modos coincido totalmente en que la forma de recorrerlos es matricial.

Con respecto al llamado del Check lo correcto es Checkbox & i (deben existir espacios). Aún así, me falla pero como digo, lo solucioné con una matriz.

En cuanto a los valores que soporta un Check, True y False me funcionan de 10 de hecho, tengo un botón que me marca los 10 check sin problema en contrapartida, otro boton llamado "Limpiar Codigos" los desmarca por completo habiéndole asignado como Value "False".

Gs de todos modos por los buenos consejos.

Un abrazo.
__________________
When all else is lost the future still remains.

Última edición por cmarti; 31/08/2009 a las 17:48 Razón: Corrección
  #5 (permalink)  
Antiguo 01/09/2009, 03:04
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 17 años, 9 meses
Puntos: 29
Respuesta: Error de Sintaxis en Checkbox

Primeramente, insistiré en que ese uso de un control es inválido y nunca te va a funcionar correctamente. No puedes añadir un número al nombre de un control con & porque no es un string. De hecho, si así funcionase no habrían incluido el valor index a los controles. Es como las variables. No funciona tampoco ese modo de uso.

El Next i de sobra lo notarás si comparas tu sub con la que yo escribí. Verás un:

else
next i

que en la mia no aparece.

Y por último, que funcione usando True y False no quiere decir que esté bien.
Hay que usar apropiadamente los formatos de los controles en la medida de lo posible o te encontrarás preguntando a un menu si es igual a 1.

Con más ánimo de instruir que de molestar te envío un saludo.
  #6 (permalink)  
Antiguo 07/09/2009, 11:51
Avatar de cmarti  
Fecha de Ingreso: noviembre-2003
Ubicación: Buenos Aires - Argentina
Mensajes: 442
Antigüedad: 20 años, 5 meses
Puntos: 1
Respuesta: Error de Sintaxis en Checkbox

pkj. Tienes razón y para nada moletas al contrario, soy yo el agradecido.

Un abrazo.
__________________
When all else is lost the future still remains.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:29.