** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Otros de Microsoft: Windows y Office > Excel
  Mensajes nuevos Mensajes nuevos RSS - Insertar líneas de comentarios en TextBox
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoInsertar líneas de comentarios en TextBox

 Responder Responder
Autor
Mensaje
Redneckman Ver desplegable
Nuevo
Nuevo


Unido: 12/Junio/2006
Localización: España
Estado: Sin conexión
Puntos: 8
Enlace directo a este mensaje Tema: Insertar líneas de comentarios en TextBox
    Enviado: 05/Mayo/2011 a las 22:10
Hola, muy buenas a todos.

Os pido nuevamente ayuda con una macro que estoy realizando y en la que me he quedado atascado.
Lo primero, una captura para intentar explicar mejor la situación:



Como podéis ver, existe una columna 'CODIGO' en donde existen comentarios que tienen siempre la misma estructura: la persona que lo ha hecho y un máximo de diez líneas con referencias (por ejemplo, UD000001(01)). Estas referencias siempre tienen el mismo número de caracteres.

Pues bien, lo que yo quiero hacer es que al introducir cualquier valor en la columna 'REAL', se muestre un formulario con diez TextBox, en donde se recojan las diez referencias del comentario.

Lo de que al introducir cualquier valor en la columna 'REAL', se muestre el formulario lo he resuelto así:

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 18 Then 'Se ha hecho algún cambio en la columna 'REAL'.
ControlUnidades_01.TextBox1.Value = Cells(Target.Row, 2).Comment.Text
ControlUnidades_01.Show
End If
End Sub


Con esto consigo que al introducir el valor, aparezca el formulario (se llama ControlUnidades_01), pero...



...lo que no logro es que cada línea del comentario, es decir, cada referencia, aparezca en un
TextBox distinto. Con el código que he puesto aparece todo en un único TextBox.

¿Alguna sugerencia de cómo podría hacerlo?

Muchísimas gracias de antemano.
Arriba
Jordi-Albert Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Abril/2006
Localización: Alemania
Estado: Sin conexión
Puntos: 4315
Enlace directo a este mensaje Enviado: 06/Mayo/2011 a las 00:00
debes partir el texto....

Private Sub Worksheet_Change(ByVal Target As Range)

Dim intIni nbsp;    As Integer
Dim intIdx nbsp;    As Integer
Dim intPos     As Integer
Dim strComment As String

If Target.Column = 18 Then 'Se ha hecho algún cambio en la columna 'REAL'.
intIni = 1
intPos = 0
strComment = Cells(Target.Row, 2).Comment.Text
For intIdx = 1 To Len(strComment)
   If Asc(Mid(strComment, intIdx, 1)) = 10 Then
      Call ponerTexto(intPos, Mid(strComment, intIni, intIdx - intIni))
      intPos = intPos + 1
      intIni = intIdx + 1
   End If
Next
'____tenemos que poner el último texto
Call ponerTexto(intPos, Mid(strComment, intIni))
controlUnidades_01.Show
End If
End Sub

Sub ponerTexto(intPos As Integer, strTexto As String)

Select Case intPos
   Case Is = 0
       '____no hacemos nada. es el nombre
   Case Is = 1
       controlUnidades_01.TextBox1.Value = strTexto
   Case Is = 2
       controlUnidades_01.TextBox2.Value = strTexto
   Case Is = 3
       controlUnidades_01.TextBox3.Value = strTexto
   Case Is = 4
       controlUnidades_01.TextBox4.Value = strTexto
   Case Is = 5
       controlUnidades_01.TextBox5.Value = strTexto
   Case Is = 6
       controlUnidades_01.TextBox6.Value = strTexto
   Case Is = 7
       controlUnidades_01.TextBox7.Value = strTexto
   Case Is = 8
       controlUnidades_01.TextBox8.Value = strTexto
   Case Is = 9
       controlUnidades_01.TextBox9.Value = strTexto
   Case Is = 10
       controlUnidades_01.TextBox10.Value = strTexto
End Select
End Sub


Editado por Jordi-Albert - 06/Mayo/2011 a las 00:03
Arriba
Redneckman Ver desplegable
Nuevo
Nuevo


Unido: 12/Junio/2006
Localización: España
Estado: Sin conexión
Puntos: 8
Enlace directo a este mensaje Enviado: 06/Mayo/2011 a las 11:10
Impresionante, Jordi-Albert.
El código funciona perfectamente.

¡Muchísimas gracias!
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable