Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/06/2012, 03:20
Avatar de pkj
pkj
 
Fecha de Ingreso: julio-2006
Ubicación: Órbita sincrónica
Mensajes: 899
Antigüedad: 18 años, 3 meses
Puntos: 29
Respuesta: Agregar diferentes palabras a un formato final

Creo que con "3 textbox" te refieres a 3 combobox con listas de frutas.

De todas formas me he tomado la libertad de crearte el programa y explicarte lo que hace, ya que veo que tienes poca idea y pienso que si estudias un codigo sabiendo lo que debe hacer y con explicaciones igual te sirve (a ti o a otros) para aprender algunas cosas.

Solo hay que crear un form y ponerle 4 textbox, 3 combobox y un commandbutton

Código vb:
Ver original
  1. Option Explicit
  2. Const constante = "Jugo de "
  3.  
  4. Private Sub Form_Load()
  5.  
  6.   ' cargamos los textbox
  7.  ' recuerda configurar en las propiedades de los textbox Multiline=True
  8.  Text1.Text = "pera" & vbCrLf & "manzana" & vbCrLf & "fresas"
  9.   Text2.Text = "melón" & vbCrLf & "durazno" & vbCrLf & "moras"
  10.   Text3.Text = "patilla" & vbCrLf & "piña" & vbCrLf & "naranja"
  11.  
  12.   ' limpiamos el text4
  13.  Text4.Text = ""
  14.  
  15.   ' cargamos los combobox y seleccionamos el primer elemento de cada uno
  16.  CargaCombos 0, 0, 0
  17.  
  18.  
  19. End Sub
  20.  
  21. Private Sub CargaCombos(ByVal Index1 As Integer, ByVal Index2 As Integer, ByVal Index3 As Integer)
  22.  
  23.   ' para no escribir todos los nombres que podrian ser cientos
  24.  ' lo hacemos de un modo en que no importe cuantos haya
  25.  
  26.   ' y ademas se puede usar para añadir elementos a los combos
  27.  ' cuando se escribe en los textbox durante la ejecucion (ver evento Text1_LostFocus)
  28.  ' para eso añado 3 parametros que serviran para recordar que
  29.  ' elementos estaban seleccionados
  30.  
  31.   ' creamos una matriz de strings
  32.  Dim matriz() As String
  33.  
  34.   Dim f As Integer
  35.  
  36.   ' llenamos la matriz con las palabras de cada textbox
  37.  matriz = Split(Text1.Text, vbCrLf)
  38.   ' y pasamos los elementos a un combobox
  39.  Combo1.Clear ' (primero se vacia el combo)
  40.  For f = 0 To UBound(matriz)
  41.     Combo1.AddItem matriz(f)
  42.   Next f
  43.  
  44.   ' asi con los 3 combos
  45.  matriz = Split(Text2.Text, vbCrLf)
  46.   Combo2.Clear
  47.   For f = 0 To UBound(matriz)
  48.     Combo2.AddItem matriz(f)
  49.   Next f
  50.   Combo3.Clear
  51.   matriz = Split(Text3.Text, vbCrLf)
  52.   For f = 0 To UBound(matriz)
  53.     Combo3.AddItem matriz(f)
  54.   Next f
  55.  
  56.   ' y por ultimo seleccionamos un elemento de cada combo
  57.  If Combo1.ListCount > Index1 Then Combo1.ListIndex = Index1
  58.   If Combo2.ListCount > Index2 Then Combo2.ListIndex = Index2
  59.   If Combo3.ListCount > Index3 Then Combo3.ListIndex = Index3
  60.  
  61. End Sub
  62.  
  63.  
  64. Private Sub Text1_LostFocus()
  65.   ' cada vez que un textbox cambia se recargan los combos
  66.  CargaCombos Combo1.ListIndex, Combo2.ListIndex, Combo3.ListIndex
  67. End Sub
  68.  
  69. Private Sub Text2_LostFocus()
  70.   ' cada vez que un textbox cambia se recargan los combos
  71.  CargaCombos Combo1.ListIndex, Combo2.ListIndex, Combo3.ListIndex
  72. End Sub
  73.  
  74. Private Sub Text3_LostFocus()
  75.   ' cada vez que un textbox cambia se recargan los combos
  76.  CargaCombos Combo1.ListIndex, Combo2.ListIndex, Combo3.ListIndex
  77. End Sub
  78.  
  79. Private Sub Command1_Click()
  80.   'al pulsar el boton puedes...
  81.    
  82.   ' limpiamos el text4
  83.  Text4.Text = ""
  84.  
  85.   'y escribimos la constante y la combinacion de lo elegido en los 3 combos:
  86.  Text4.Text = constante & Combo1.Text & " - " & Combo2.Text & " - " & Combo3.Text
  87.  
  88.  
  89.   MsgBox "pulsa una tecla"
  90.  
  91.   ' o podemos escribir todos como en el ejemplo
  92.  Text4.Text = ""
  93.   Dim f As Integer
  94.   ' pero para eso hay que asegurarse de que los combos tienen la misma cantidad de elementos:
  95.  Dim Elementos As Integer
  96.   Elementos = Combo1.ListCount - 1
  97.   If Combo2.ListCount - 1 < Elementos Then Elementos = Combo2.ListCount - 1
  98.   If Combo3.ListCount - 1 < Elementos Then Elementos = Combo3.ListCount - 1
  99.   For f = 0 To Elementos
  100.     Text4.Text = Text4.Text & constante & Combo1.List(f) & " - " & Combo2.List(f) & " - " & Combo3.List(f)
  101.  
  102.     ' si no es el ultimo añadimos un salto de linea
  103.    If f < Elementos Then Text4.Text = Text4.Text & vbCrLf
  104.   Next f
  105.  
  106.   'tambien puedes mostrar todas las combinaciones posibles haciendo 3 bucles for uno dentro de otro
  107.  
  108. End Sub

Como verás se puede incluso añadir frutas a las listas.

Saludos
__________________
No hay preguntas tontas, solo gente estup..., ¡No!, ¿como era? No hay gente que pregunte a tontos... ¡Nooo!... ¡Vaya cabeza!

Última edición por pkj; 21/06/2012 a las 03:29