Ainda bem que desistir de converter as formulas de formatação condicional que uso, para pegar valores com o vba
se uma dessa
=E($AT$2="Y";$AU$2=T18;OU(E(S17>=$AT$1;S17<=$AV$1);E(T17>=$AT$1;T17<=$AV$1);E(U17>=$AT$1;U17<=$AV$1)))
vira isso:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Range("AT2,AU2,T18,S17,AT1,AV1,T17,U17"), Target) Is Nothing Then Exit Sub
If ([AT2] = "Y" And [AU2] = [T18] And ([S17] >= [AT1] And [S17] <= [AV1]) Or _
([T17] >= [AT1] And [T17] <= [AV1]) Or ([U17] >= [AT1] And [U17] <= [AV1])) Then _
MsgBox True & vbLf & "copia de onde você quiser e cola onde você mandar"
End Sub
alem do fato de que, considerando o seu exemplo, deveria ficar assim
(S17>=$AT$1 and S17<=$AV$1 and $AT$2="Y" and $AU$2=T18)
OU (T17>=$AT$1 and T17<=$AV$1 and $AT$2="Y" and $AU$2=T18)
OU (U17>=$AT$1 and U17<=$AV$1 and $AT$2="Y" and $AU$2=T18)
por que ($AT$2="Y";$AU$2=T18) tem que ser verdadeiras em cada uma opção "OU"
Pelo menos foi oq eu entendi
imagina um desse
=E(T18=$C$1;OU(S18=$B$1;U18=$B$1;OU(S17=$B$1;T17=$B$1;U17=$B$1;E(T17="";OU(S16=$B$1;T16=$B$1;U16=$B$1;E(T16="";OU(S15=$B$1;T15=$B$1;U15=$B$1;E(T15="";OU(S14=$B$1;T14=$B$1;U14=$B$1;E(T14="";OU(S13=$B$1;T13=$B$1;U13=$B$1)))))))));OU(S19=$B$1;T19=$B$1;U19=$B$1;E(T19="";OU(S20=$B$1;T20=$B$1;U20=$B$1;E(T20="";OU(S21=$B$1;T21=$B$1;U21=$B$1;E(T21="";OU(S22=$B$1;T22=$B$1;U22=$B$1;E(T23="";OU(S23=$B$1;T23=$B$1;U23=$B$1)))))))))))
que faz a mesma coisa mas pula até 3 linhas em branco
se for isso, até dá para pegar a manha, o problema é conciliar 2 formas distintas para a mesma situação.
Somente é impossíveis até que alguém faça
A logica está presa na irracionalidade humana, e morta nos que se consideram donos da verdade.
"ALGUM MODERADOR ME EXPULSE DO FÓRUM POR FAVOR"
Postado : 31/03/2014 2:41 pm