Boa tarde.
Preciso fazer uma quebra de linha em VBA mas que separe quando encontrar o ultimo espaço limitando a quebra no 28º caracter. Eu fiz um código que realiza a quebra no caracter para ficar nos limites da minha planilha, porem preciso fazer essa quebra por palavra e não no meio dela.
Exemplo:
Com o código abaixo fica assim;
desenho de teste desta budeg
a zuada blablabla
----------------
Quero que fique assim;
desenho de teste desta
budega zuada blablabla
Independente da quantidade de caracteres, que quebre antes dos 28.
Grato.
If Len(Des) < 28 Then Range("C" & Linha).Value = Des Else Range("C" & Linha).Value = Left(Des, 28) Range("C" & Linha + 1).Value = Right(Des, Len(Des) - 28) Linha = Linha + 1 End If
Olá. Consegue postar o arquivo com a rotina?
Ou explicar melhor as variáveis? Não consegui entender o que cada uma faz.
Se a informação ou resposta foi útil, clique na mãozinha próxima ao botão "CITAR no canto superior direito.
Se o seu problema foi resolvido, clique no V verde para aceitar como resposta.
Boa Noite! Espero que ajude.
Sub Teste_Des() Dim i, Linha, D As Integer Dim Des As String 'vamos supor que você queira começar a transpor na linha 5 Linha = 5 'utilizando seu texto como Des e levando em consideração que entre cada palavra haja espaço Des = "Preciso fazer uma quebra de linha em VBA mas que separe quando encont" & _ "rar o ultimo espaço limitando a quebra no 28º caracter. Eu fiz um código qu" & _ "e realiza a quebra no caracter para ficar nos limites da minha planilha, porem pr" & _ "eciso fazer essa quebra por palavra e não no meio dela." For i = 1 To Len(Des) D = 28 Do Until Mid(Left(Des, D), D, 1) = " " D = D - 1 Loop Linha = Linha + 1 Range("C" & Linha) = Left(Des, D) Des = Right(Des, Len(Des) - D) If Not Len(Des) < 28 Then i = i + D Else Linha = Linha + 1 Range("C" & Linha) = Des Exit Sub End If Next i End Sub
Sub Teste_Des() Dim i, Linha, D As Integer Dim Des As String 'vamos supor que você queira começar a transpor na linha 5[/color] Linha = 5 'utilizando seu texto como Des e levando em consideração que entre cada palavra haja espaço[/color] Des = "Preciso fazer uma quebra de linha em VBA mas que separe quando encont" & _ "rar o ultimo espaço limitando a quebra no 28º caracter. Eu fiz um código qu" & _ "e realiza a quebra no caracter para ficar nos limites da minha planilha, porem pr" & _ "eciso fazer essa quebra por palavra e não no meio dela." For i = 1 To Len(Des) D = 28 Do Until Mid(Left(Des, D), D, 1) = " " D = D - 1 Loop Linha = Linha + 1 Range("C" & Linha) = Left(Des, D) Des = Right(Des, Len(Des) - D) If Not Len(Des) < 28 Then i = i + D Else Linha = Linha + 1 Range("C" & Linha) = Des Exit Sub End If Next i End Sub
O seu código está executando o que vc pediu. Eu testei aqui, ele quebra antes de 28 caracteres e não separa palavras.
Não entendi o erro do seu código.
Se a informação ou resposta foi útil, clique na mãozinha próxima ao botão "CITAR no canto superior direito.
Se o seu problema foi resolvido, clique no V verde para aceitar como resposta.
Boa noite! Acho que vc confundiu a minha resposta com a dúvida inicial.
Fiz um modelo baseado nas dicas do link abaixo, veja se é isto:
Character Limit per line
https://www.reddit.com/r/excel/comments ... _per_line/
[]s
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
.
Com coluna auxiliar é mole!! ... Fiz um teste aqui que nem precisou de VBA, e ficou igual ao postado acima!!!
.
Digite os textos na coluna A ... formate a coluna B para "quebra automática" ... ajuste a largura da coluna B como desejar ... B1=A1 ... pronto, é só arrastar!!!
.
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
.
Como não podia mais editar, e não é recomendável fazer postagens seguidas, esperei alguém falar alguma coisa para poder esclarecer, mas estão demorando demais para esse ansioso aqui kkk
.
Nem precisa da coluna auxiliar ... é só formatar a coluna A para "quebra automática" e ajuste a largura da coluna como desejar ... pronto, é só ir digitando ... ao dar Enter o texto vai ficar com o tamanho desejado!!
.
Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel
.
Com coluna auxiliar é mole!! ... Fiz um teste aqui que nem precisou de VBA, e ficou igual ao postado acima!!!
.
Digite os textos na coluna A ... formate a coluna B para "quebra automática" ... ajuste a largura da coluna B como desejar ... B1=A1 ... pronto, é só arrastar!!!
.
Não sei se é essa a solução procurada, mas de qualquer forma, posso dizer que você "pensou fora da caixa". Sua resposta é SUPER SIMPLES e funcional. Parabéns!
Se a informação ou resposta foi útil, clique na mãozinha próxima ao botão "CITAR no canto superior direito.
Se o seu problema foi resolvido, clique no V verde para aceitar como resposta.
Obrigado a todos pelas Informações.
Resolvido.