Respostas criadas no fórum
-
AutorArtigos
-
26 de Junho de 2019 às 11:38 em resposta a: Bloquear celula em Excel em função de outra e avisar #5080AlbinoParticipante
patroti
boas
Entretanto o ficheiro foi substituindo e não dei seguimento ao mesmo.
Obrigoado
AlbinoParticipanteOlá
Troquei como indicas-te o Integer por range, mas agora dá um erro “13” Type mismatch.
Vou mandar por mail .
AlbinoParticipanteOlá
JorgeRod
Lamento mas dá erro “object required” e fica parado na linha “”Set linha = ….””
Já tentei com outro código e dá no mesmo. <span class=”Apple-style-span” style=”font-family: ‘Courier New’, Courier, monospace;”> “”Range(“A1048576”).End(xlUp).Offset(1, 0).Select””</span>
cmptsAlbinoParticipanteAfinal qual era o problema???
AlbinoParticipanteAgora já acedi
Obrigado
AlbinoParticipanteteste 2 Albino (por Bruno Castro)
AlbinoParticipanteTeste
AlbinoParticipanteBoas.
Jorge.
Após algumas experiencias e tentativas detectei que se copiar da Web ou do word, ao colar na celula D5 a mesma fica protegida apesar de antes estar desprotegida. Mesmo usando o Ctrl V ou o botão direito do rato.
SE colar texto proveniente do bloco de notas isso já não acontece.
Vou-te mandar o ficheiro.
Obrigado
AlbinoParticipanteBoas
Não sei se irá de encontro aquilo que já tenho desenhado, não me parece.
O meu problema é só mesmo a ultima parte do codigo.
Basicamente seria:
Se Login “Romano” for Valido então abrie folha”Romano”
SE loguin For “XPTO” for valido então abrir folha “Plan3”
Vou estudar melhor
Obrigado
AlbinoParticipanteBoas.
JorgeRod
Segui as tuas dicas e com as alterações efetuadas adaptei o código para os meus propósitos, ficando assim.
______________________
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
‘Procurar se a celula está vazia.
If Target.Cells = “” Then
MsgBox “Escolha linha com dados”, vbOKOnly, “Aviso” ‘Adicionei sta informação
Exit Sub
Else
‘Override the default double-click behavior with this function.
Cancel = True
‘Declare your variables.
Dim wks As Worksheet, xRow As Long
‘If an error occurs, use inline error handling.
On Error Resume Next
‘Set the target worksheet as the worksheet whose name is listed in the first cell of the current row.
Set wks = Worksheets(“Folha4”)
‘If there is an error, exit the macro.
If Err > 0 Then
Err.Clear
Exit Sub
‘Otherwise, find the next empty row in the target worksheet and copy the data into that row.
Else
xRow = wks.Cells(wks.Rows.Count, 1).End(xlUp).Row + 1
wks.Range(wks.Cells(xRow, 1), wks.Cells(xRow, 7)).Value = _
Range(Cells(Target.Row, 1), Cells(Target.Row, 7)).Value
MsgBox “Dados copiados Com Exito”, vbOKOnly, “Informação” ‘Adicionei esta informação
End If
End If
End Sub
_____
Muito Obrigado
Cumprimentos
AlbinoParticipanteBoas
JorgeRod
Epá ás vezes as coisas estão á nossa frente e não as enxerga-mos.
O Problema era a formula ter refrencias absolutas e quando a copiei fazia mensão sempre ao mesmo intervalo.
EX: a formula =SE(SOMA($D$25:$G$25)>=0;D25/SOMA($D$25:$D$32);”- -”), na sua parte inicial tem como referencia absoluta o intervalo $D$25:$G$25, como tal ao copiar para a linha 26 a primeira parte da formula iria buscar sempre a informação ao intervalo mencionado e o que se pertendia era que esse intervalo corresponde-se á linha selecionada, neste caso, D26:G e depois D27:G27 …. até D32:G32.
Ao retirar os $ da primeira parte da formula resolveu. Ficando então =SE(SOMA($D25:$G25)>=0;D25/SOMA($D$25:$D$32);”- -”)
Brigado pela resposta rápida.
Abraço.
AlbinoParticipanteboas
jorgerod
quanto à 1ª dica, devolve-me o erro “method or data member not found”.
em relação á 2ª: é engraçado sim senhor, mas seria bom era que as molduras nunca saissem da primeira lunha e que se movimentassem só nessa linha conforme a posição do cursor.
tentei duplicar o código para a outra moldura mas devolveu-me um erro de quanquer coisa de ambiguo,
pensei então adicionar a “moldura 2” tambem ao código mas não consegui acertar com a expressão.
o códigoprivate sub worksheet_selectionchange(byval target as range)
if target.column < 3 or target.row < 2 then exit sub
with activesheet.shapes("moldura 3") and ("moldura 2")
'.top = target.offset(-0).top 'bloquei esta linha desta forma só se deslocam na horizontal
.left = target.offset(, -1).left
end with
end subcomo faço para incluir as duas molduras?
albinoAlbinoParticipanteboas
jorgerodem relação há segunda parte do problema, fiz como tu indicas-te e resultou. outra coisa não era de esperar. :laugh:
há um pequeno senão no friso onde foram criados os botões ficam com letra muito pequena e não se notam separações entre eles. É possivel alterar isso?
no entanto está bom assim.
obrigado
albinoAlbinoParticipanteolá
jorgerod.
em relação a este primeiro problema ela presiste, pois quando os dados são colados na folha control, as celulas de a a k só ficam protegidas após a edição de uma qualquer celula dessa linha.
todo resto funciona bem.
penso eu de que e, como sou basico nisto, não será que a instrução de “worksheet_change” só vai ser executada quando há alteração na folha? porque essa mesma instrução é executada após por ex: fazer duplo clic numa celula.ps:tentei algo e deu resultado foi o seguinte:
desactivei a linha
‘cells(target.row, 1).resize(, 11).locked = true
protegi todas as colunas de a a k e desprotegi as col l a n
ao rodar o código funciona como eu queria.vou experimentar a parte dos botões. depois digo algo
obrigado
AlbinoParticipanteboas
jorgerod.
lá vai então o ficheiro. b)
obrigado
CartaUtentes2.1.xlsm -
AutorArtigos