Duvida Excel

telheiras

Power Member
estou a fazer uma macro no Excel.

1. faço record
2. faço o movimento que quero
3. paro a macro

4. executo a macro, e o Excel faz o que quero, mas mete-me na celula em que fiz a gravação, em vez de ficar na célula em que estou a executar a macro no momento.

fiz-me entender? foi um bocado confuso lol espero que alguem me ajude! thanks
 
Está explícito o suficiente.
Acabei de gravar uma macro e ele faz o que queres.
Tenta colocar aqui o código da macro para vermos onde está o "bug".
 
estou a fazer uma macro no Excel.

1. faço record
2. faço o movimento que quero
3. paro a macro

4. executo a macro, e o Excel faz o que quero, mas mete-me na celula em que fiz a gravação, em vez de ficar na célula em que estou a executar a macro no momento.

fiz-me entender? foi um bocado confuso lol espero que alguem me ajude! thanks

Porque Excel gravou a macro com referência à célula.

Tens de editar a macro, e onde tiver lá qq do género Cell(célula) ou Range(célula), coloca ActiveCell.
Para editar, fazes Run, e depois na lista de macros, seleccionas a macro e fazes Edit.

Experimenta e depois diz qq coisa.

Se não der, mete aqui o código.
 
active cell não conhecia! :)

eu ultrapassei o obstaculo editando a macro e apagando a linha completa do range :P

passou a ficar na própria como queria :)

thanks
 
Tenho aqui outra duvida,a ver se alguem me consegue ajudar.

Tenho valores espalhados entre 3 e 30 imaginemos.

queria fazer uma formula que dissesse que sempre que fosse

<5;SS
<7;VT
<9;CB
<13;RC
<20;WE

numa tentativa tentei isto, mas não está a funcionar.
=SE(J3<5;"SS");SE((J3<7)&(J3>5);"VT")
 
Tenho aqui outra duvida,a ver se alguem me consegue ajudar.

Tenho valores espalhados entre 3 e 30 imaginemos.

queria fazer uma formula que dissesse que sempre que fosse

<5;SS
<7;VT
<9;CB
<13;RC
<20;WE

numa tentativa tentei isto, mas não está a funcionar.
=SE(J3<5;"SS");SE((J3<7)&(J3>5);"VT")

Isso é porque estás a fechar o primeiro SE logo a seguir ao "SS".
Consegues usar o function wizard para criar esses IF's encadeados ?
 
agora está aceitar esta formula para a 1ª celula, mas dá para erro para todas as outras

=SE(J3<5;"SS";SE((J3<7)&(J3>=5);"VT"))

nem nunca ouvi falar no function wizard? estou a tentar fazer os if's por mim, penso que dá para fazer vários numa só linha de comando
 
Dá para fazer até 7 If's numa linha de comando.

O teu problema nessa fórmula é o "&". Terás que usar a função "E" para conseguires o que queres.

Algo como isto: =SE(J3<5;"SS";SE(E(J3<7;J3>=5);"VT";"")
 
Dá para fazer até 7 If's numa linha de comando.

O teu problema nessa fórmula é o "&". Terás que usar a função "E" para conseguires o que queres.

Algo como isto: =SE(J3<5;"SS";SE(E(J3<7;J3>=5);"VT";"")


Não precisas do "E", porque se "entrar" nessa parte da forma, é porque é >=5

A fórmula é =SE(J3<5;"SS";SE(J3<7;"VT";SE(J3<9;"CB";SE(J3<13;"RC";SE(J3<20;"WE";"resultado para quando >= 20, senão dá FALSO")))))

Vê se dá...
 
Última edição:
ah já percebi, só fechas todos os parenteses só no fim da linha, então ele não se confunde com os intervalos! many thanks!

Tenho mais duas perguntas que apareceram agora:
- dá para meter na formula do Excel, o código para o texto/resultado aparecer logo com cores?
- Tenho uma célula onde tenho VT & SS; Na célula a seguir tenho o resultado certo VT; Na célula a seguir queria que o Excel me dissesse se as duas anteriores estão iguais ou não. Escrevi isto: =SE((K3=L3);"Correcto";"Refazer")

Só que obviamente ele não identifica logo na 1ª célula o VT & SS como segmentos diferentes, por isso dá sempre refazer
 
ah já percebi, só fechas todos os parenteses só no fim da linha, então ele não se confunde com os intervalos! many thanks!

Tenho mais duas perguntas que apareceram agora:
- dá para meter na formula do Excel, o código para o texto/resultado aparecer logo com cores?
- Tenho uma célula onde tenho VT & SS; Na célula a seguir tenho o resultado certo VT; Na célula a seguir queria que o Excel me dissesse se as duas anteriores estão iguais ou não. Escrevi isto: =SE((K3=L3);"Correcto";"Refazer")

Só que obviamente ele não identifica logo na 1ª célula o VT & SS como segmentos diferentes, por isso dá sempre refazer

Acho que meter cores directamente não dá, mas podes tentar com formatação condicional... (Formatar > Formatação Condicional).

Tens o texto "VT & SS" numa célula e "VT" na outra? Se é assim, o =SE(K3=L3;"Correcto";"Refazer")) funciona, dá "Refazer" porque os conteúdos são diferentes...

Que comparação é que queres fazer?
 
sim é excatamente isso, ele dá-me refazer porque os conteudos sao diferentes.

mas neste caso queria só que ele identificasse se no texto "VT/SS" ele consegue identificar apenas o SS por exemplo. Porque o Excel vai identificar o texto exactamente igual..e eu queria que ele no meio do texto só apanhasse SS
 
Sei fazer isso, mas através de vbscript... não sei se dará directamente através de fórmulas.

O que tu queres é saber se o valor de uma célula (SS) se encontra "dentro" do valor de outra célula (VT & SS), certo?

Podes usar o FIND -> =FIND("SS";"VT & SS";1) que te dá a posição onde SS começa dentro de VT & SS, mas caso o 1º texto não exista dentro do 2º, dá erro...
 
sim. como farias em vbasic? eu só dei issona universidade mas nunca usei..

Boas,

tens de criar um macro e colocas lá este código

Código:
t1 = Range("A1").Value ' a célula onde tens o VT & SS , por exemplo
t2 = Range("B1").Value ' a célula onde tens o SS , por exemplo

ActiveCell.Value = InStr(t1, t2) 'procura o t2 dentro do t1 e dá a posição, se não existir dá 0 (zero)

Assim, tens a posição do SS dentro do VT & SS, ou dá 0 caso não exista...
 
Back
Topo