1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.
  2. A secção Microsoft/Windows encontra-se actualmente em processo de reestruturação.
    Remover anúncio

Duvida Excel

Discussão em 'Windows 7 e anteriores' iniciada por telheiras, 7 de Outubro de 2008. (Respostas: 16; Visualizações: 922)

  1. telheiras

    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
     
  2. olly

    olly Power Member

    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".
     
  3. Zylmhuin VII

    Zylmhuin VII Power Member

    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.
     
  4. olly

    olly Power Member

    Concordo com o Zylmhuin VII
    Estou a ver a minha macro e está definida como ActiveCell.
    Se te sentires à vontade para modificar a macro basta alterar esse ponto.
     
  5. telheiras

    telheiras Power Member

    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
     
  6. telheiras

    telheiras Power Member

    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")
     
  7. Stormgiant

    Stormgiant Moderador Corredor
    Staff Member

    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 ?
     
  8. telheiras

    telheiras Power Member

    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
     
  9. DisturbedGod

    DisturbedGod 1st Folding then Sex

    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";"")
     
  10. Zylmhuin VII

    Zylmhuin VII Power Member


    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: 13 de Outubro de 2008
  11. telheiras

    telheiras Power Member

    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
     
  12. Zylmhuin VII

    Zylmhuin VII Power Member

    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?
     
  13. telheiras

    telheiras Power Member

    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
     
  14. Zylmhuin VII

    Zylmhuin VII Power Member

    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...
     
  15. telheiras

    telheiras Power Member

    sim. como farias em vbasic? eu só dei issona universidade mas nunca usei..
     
  16. Zylmhuin VII

    Zylmhuin VII Power Member

    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...
     

Partilhar esta Página