Respostas criadas no fórum
-
AutorArtigos
-
jorgerodAdministrador
albino,
sem ter experimentado, tenta:
set cbb = cbr.controls.add(msocontrolbutton)
with cbb
.caption = “procurar”
.font.name = “times new roman”
.font.size = 14
.onaction = “procurar_click”
.style = msobuttoncaption
.visible = true
end withse der resultado, faz o mesmo para o desfazer.
diz depois qq coisa, ok?
um abraço
jorgerodAdministradoralbino,
quanto à questão dos botões de comando, porque não utilizar um toolbar apropriado?
então, aqui vai:
código para colocares em “este livro” (thisworkbook):
option explicit
private sub workbook_activate()
call showtoolbar(true)
end subprivate sub workbook_beforeclose(cancel as boolean)
call deletetoolbar
end subprivate sub workbook_deactivate()
call showtoolbar(false)
end subprivate sub workbook_open()
call createtoolbar
end subcódigo para colocares num módulo:
option explicit
public const strtoolbar = “my toolbar”
sub createtoolbar()
dim cbr as commandbar
dim cbb as commandbarbuttonon error resume next
commandbars(strtoolbar).delete
on error goto errhandler
set cbr = commandbars.add(strtoolbar)
with cbr
.position = msobartop
.visible = true
end withset cbb = cbr.controls.add(msocontrolbutton)
with cbb
.caption = “procurar”
.onaction = “procurar_click”
.style = msobuttoncaption
.visible = true
end withset cbb = cbr.controls.add(msocontrolbutton)
with cbb
.caption = “desfazer”
.onaction = “desfazer_click”
.style = msobuttoncaption
.visible = true
end withset cbb = cbr.controls.add(msocontrolbutton)
with cbb
.caption = “red”
.onaction = “red”
.style = msobuttoncaption
.visible = true
end withexithandler:
set cbb = nothing
set cbr = nothing
exit suberrhandler:
msgbox err.description, vbexclamation
resume exithandler
end subsub deletetoolbar()
on error resume next
commandbars(strtoolbar).delete
end subsub showtoolbar(f as boolean)
on error resume next
commandbars(strtoolbar).visible = f
end subsub red()
‘
‘ red macro
‘ macro recorded 11/01/2007 by samsung
‘‘
msgbox “teste”
end subexperimenta. vais encontrar este novo toolbar no tabulador “suplementos”.
experimenta e diz qq coisa, ok?
jorgerodAdministradoralbino,
por favor verifica o seguinte código:
option compare text
private sub worksheet_change(byval target as excel.range)
dim i as long
activesheet.unprotect password:=””i = activecell.column
cells(104536, i).end(xlup).offset(1, 0).selectif range(“$l$” & target.row) = “deve” then
cells(target.row, 1).resize(, 11).locked = true
cells(target.row, 12).locked = false
cells(target.row, 13).locked = false
cells(target.row, 14).locked = false
‘cells(target.row, 11).locked = false
‘cells(target.row, 12).locked = false
end ifif target.column = 12 and range(“$l$” & target.row) = “pago” then
range(“$m$” & target.row).value = date
elseif range(“$m$” & target.row).value “” then
cells(target.row, 1).resize(, 13).locked = true ‘bloqueia as cols a-m da linha activa
else
end if
activesheet.protect password:=””, drawingobjects:=true, contents:=true, scenarios:=true
end sub
como te referi antes, da 1ª vez que utilizes a folha e antes de iniciares a execução do código, deves desproteger a folha e clicar no canto superior esquerdo da mesma, para “marcares” toda a folha. depois, clicas com o botão direito do rato e escolhes “formatar células”. vais a protecção e desmarcas a flag “protegida”. a partir daqui, acho que o código já funcionará como pretendes.
jorgerodAdministradoralbino,
por favor coloca, ok? talvez seja mais fácil compreender 🙂 e tentar resolver…;)
jorgerodAdministradorboas, albino,
verifica o código que te envio em anexo e altera para de acordo com o que pretendes, em termos de colunas.
atenção: antes de iniciares a execução do código, deves desproteger a folha e clicar no canto superior esquerdo da mesma, para “marcares” toda a folha. depois, clicas com o botão direito do rato e escolhes “formatar células”. vais a protecção e desmarcas a flag “protegida”. a partir daqui, acho que o código já funcionará como pretendes.
experimenta e depois diz qq coisa, ok?
cumprimentos.
CartaUtentes_A.xlsmjorgerodAdministradoralbino,
experimenta:
option compare text
private sub worksheet_change(byval target as excel.range)
activesheet.unprotect password:=””
if target.column = 8 and range(“$h$” & target.row) = “pago” then
range(“$i$” & target.row).value = date
elseif range(“$i$” & target.row).value “” then
cells(target.row, 1).resize(, 9).locked = true ‘bloqueia as cols a-i da linha activa
else
cells(target.row, 1).resize(, 9).locked = falseend if
activesheet.protect password:=””, drawingobjects:=true, contents:=true, scenarios:=true
end sub
fica bem e diz qq coisa, ok?
jorgerodAdministradoralbino,
por qualquer razão, não me deixa “sacar” o ficheiro. podes coloca-lo zipado?
jorgerodAdministradoralbino,
manda-me a folha de exemplo, ok?
jorgerodAdministradorboas, albino,
tenta adaptar o seguinte código:
private sub worksheet_change(byval target as excel.range)
activesheet.unprotect password:=”xpto”
if ucase(cells(target.row, 16)) = “x” then
cells(target.row, 1).resize(, 16).locked = true ‘bloqueia as cols a-o da linha activa
else
cells(target.row, 1).resize(, 16).locked = false
end ifactivesheet.protect password:=”xpto”, drawingobjects:=true, contents:=true, scenarios:=true
end subfica bem e diz qq coisa.
jorgerodAdministrador🙂
ainda bem que resolveu 🙂
fica bem.
jorgerodAdministradorboas, igor,
talvez com esta fórmula matricial:
(atenção – alterei o nome da planilha de 1 para teste…)
=mÁximo((teste!$a$3:$a$12=c3)*(teste!$e$3:$e$12=”inadimplente”)*(teste!$c$3:$c$12)), carregando em ctrl + shift + enter, para ficar assim:
{=mÁximo((teste!$a$3:$a$12=c3)*(teste!$e$3:$e$12=”inadimplente”)*(teste!$c$3:$c$12))}
a célula que conterá a fórmula, deverá ser formatada como data.
anexo o teu ficheiro, com a fórmula integrada.
fica bem e diz qq coisa, ok?
CpiadeMaiorData2.xlsxjorgerodAdministradorwagner,
lê o que se encontra em: http://www.decisionmodels.com/memlimitsc.htm#
pode ser que te ajude.
fica bem
jorgerodAdministrador🙂
sempre ao dispor!!!!!
jorgerodAdministradorleo,
É só utilizares a função procv na plan1. assim, se colocares o código em a1, vai aparecer o correspondente àquilo que pretendes.
envio-te o ficheiro, para veres se é isto que queres.
fica bem e diz qualquer coisa, ok?
PlanilhaTeste.xlsxjorgerodAdministradorboas,
estive a ver o que o wagner fez (e bem)…
resolvi, então, procurar uma outra potencial solução, sem “gambiarras” 😉
então, partindo do princípio que o range da coluna c não pode conter células em branco, uma vez que não fará sentido, pois é para colocar lá o nome do cliente, acho que a seguinte fórmula, como matriz, poderá resolver a situação:
=soma(se(c2=$b$5:$b$24;1/(contar.se.s($b$5:$b$24;c2;$c$5:$c$24;$c$5:$c$24));0))
como matriz que é, a fórmula deverá ser inserida com ctrl + shift + enter, para ficar assim:
{=soma(se(c2=$b$5:$b$24;1/(contar.se.s($b$5:$b$24;c2;$c$5:$c$24;$c$5:$c$24));0))}
espero que sirva. diz qualquer coisa, ok?
SomacriteriosAtendente_A.xlsx -
AutorArtigos