Saltar al contenido

Mostrar en msgbox el texto de una celda que incluye una variable


Recommended Posts

publicado

Buenas a todos.

 

Estoy realizando un ejercicio en el que se me pide mostrar un msgbox en el que aparezca el texto que hay contenido en una celda.

Hasta ahí bien, no hay problema.

El problema es que ese texto debe incluir una variable y mostrar en el msgbox el valor de la variable.

 

Es decir, que si en el contenido de la celda está el texto "El resultado de la suma es  VARIABLE_SUMA", en el msgbox debe aparecer "El resultado de la suma es  4"

 

Adjunto un archivo de ejemplo para intentar que se vea más claro.

Muchas gracias por adelantado.

Un saludo.

 

 

Ejercicio msgbox de celda con variable incluida.xlsm

publicado
Hace 28 minutos , Toldeman dijo:

Hola.

Prueba asi:

 


	MsgBox Hoja1.Range("a1").Value & "  " & cantidad1 + cantidad2

 

Un saludo.

Hola Toldeman, muchas gracias por contestar.

 

Es una buena opción si la variable está al final o al principio del texto. Pero si la variable está entre las palabras del texto no me valdría.

Por ejemplo si el texto de la celda fuera:

 

"El resultado de (cantidad1) + (cantidad2) es VARIABLE_SUMA".

 

Me gustaría que el msgbox mostrase:

 

"El resultado de 1 + 3 es 4"

 

Lo que necesito es que en el msgbox se sustituyan los nombres de la variables por su valor, ya que en el ejercicio real hay muchas celdas cada uno con un mensaje distintos y cada celda incluye algunas algunas variables.

Disculpadme si no lo he explicado bien. He intentado simplificar el ejemplo para que fuera más sencillo de explicar y quizá me he pasado de sencillez, jje.

publicado

Hola.

 

Prueba asi:

	Private Sub CommandButton1_Click()
	    Dim cantidad1 As Integer
    Dim cantidad2 As Integer
    Dim VARIABLE_SUMA As Integer
    
    cantidad1 = 1
    cantidad2 = 3
    VARIABLE_SUMA = cantidad1 + cantidad2
    h = 1
    j = Mid(Hoja1.Range("a1"), h)
  Do
   If j = " " Then Exit Do
  j = Mid(j, h)
 
  h1 = InStr(2, j, " ")
  n = Mid(j, 1, h1)
  h = Len(n)
  If "cantidad1" = Replace(Replace(Replace(n, " ", ""), "(", ""), ")", "") Then n = cantidad1
  If "cantidad2" = Replace(Replace(Replace(n, " ", ""), "(", ""), ")", "") Then n = cantidad2
  If InStr(1, n, "VARIABLE_SUMA") > 1 Then n = cantidad1 + cantidad2
  msj = msj & " " & Replace(n, " ", "")
Loop
	    MsgBox msj
End Sub

 

Un saludo.

publicado

Hola Toldeman.

 

Lo primero muchas gracias por responder y por tu ayuda. He estado comprobando el código y me da fallo en la última vuelta del bucle.

 

"Se ha producido el error '5' en tiempo de ejecución:

Argumento o llamada a procedimiento no válida"

 

Creo que es debido a que en ese último paso, al ejecutar j=Mid(j,h) el valor de h es 0.

 

De todas maneras este código me plantea una duda. ¿Funcionaría si el texto de la celda fuera otro?

Por ejemplo si el texto de la celda fuera:

 

"El estudiante (variable_nombre_estudiante) tiene una nota de (variable_nota) en su examen"

Ejercicio msgbox de celda texto variables incluidas 2.xlsm

Archivado

Este tema está ahora archivado y está cerrado a más respuestas.

×
×
  • Crear nuevo...

Información importante

Echa un vistazo a nuestra política de cookies para ayudarte a tener una mejor experiencia de navegación. Puedes ajustar aquí la configuración. Pulsa el botón Aceptar, si estás de acuerdo.