Logo Hardware.com.br
Vecchi
Vecchi Veterano Registrado
2.1K Mensagens 0 Curtidas

Malditas Legendas, será q o Excel resolve?

#1 Por Vecchi 13/12/2002 - 23:29
Ae amigos, como vão?

Caros amigos, preciso diminuir o valor 104119 de mais de 500 linhas. Coloquei um exemplo de como são essas linhas.

{104188}{104222}O Oráculo vai te ver agora.
{104478}{104516}Sei que você é o Neo.
{104531}{104558}Já vou te atender.
{104584}{104608}Você é o Oráculo?
{104617}{104639}Bingo.
{104706}{104774}Não era bem o que|esperava, não é?


Issu ae em cima é uma parte das legendas do MatriX. Eu preciso usar alguma fórmula no Excel para q faça o cálculo de uma vez só diminuindo de todas essas linhas ae o valor 104119. Pra ter uma idéia do que estou precisando, após diminuido o valor 104119 da primeira linha ficaria assim:

{69}{103}O Oráculo vai te ver agora.

Outra coisa é q todas as 500 linhas ocupam somente a coluna A do excel, sendo que todo o conteúdo de uma linha inteira está apenas na coluna 1A, assim como todo o conteúdo da linha 2 está na coluna 2A, e assim por diante.

Putz, que complicação hein?

Espero q tenham entendido o que eu quero fazer e ficaria muito agradecido se alguém me ajudar a descascar esse pepino!

Conto com vocês.

Obrigado!
Gzork
Gzork Super Participante Registrado
995 Mensagens 0 Curtidas
#3 Por Gzork
14/12/2002 - 03:26
Meu chapa,

Você pode criar o seguinte código VB na sua planilha (Ferramentas > Macro > Editor do Visual Basic...):

Sub Subtracao()

Rem Este procedimento foi desenvolvido por André Vianna, em 14/12/2002.
Rem Todos os direitos reservados - uso permitido apenas com a inclusão
Rem destas três linhas de comentário. Uso restrito a fins educacionais.

Rem Não foi incluído nenhum tratamento de erro.

Dim aux As Integer, cont1 As Integer, cont2 As Integer
Dim auxStr As String, Aux2 As String
auxStr = "<>"
aux = 0
Do Until (auxStr = "")
aux = aux + 1
Aux2 = "A" & CStr(aux)
Range(Aux2).Select
auxStr = ActiveCell.FormulaR1C1
cont1 = InStr(1, auxStr, "{", vbTextCompare)
cont2 = InStr(1, auxStr, "}", vbTextCompare)
If cont1 * cont2 > 0 Then
auxStr = Left(auxStr, cont1) & CStr(Val(Mid(auxStr, cont1 + 1, cont2 - cont1 - 1)) - 104119) & Right(auxStr, Len(auxStr) - cont2 + 1)
cont1 = InStr(InStr(1, auxStr, "{") + 1, auxStr, "{", vbBinaryCompare)
cont2 = InStr(cont1, auxStr, "}", vbBinaryCompare)
If cont1 * cont2 > 0 Then
auxStr = Left(auxStr, cont1) & CStr(Val(Mid(auxStr, cont1 + 1, cont2 - cont1 - 1)) - 104119) & Right(auxStr, Len(auxStr) - cont2 + 1)
End If
Else
auxStr = ""
End If
ActiveCell.FormulaR1C1 = auxStr
Loop
MsgBox "Terminei...", vbInformation + vbOKOnly, "Ta-dá..."
End Sub


No mesmo editor VB, vá em Executar > Executar Sub/UserForm (F5) e... Voilà!!!

Não se esqueça de fazer, ANTES, uma cópia de segurança de sua planilha, para o caso de algo dar errado!!!

A rotina foi testada, simulando-se exatamente a situação definida pelo colega...

Alternei de "vbTextCompare" para "vbBinaryCompare" para mostrar que, em casos como este, pode-se utilizar qualquer um dos dois...

Divirta-se!

[]´s
"Muitas pessoas são bastante educadas para não falar com a boca cheia, porém não se preocupam em fazê-lo com a cabeça oca." - Orson Welles
Vecchi
Vecchi Veterano Registrado
2.1K Mensagens 0 Curtidas
#5 Por Vecchi
15/12/2002 - 00:25
Gzork
Meu chapa,

Você pode criar o seguinte código VB na sua planilha (Ferramentas > Macro > Editor do Visual Basi...


Olá Gzork, como vai?

Prezado amigo primeiramente obrigado! Mais sinceramente naum entendi como usar o camando ae de cima. tipo vc disse pra eu criar o seguinte código VB na minha planilha (Ferramentas > Macro > Editor do Visual Basic...) Mais depois desses caminhos ae de cima naum sei mais onde ir. Por favor quais o próximos passos pra eu colocar a mega-fórmula do André Vianna?

Conto com vc!

Obrigado!
Gzork
Gzork Super Participante Registrado
995 Mensagens 0 Curtidas
#6 Por Gzork
15/12/2002 - 07:57
Hum...

Depois que você estiver no editor, venha nesta página do fórum e selecione e copie o trecho de VB (está totalmente em verde :wink: ).
Volte para o editor VB. No lado esquerdo, deve haver uma coluna cujo título, na barra, deverá ser algo do tipo "Projeto - VBAProject", dentro desta janela, você deve encontrar o objeto "EstaPasta_de_trabalho". Clique com o botão direito do mouse sobre este objeto e escolha a opção "Visualisar código". Neste instante deverá abrir uma janela em branco do lado direiro; nela, cole o código previamente copiado.
Neste momento, tendo a certeza que a planilha está com os dados que você descreveu no seu primeiro post, vá em Executar > Executar Sub/UserForm (F5).
Se tudo correr bem, uma pequena mensagem aparecerá: "Terminei...".
Vá, então, para a planilha e verifique se o efeito desejado foi obtido...

Espero ter explicado melhor agora... Qualquer dúvida, é só postar!
Boa sorte!

[]´s
"Muitas pessoas são bastante educadas para não falar com a boca cheia, porém não se preocupam em fazê-lo com a cabeça oca." - Orson Welles
Gzork
Gzork Super Participante Registrado
995 Mensagens 0 Curtidas
#13 Por Gzork
16/12/2002 - 12:41
Weyne Jr
Não entendo porque essa complicação toda. É muito mais simples utilizar um programa que edite as legendas como o S...


Não sei não Weyne, mas pode ser pelo mesmo motivo que montanhista não usa helicóptero para chegar ao topo... Talvez seja o instinto do ser humano de vencer os desafios... sei lá...
Só sei que encarei como desafio e, por sorte, dei uma sugestão que ajudou nosso colega... :wink:

Ao Vecchi, fico satisfeito por ter auxiliado de alguma forma na solução de seu problema e saber que não precisa jogar fora seu trabalho!

[] a todos!
"Muitas pessoas são bastante educadas para não falar com a boca cheia, porém não se preocupam em fazê-lo com a cabeça oca." - Orson Welles
Vecchi
Vecchi Veterano Registrado
2.1K Mensagens 0 Curtidas
#14 Por Vecchi
17/12/2002 - 00:52
Gzork
Ao Vecchi, fico satisfeito por ter auxiliado de alguma forma na solução de seu problema e saber que não precisa jogar fora seu trabalho!


Ae graaaaaannnnnnndeeeeeee Gzork, blz?

hehehehe... mais uma vez te agradeço pela mão que me deu. E realmente vc me salvou de perder o meu trabalho. E que trabalheira deu, hehehehe.... mais o q importa é q vc salvou meu trabalho.

Valeu AMIGÃO!!! :lol: :lol: :lol:
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal