Respostas criadas no fórum
-
AutorArtigos
-
jorgerod
Administradorjorgerod
Administradorolá wagner,
como já deves ter reparado, a edição de macros é parte da segurança inerente do excel e não pode ser modificada logo à partida, ou seja, quando o office é instalado.
no entanto, é possível fazer alguma coisa, mas só depois de aceitar a 1ª vez. vê, a este propósito o seguinte link do mvp ken puls:
fica bem e diz qq coisa, ok?
jorgerod
Administradorboas, nelinhor,
experimenta, em j10, copiando pela coluna, a seguinte fórmula: =se(ou(e10=””;g10=””);””;(-e10+g10))
já agora, em i10 e copiando pela coluna, experimenta a seguinte fórmula: =se(h10=””;””;h10-f10)
verifica e diz qq coisa, ok?
fica bem.
jorgerod
Administradorqual a versão de excel?
se não acontece sempre, o melhor será ver se o comando foi efectuado como deve ser. que eu saiba, não existe qualquer informação de existência de algum bug sobre este assunto… consegues dar mais pormenores?
obrigado e fica bem.
jorgerod
Administradortalvez com um pouco de código. exemplo:
range(“a1:e10”).name = “nome1”
range(“a15:e20”).name = “nome2”
range(“a25:e35”).name = “nome3”e assim, sucessivamente.
fica bem.
jorgerod
Administradorvê em: http://support.microsoft.com/kb/291308/pt-br
pode ser que te ajude.
jorgerod
Administradortalvez:
=soma.se(b1:b5;”cc”;c1:c5)
fica bem
jorgerod
Administradoralbino,
podes tentar criar uma lista dinãmica e, na coluna onde tens os nomes, efectuares a ordenação de a-z ou de z-a. assim, as células em branco nem sequer aparecem na lista.
exemplo de lista dinâmica:
supõe que tens uma lista de nomes na coluna a e queres a lista pendente em f1. então, nesta célula, digitas, na origem da validação de dados (lista), o seguinte: =deslocamento($a$1;0;0;contar.val($a:$a);1)
agora, supõe que, na coluna a, tens os nomes de a1:a6. se fores a f1, verás a lista pendente. depois, apagas um nome na coluna a e, clicando nessa coluna a, ordenas de a-z ou de z-a. depois, vais à lista pendente e verás que não tens nenhuma célula em branco.
será isto que pretendes?
fica bem e diz qq coisa.
jorgerod
Administradorjorgerod
Administradoralbino,
para efectuar o clearcontents de células unidas (merged) – no exemplo c9=c9:h9, j9=j9:ac9, etc -, há, para além do código que já está aqui publicado, um outro segmento, que dará o mesmo resultado e é bem mais condensado:
for each cell in sheets(1).range(“c9, j9, c12, j17, n20, y20, aj20”).cells
cell.mergearea.clearcontents
next cellexperimenta e diz qq coisa.
fica bem.
jorgerod
Administradorboas, albino,
experimenta, adaptando à s tuas necessidades e depois diz qq coisa, ok?
fica bem.
código:
private sub worksheet_change(byval target as range)
dim cll as range, mergeaddress as string
if range(“ae9”) “” then
msgbox “rectifique os campos” + chr$(13) & “procedimentos, quant.,ajudante, anestesista.”, vbokonly, “atenção”
end if
if target.address = “$ae$9” then
application.enableevents = false
for each cll in sheets(1).range(“c12, j17, n20, y20, aj20”).cells
mergeaddress = cll.mergearea.address(0, 0)
cll.mergecells = false
cll.clearcontents
range(mergeaddress).mergecells = true
next cllapplication.enableevents = true
end if
end sub
jorgerod
Administradoralbino,
supondo que tens o range i14:k14 unido e centrado, talvez utilizando o seguinte código, te dê o resultado que pretendes:
private sub worksheet_change(byval target as range)
if target.address = “$c$8” then
application.enableevents = false
range(“i14”).mergearea.clearcontents
application.enableevents = true
end if
end subexperimenta e diz qq coisa, ok?
fica bem.
jorgerod
Administradorpodes colocar o ficheiro aqui? se não, podes mandar-me por e-mail. nda, como sempre…
jorgerod
Administradoralbino,
onde é que colocaste o código? foi na própria worksheet ou foi num módulo? se foi num módulo, não vai dar, mas, como experimentei, se for no código da própria worksheet, sempre que alterares o conteúdo da célula c8, aqs células que mencionaste são imediatamente apagadas.
fica bem e diz qq coisa, ok?
jorgerod
Administrador -
AutorArtigos
EXCELer Tudo sobre EXCEL em Português