Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
Por Diegonsf
Posts
#43700
Bom, é o seguinte, tenho um textbox com multiline, preciso que nessa caixa de texto a pessoa possa escrever o arquivo normal, mais que ao executar o botão ele tem que fazer uma leitura na caixa de texto, se a primeira linha tiver mais que 72 carácter ele divide essa linha em 2 linhas e coloca cada linha em um label ou numa caixa de texto o restante da frase, caso tiver no textbox 2 linha que ele consiga fazer essa separação da mesma forma cada linha. Estou usando o seguinte comando para verificação de tamanho de carácter, mais não consigo fazer o que preciso, irei deixa um exemplo para facilitar o entendimento.

"Por vezes existe a necessidade de personalizar o comportamente e/ou funcionalidade de determinados controlos por as mais diversas razões.
Estas alterações estão muitas vezes já contempladas nas propriedades do próprio objecto e o utilizador apenas necessita de a alterar."

No texto acima, tem 2 linhas, as duas tem acima de 72 carácter, preciso fazer um comando para dividir a primeira linha que caiba 72 carácter, e colocar ele em um label ou no textbox cada linha dividida, o mesmo acontecerá com a segunda linha, assim por diante. pois o sistema que estou fazendo essa exportação tem uma limitação de caráter de 72, e preciso dividir essa linha em varias linha.


'Verificar o tamanho de carácter do textbox.
Private totalLines As Long
Private Sub Command_Click()
ValidaLinhasCaracteres
End Sub
Private Function ValidaLinhasCaracteres() As Integer
Const QtdeMaxCarac = 10 ' Quantidade máxima de caracteres por linha.
Dim totalLines() As String ' Cria um array de tipo string
Dim i As Long ' Para controle do loop.

' Coloca no array criado a lista de linhas existentes na TextBox
totalLines = Split(txtTeste.Text, vbCrLf)

' Valida quantidade Caracteres por linha.
For i = LBound(totalLines) To UBound(totalLines)
If Len(totalLines(i)) >= QtdeMaxCarac Then
MsgBox "Número de caracteres na linha " & CStr(i + 1) & " superior a " & CStr(QtdeMaxCarac)
End If
Next i

' Retorna o número de linhas.
ValidaLinhasCaracteres = UBound(totalLines)

End Function

Se alguém tiver uma luz. fico muito grato. é obrigado a todos.
#43753
consegui com o codigo abaixo, só não estou conseguindo fazer um laço de repetição que ele repita a linha a linha, ele sempre a primeira linha. alguém pode me informar onde estou errando? até o momento conseguir fazer ele quebrar o texto conforme eu preciso, mais não consigo pular para a linha a linha.

str = Split(txt_melhoriasinspecao.Text, Chr(13)) ', vbCrLf)
soa = 186

If Sheets("conta").Cells(lLinha, 186) = "" Then

Resultado = UBound(str)

For i = 1 To Resultado

recebe = str(i)
If NumChars > 0 Then Else NumChars = 70
lngLen = Len(recebe)
If lngLen > NumChars Then
ReDim Preserve strOut((lngLen - 1) \ NumChars)
For lngA = 1 To lngLen Step NumChars
strOut(lngB) = Mid$(recebe, lngA, NumChars)
lngB = lngB + 1
Next lngA
ElseIf lngLen > 0 Then
ReDim strOut(0)
strOut(0) = recebe
Else
strOut = Split(vbNullString)
End If
SplitEvery = strOut
On Error Resume Next
textbox1.text = strOut(0)
textbox2.text = strOut(1)
textbox3.text = strOut(2)
'somastr = soa + (i)
'Sheets("conta").Cells(lLinha, somastr) = str(i)
'MsgBox "não tem mais"

Next i

fico no aguardo.
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord