En este grupo En todos

Grupo de Visual Basic



¿Alguien me puede ayudar a correjir mis errores en este código por favor?

Eric
3° medio/ electrónica colegio darío sa...
Escrito por Eric Astudillo Larenas
el 29/06/2008

Hola a todos, resulta que estoy realizando una mejora en un programa que estoy desarrollando, pero me aparece el error al intentar ejecutarlo: "Bloque If sin End If". Realmente no he entendido lo que quiere decir y no tengo el MSDN, por favor alguien me explique los errores en el siguiente código y por qué está malo, muchas gracias de verdad por su ayuda.

-------------------------------------------------------------------------------------------
Private Sub ButtonMac1_Click()
Dim n1 As Double, n2 As Double, A As String, B As String, n3 As Double, n4 As Double, n5 As Double
n1 = InputBox("Escriba el primer número... ", "Adición")
n2 = InputBox("Escriba el segundo número... ", "Adición")
A = InputBox(" ¿Desea realizar algo más? (S/N)", "Estableciendo más opciones")
If A = "N" Or "n" Then
MsgBox "La suma es: " & n1 + n2, vbInformation, "Resultado"
If A = "S" Or "s" Then
B = InputBox(" ¿Qué desea realizar? : Restar(R), Multiplicar(M), Dividir(D), sacar Raíz Cuadrada(C)", "Seleccione opción")
If B = "R" Or "r" Then
n3 = InputBox("Ingrese el número a restar", "Restando a resultado")
n4 = n1 + n2
n5 = n4 - n3
MsgBox "El resultado es: " & n5, vbInformation, "Suma con opciones"
End If
End Sub
-------------------------------------------------------------------------------

Andrea .. .
Licenciatura en sistemas mar del plata
Escrito por Andrea .. .
el 30/06/2008

Hola, revisé tu código, lo probé y no me dio ningún error. Tal vez, debas revisar el resto del código, seguramente estes arrastrando ese error desde el principal, porque en este módulo la sintaxis esta bien escrita.

Cualquier duda, vuelve a escribir

Saludos!

Emerson Miranda
El Salvador, El Salv...
Escrito por Emerson Miranda
el 03/07/2008

Jajajaj, veo que empiezas en vb, dejame decirte que te faltan dos end if... Toda instruccion if termina con "end if", no se te olvide nunca eso,,,
utiliza vb. Net con visual estudio, este automáticamente te termina los bucles con sus respectivas fraces reservadas..... No te desanimes todos empezamos asi

Emerson Osorio Vergara
Licenciado en español y comunicación a...
Escrito por Emerson Osorio Vergara
el 04/07/2008

Compara tu código con el que te estoy mejorando y por favor utiliza sangrías para que visualices mejor las estructuras de programación.

Chao.


Private Sub buttonmac1_click()
Dim n1 As Double, n2 As Double, a As String, b As String, n3 As Double, n4 As Double, n5 As Double
n1 = InputBox("escriba el primer número... ", "adición")
n2 = InputBox("escriba el segundo número... ", "adición")
a = InputBox(" ¿Desea realizar algo más? (s/n)", "estableciendo más opciones")
If a = "n" Or a = "N" Then
MsgBox "la suma es: " & n1 n2, vbInformation, "resultado"
Else
b = InputBox(" ¿Qué desea realizar? : restar(r), multiplicar(m), dividir(d), sacar raíz cuadrada(c)", "seleccione opción")
If b = "r" Or b = "R" Then
n3 = InputBox("ingrese el número a restar", "restando a resultado")
n4 = n1 n2
n5 = n4 - n3
MsgBox "el resultado es: " & n5, vbInformation, "suma con opciones"
End If
End If
End Sub

Oscar Mauricio Dominguez Giraldo
Ingenieria de sistemas universidad coo...
Escrito por Oscar Mauricio Dominguez Giraldo
el 05/07/2008

Lo que dicen todos tus compañeros es verdad tienes que hacer varios arreglos para poder optimizar tu software pero la pregunta no es como se optimiza sino porque esta generando error.... La respuesta es sensilla es por lo que dice nuestra compañera que es que estas utilizando los condicionales IF y no los estas terminando.... Cuando utilizas la sentencia IF tiene que cerrarse con la sentencia END IF.

ejemplo:

IF a<b then
c=a b
ELSE
c=a-b
END IF

espero que esto te ayude a solucionar el problema

Bernardo Coutinho
Tecnologia informatica isiv
Escrito por Bernardo Coutinho
el 07/07/2008

Eric ya todos te respondieron tu error, tenes que terminar todo if con un end if. Esto de los tipos de sentencias tenes que tenerlo claro, demasiado claro, porque en todo lenguaje existe estas sentencias que pertenecen a la programación estructurada. No te preocupes por ese error, primero te vas a equivocar. Te aconsejo que practiques creando algoritmos en seudocodigo y luego lo pases a Basic para entender como es el funcionamiento concreto de cada sentencia, luego aunque pasen 3 mil años como dice Enrique Iglesias, no te olvidas.

Joscar Vera
Bachiller en ciencias elias calixto po...
Escrito por Joscar Vera
el 12/07/2008

Hola, por lo que del visual, si colocas un if deberas terminar con un end if

ahora tu codigo tiene tres if then cierto?

deberas colocar al final dos end if mas luego intenta a ver si te resulta

Pablo Abel Di Raddo
Programador basic 7.0 instituto super...
Escrito por Pablo Abel Di Raddo
el 14/07/2008

En que basic lo estas armando?

Pablo Abel Di Raddo
Programador basic 7.0 instituto super...
Escrito por Pablo Abel Di Raddo
el 14/07/2008

A ok no me di cuenta.... Perdon...

Oscar Mauricio Dominguez Giraldo
Ingenieria de sistemas universidad coo...
Escrito por Oscar Mauricio Dominguez Giraldo
el 09/12/2008

Jejejeje error de principiante pero no pasa nada, todos hemos pasado por ahi solo tienes que poner end if antes de comenzar el otro if eso es todo.

Alberto Sánchez Martín
Diplomado en dirección de empresas cám...
Escrito por Alberto Sánchez Martín
el 11/12/2008

Exactamente, como te indica Emerson, tienes que cerrar todos los IF, pero los tienes que cerrar en su sitio corrpondiente. Me explico, puede ser que un IF lo tengas que cerrar primero que que otro, aunque esté propuesto en segunda orden. Te pongo unos ejemplos.

1º IF variable= X Then

(Aquí figuras las ordenes necesarias)

End If

2º IF variable = X Then

' Si esta variable se cumple puede que necesites abrir otro IF

(Aquí figuras las ordenes necesarias)

If varible2 = X1 then

(Aquí figuras las ordenes necesarias, y cierras el segundo if)

End If

(Aquí figuras las ordenes necesarias)

End If


No te acomplejes por hacer consultas de este tipo, porque puede que sepamos bastante, pero podemos ignorar cosas primarias o esenciales.

Recibe un saludo de Alberto Sánchez

Jose Angel Jose Angel
Soy tecnico soy capturista de datos
Escrito por Jose Angel Jose Angel
el 16/12/2008

Alguien me puede ayudar con este codigo para que se ejecute les agradeceria mucho por



Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Long) As Long



Private Sub Form_Load()
Dim lngRegion As Long
Dim lngReturn As Long
Dim lngFormWidth As Long
Dim lngFormHeight As Long

lngFormWidth = Me. Width / Screen. TwipsPerPixelX
lngFormHeight = Me. Height / Screen. TwipsPerPixelY
lngRegion = CreateEllipticRgn(0, 0, lngFormWidth, lngFormHeight)
lngReturn = SetWindowRgn(Me. HWnd, lngRegion, True)
End Sub
ejecute este codigo al guien me puede ayudar como hacerle

Jose Angel Jose Angel
Soy tecnico soy capturista de datos
Escrito por Jose Angel Jose Angel
el 16/12/2008

me pueden ayudar con el mio por favor quisiera que se ejecutara por favor


Private Declare Function CreateEllipticRgn Lib "gdi32" (ByVal X1 As Long, ByVal Y1 As Long, ByVal X2 As Long, ByVal Y2 As Long) As Long
Private Declare Function SetWindowRgn Lib "user32" (ByVal hWnd As Long, ByVal hRgn As Long, ByVal bRedraw As Long) As Long



Private Sub Form_Load()
Dim lngRegion As Long
Dim lngReturn As Long
Dim lngFormWidth As Long
Dim lngFormHeight As Long

lngFormWidth = Me. Width / Screen. TwipsPerPixelX
lngFormHeight = Me. Height / Screen. TwipsPerPixelY
lngRegion = CreateEllipticRgn(0, 0, lngFormWidth, lngFormHeight)
lngReturn = SetWindowRgn(Me. HWnd, lngRegion, True)
End Sub

Jose Angel Jose Angel
Soy tecnico soy capturista de datos
Escrito por Jose Angel Jose Angel
el 16/12/2008

Me marca error me manda esto (createellipticrgn)

Cristian Borrero
Ingeniero civil universidad catolica n...
Escrito por Cristian Borrero
el 16/12/2008

Me imagino que alguna vez ha utilizado un bucle

For

Next

es algo paracedo

If

end if

si hable un if y pones algos debajo del then
entonces tiene que cerrar el bucle del if con end if

ejemplo
if xxxx then
fdfdfd
end if

if yyyyy then
ffdfdf
end if

Oscar Mauricio Dominguez Giraldo
Ingenieria de sistemas universidad coo...
Escrito por Oscar Mauricio Dominguez Giraldo
el 17/12/2008

Pues por lo que veo son puros condicionales anidados lo unico que tienes que hacer es poner 2 end if mas debajo del end if que tienes al final osea:

end if
end if
end if
end sub

y ya te queda perfecto

Juan Larios Castañeda
Estado de México, Mé...
Escrito por Juan Larios Castañeda
el 17/12/2008

Oye cada bloque if debe ir encerrado en un end if o en su defecto tu quieres que se evalue cada bloque lo que tienes que hacer es

if x=x then
jjj

Elseif


Juan Larios Castañeda
Estado de México, Mé...
Escrito por Juan Larios Castañeda
el 17/12/2008

Oye cada bloque if debe ir encerrado en un end if o en su defecto tu quieres que se evalue cada bloque lo que tienes que hacer es

if x=x then
jjj

Elseif x=y then

Ssfdsf

else

ssss

endif

Nicolas Real
Analista en sistemas de computación es...
Escrito por Nicolas Real
el 29/12/2008

Eric tu rpoblema se da porque despues de cada IF va un END IF, e este caso tenes tres IF y solo un END IF
Otra forma para no escribir tantos END IF es esta: (ejemplo)

IF a = 0 then
msgbox "Hola"
ElseIF a = 1 then
msgbox "Buenas"
ElseIf a= 2 then
msgbox "Chau"
else
msgbox "el numero debe ser de 0 a 2"
end if

* Fijate que aca uso tres condiciones y solo un END IF para cerrar.
Se puede hacer como lo haces vos pero como te dije por cada IF va un End IF (solo cuando el IF ocupa una sola linea no hace falta que lo cierres con un END IF)

Espero te sirva... Un abrazo

Marcelo Gonzalez
Tecnico superior en administracion de ...
Escrito por Marcelo Gonzalez
el 29/12/2008













Eric, segun mi entender e estan faltando dos END IF antes del END SUB. Otra cosa que veo como error es la comparacion de las letras minusculas y mayusculas. Te transcribo el codigo con las modificaciones subrayadas.

Private


Sub ButtonMac1_Click( ByVal sender As System. Object, ByVal e As System. EventArgs) Handles ButtonMac1. Click

Dim n1 As Double , n2 As Double , A As String , B As String , n3 As Double , n4 As Double , n5 As Double

N1 = InputBox(

"Escriba el primer número..." , "Adición" )

N2 = InputBox(

"Escriba el segundo número..." , "Adición" )

A = InputBox(

" ¿Desea realizar algo más? (S/N)" , "Estableciendo más opciones" )

If A = "N" Or A = "n" Then

MsgBox(

"La suma es: " & n1 + n2, vbInformation, "Resultado" )

If A = "S" Or A = "s" Then

B = InputBox(

" ¿Qué desea realizar? : Restar(R), Multiplicar(M), Dividir(D), sacar Raíz Cuadrada(C)" , "Seleccione opción" )

If B = "R" Or B = "r" Then

N3 = InputBox(

"Ingrese el número a restar" , "Restando a resultado" )

N4 = n1 + n2

N5 = n4 - n3

MsgBox(

"El resultado es: " & n5, vbInformation, "Suma con opciones" )

End If


End If

End