Respostas criadas no fórum
-
AutorArtigos
-
pmonicaParticipante
certíssimo jorge,
compreendi a diferença! É que o código que estava a utilizar era a adaptação de um outro tipo de inputbox para se selecionar uma célula (daí o range…). neste caso queremos é registar um valor numérico..funciona, obviamente.
bfs
p.mónicapmonicaParticipantejorge,
a situação ficou resolvida num dos ficheiros [tinha (tem) button’s (da barra de ferramentas) aos quais tinha atribuído macros que estão no livro pessoal de macros. contornei o problema criando macros no ficheiro 4pbase.xls para executarem as macros do livro pessoal de macros (pessoal.xls)], mas noutro não!
no entanto tenho outros ficheiros de trabalho onde existem também o mesmo tipo de button’s com macros do pessoal.xls atribuídas e nunca me apareceu esta janela de erro! estranho…não querendo ser chato, e tentando aprofundar um pouco mais o assunto, o que acontece é que o ficheiro em que não consegui resolver o problema (4pbase.xls) existem células com formulas tipo “=’d:1. 4p base2. moldes xls2009[4pt9162.xls]resumo’!$aj$107. tenho na linha de comandos de arranque do excel a indicação para “não mostrar o alerta e actualizar as ligações, mas o alerta continua a aparecer!
consegues dar-me alguma explicação para isto?
paulo mónicapmonicaParticipantejorge,
se entendi a tua explicação e a leitura (breve por agora) do link que forneceste, resumindo:
só ajuda se em todos os módulos de vb, userforms de vb, “worksheets” ou “my workbook” tivermos lá option explicit, independentemente de não ser mandatório, certo?paulo mónica
pmonicaParticipanteembora o “pdf creator” que está no código não seja o mesmo que o meu, das duas uma:
1. ou consigo adaptar o código ao meu cutepdf writter.
2. ou instalo o que o ken sugere.mas certamente vai funcionar.
saudações e + um obrigado.
p. mónicapmonicaParticipantejorge,
para variar resolveu!
deixei de ter a melga da janela sempre que abro o ficheiro “base” todos os dias, várias vezes ao dia!.saudações.
p.mónicapmonicaParticipantejorge,
já resolvi o problema com pequenos ajustes de formulas na folha do ficheiro. anexo-o para veres as alterações.
basicamente, alterei o código da macro “ao abrir” para colar o mês em a2, colar o ano em a3 e em a1 coloquei a seguinte fórmula:
“=se(b1=a4;a2;se(n1=a4;a2+12;se(z1=a4;a2+24)))“.
assim com o passar dos anos “os caloteiros” são sempre identificados!tenho é 2 questões que são importantes para adaptar isto no meu ficheiro:
- 1. na tua macro “abrir” não especificas em que folha o mês (e agora o ano) são registados! devo alterar o código de forma a estes dados serem registados para por exemplo na folha user para “sheets(“user”).range(“a2”).value = mes“?
2. no vbe tens a indicação “option explicit” em todas as folhas e em “este livro”. devo colocar esta indicação também em todas as folhas do meu ficheiro? (é que são ±15…))se me conseguisses confirmar estas 2 coisitas..
gracias
paulo mónica
[file name=pmonica_clube3.zip size=10914]https://www.exceler.org/v2/media/kunena/attachments/legacy/files/pmonica_clube3.zip[/file]
PMonica_Clube3.zipAttachments:
You must be logged in to view attached files.pmonicaParticipantejorge,
vez a questão que te apresento no ficheiro anexo, e informa-me se há resposta positiva para a minha questão [file name=pmonica_clube2.zip size=10385]https://www.exceler.org/v2/media/kunena/attachments/legacy/files/pmonica_clube2.zip[/file]
PMonica_Clube2.zipAttachments:
You must be logged in to view attached files.pmonicaParticipanteboas jrod,
agradeço a pronta resposta.
logo mais à noite vou testar mas, mais uma vez, e numa olhadela rápida pelo ficheiro, a “coisa” é simples de facto.
pode é complicar-se se houver quotas em atraso de anos anteriores, mas isso vou tentar contornar quando analisar em detalhe o teu ficheiro!gracias,
p. mónicapmonicaParticipantenos próximos dias vou-te enviar então um e-mail com essa info!
saudaçõespmonicaParticipantecerto jorge,
funciona de facto como dizes! e é bem mais prático!
só tive que substituir o end case por end select.saudações.
p. mónica.pmonicaParticipantejorge,
esquece esta questão!!!
como em quase tudo na vida, só complicamos o que é fácil!
ora se queremos que o código avance só depois de algumas textbox com valor e/ou com um dos optionbuttons de cada grupo activos (mantendo o userform visivel), a solução é tão simples como isto:
———————————————————-
if textbox1.value=”” and textbox2.value=”” then ‘ tanto pode ser “and” como “or” mediante as necessidades
msgbox “xpto”
else
‘o resto do código por mais longo que ele seja.
end if
———————————————————-
ou para os optionbuttons de cada conjunto:
———————————————————-
if optionbutton1.value=false and optionbutton2.value=false then ‘ aqui tem que ser “and”
msgbox “xpto”
else
‘o resto do código por mais longo que ele seja.
end if
———————————————————-
se achares relevante, posso enviar-te alguns exemplos destes de userforms com combinações de textboxes e optionbuttons para publicares aqui.diz qualquer coisa.
gracias
paulo mónicapmonicaParticipantetambém não funciona 🙁 🙁 🙁
vê o meu outro post que pode ser que ajude (a ti e a mim).pmonicaParticipantejorge,
estive a revirar as minhas notas e as tuas ajudas anteriores e encontrei algo que penso será o caminho mais indicado. passo a explicar:
em 2007 pedi ajuda no forum da microsoft para parar o código de uma macro até se seleccionar uma célula de folha indicada e só depois o código continuava. na altura o jrod forneceu-me um código que funciona na perfeição e que indico abaixo:
creio que se me conseguisses adaptar este excerto de código, mas para:
1. as textbox (predefinidas) nÃo tenham value=””
2. os conjuntos de optionbuttons (predefinidos) em que um de cada conjunto tem que ter value=true
o meu problema ficaria resolvido!exemplo de 2007
—————————————————————
sub teste01()on error resume next
dim therange as range
dim rngrng = sheets(“resumo”).range(“a1”).value
sheets(“registo01”).select
set therange = application.inputbox(prompt:=”seleccionar uma célula “, type:=8)
if therange is nothing then
msgbox “tem que seleccionar uma célula”
end if
therange.activate
therange.value = rngend sub
—————————————————————algo que testei mas que me termina o código e não o pausa (como pretendo) é o seguinte:
para optionbutton:
—————————————————————
private sub commandbutton1_click()
if optionbutton10.value = false and optionbutton11.value = false then
msgbox “não indicou como o pagamento foi efectuado!”, vbexclamation _
, title:=”alerta”
end
‘end if
—————————————————————para textbox:
—————————————————————
private sub commandbutton1_click()
if textbox2.value = “” or textbox2.value = “” then
msgbox “não indicou o valor ou data do pagamento!”, vbexclamation _
, title:=”alerta”
end
‘end if
—————————————————————isto ajuda, ou só confunde?
boa páscoa “padrinho de excel” – pois, porque contigo tenho tido uma excel educação 5*!
abraço.pmonicaParticipantejorge,
estamos lá quase!!!
quase funciona, mas:
se preencher só a textbox 2, de facto o código pára, a userform mantém-se visivel, mas não me deixa seleccionar a textbox 3 para a preencher!
se preencher só a textbox 3, o código não para e a userform desaparece.com os optionbuttons: aparece a janela “x” vezes (x= ao numero de optionbuttons de cada userform em que só um tem value “true”), mas o userform desaparece e aparece-me a janela de erro abaixo, que tem certamente a ver com a “descoordenação” de dados entre o teu código e resto do meu (ou não…).
uma outra coisa: o inicio do teu código começa com “with worksheet”, mas o código está “dentro” de um userform…?
optionbutton.jpgpmonicaParticipanteobrigado pela hiper rapidez!
coloquei o código “dentro” de um dos userforms e eis o erro que me dá:
Sem_ttulo.jpgAttachments:
You must be logged in to view attached files. -
AutorArtigos