Visual Basic - Consulta

Life is soft - evento anual de software empresarial
 
Vista:

Consulta

Publicado por Andrés (3 intervenciones) el 29/03/2012 15:32:29
Buenos dias:

No me manejo mucho en visual basic, es por esto que tengo la siguiente pregunta.

Estoy intentando hacer un formulario en userform sencillo pero tengo dudas con el codigo. Lo que quiero hacer es lo siguiente.

Supongamos que yo tengo la siguiente direccion mac de un modem o router cualquiera 001DCE5874

Necesito que al ingresar una mac cualquiera me sume 2 al ultimom digito. Con el ejemplo anterior sila mac termina en digito 4 que me sume 2 y termine en 6, con la condicion que si por ejemplo termina en 8, debe quedar en 0 y no en 10 y que si termina en 9 debe terminar en 1 y no en 11.

La otra condicon es que si termina en una letra por ejemplo 001DCE587B, me debe sumar 2 letras tambien por lo cual si termina en letra B, debe quedar en una D, pero con la salvead de que como todas las mac llegan hasta la letra F, comience nuevamente desde la letra A. Por lo tanto si la mac termina en F, debe sumar 2 y quedar en B.

Y como la ultima letra comienza a correr desde la A nuevamente, el penultimo digito o letra tambien debe avanzar un lugar.

Les agradeceria enormemente que me ayudaran.. Lo hice en java y me funciona ok pero con visual no me resulta.

Muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Consulta

Publicado por Andrés (3 intervenciones) el 29/03/2012 17:29:53
Por mas que lo intento hacer no me sale... espero que por lo menos me orienten... muchas gracias

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Daniel

Consulta

Publicado por Daniel (360 intervenciones) el 29/03/2012 20:26:35
A ver si es lo que necesitas
Dim X As String
Dim Letras(6)
X = InputBox("Ingrese un valor MAC") ' Aqui le cargas el valor por ejemplo de un textbox
Dim Ultimo As String
X = UCase(X) 'En caso de que se ingresen letras minusculas
Ultimo = Right(X, 1)
If IsNumeric(Ultimo) Then
Ultimo = Ultimo + 2
If Ultimo = 10 Then Ultimo = 0
If Ultimo = 11 Then Ultimo = 1
Nuevomac = Left(X, Len(X) - 1) & Ultimo
MsgBox (Nuevomac)
Else
Letras(1) = "A"
Letras(2) = "B"
Letras(3) = "C"
Letras(4) = "D"
Letras(5) = "E"
Letras(6) = "F"
Dim Indice As Integer
While Letras(Indice) <> Ultimo
Indice = Indice + 1
Wend
Indice = Indice + 2
If Indice = 7 Then Indice = 1
If Indice = 8 Then Indice = 2
Ultimo = Letras(Indice)
Nuevomac = Left(X, Len(X) - 1) & Ultimo
MsgBox (Nuevomac)
End If
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Daniel

Consulta

Publicado por Daniel (360 intervenciones) el 29/03/2012 21:47:52
Cabe aclarar que en ese código no se comprende el hecho de que el usuario puede teclear otra letra distinta a las mencionadas, pero eso lo resolves con if else
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta

Publicado por Andrés (3 intervenciones) el 29/03/2012 22:03:57
Muchas gracias por las aclaraciones, estoy enormemente agradecido
muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar