hola chicos,
para el caso de VBA hay varias posibilidades (a añadir a la apuntada por J. Maria).
pej. que yo haya visto:
a) si quieres que te inserte el salto solo con [enter], pon la propiedad 'EnterKeyBehavoir' a True
:smt017
vuelto a editar ... y ya van tres...
pido disculpas por no haber leido bien la consulta (" ... al pulsar intro ..."). Creo que con la solucion aportada por J. Maria, mas el punto 'a' de este post ya esta la respuesta. Lo que viene a continuacion sobraba, pero ya que esta ahi lo dejo por si le es util a alguien. Disculpas de nuevo
fin edicin
b) si quieres que 'salte la linea' automaticamente al llegar al ancho del textbox, asegurate de que la propiedad 'WordWrap' esta a true (esto no es incompatible con la anterior y viseversa), aunque si llegas en medio de una cadena te la pasa entera a la siguiente linea.
c) si te refieres a que inserte un salto de linea al llegar a un nº de caracteres por linea podrias usar algo parecido a esto (seguro que muy simplificable pero que parece funcionar)
editado => OJO
tras mirarlo mas despacio el procedimiento requeriria controlar bastantes factores para evitar disgustos (pej: si se cambia el punto de inserccion al centro de una linea y se escribe algo, si se pulsa la tecla sin levantarla, y unas cuantas mas que me vienen a la cabeza). Una posibilidad es, combinandola con algun condicional mas, cambiar el codigo a otro evento <habria que probar>.
Pero bueno, creo que al menos sirve para ver por donde investigar.
fin edicion Código:
Private Sub TextBox1_KeyUp(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
Dim nroChr As Byte
nroChr = 6
With TextBox1
If Len(.Text) < nroChr Then Exit Sub
Select Case KeyCode
Case vbKeyReturn, vbKeyTab, vbKeyBack, vbKeyLeft, vbKeyRight, vbKeyUp, _
vbKeyDown, vbKeyClear, vbKeyDelete, vbKeyEscape
Case Else
If Len(.Text) = nroChr Then
.Text = .Text & vbCr
ElseIf (Len(.Text) - (2 * (.LineCount - 1))) Mod nroChr = 0 Then
.Text = .Text & vbCr
End If
End Select
End With
End Sub NOTA: seguramente te convendria prevenir alguna tecla mas en el 1er case del select case
editado OJO:
en la variable nroChr deberias poner el nº de caracteres a los que quieres que salte la linea
aunque te saltara la linea cuando tengas visualmente el nº de caracteres indicado (incluidos espacios) en realidad el largo del texto (len) sera mayor, pues si no me equivoco incluira el caracter de avance de linea y retorno de carro. Lo aviso sobre todo por las sorpresas (yo lo acabo de descubrir) fin edicion
bueno, solo por añadir mas opciones. Espero que ayude
un saludo
Ivan