Ir ao conteúdo
  • Cadastre-se

Excel bloquear célula excel após autopreenchimento automático


Posts recomendados

Olá será que podem me ajudar tenho a seguinte situação:

 

Tenho uma Banco de Dados com valores (preços dos itens) atualizados diariamente, são itens da construção civil:
1 - Ferro 8mm R$ 20,00

2 - Cimento R$ 25,00

Na data de hoje fechei o orçamento do JOÃO com esses valores, porém amanha os preços mudam para o orçamento do PEDRO.

Quando atualizado o bando de dados para o orçamento do PEDRO ele também vai alterar o orçamento do JOÃO. O que me fará perder os custos reais de orçamento.

O que eu quero é que após termina o Orçamento do JOÃO a planilha não atualize mais, mantendo os dados fieis ao dia que foi feita. 

Aguardo Obrigado.

 

Para isso cheguei aos códigos abaixo, não sou da área, então tudo que faço e na base da pesquisa mesmo.. O problema que não consegui colocar dois códigos na Private Sub Worksheet_SelectionChange

Spoiler

 


Option Explicit
 
Private Sub TempCombo_KeyDown(ByVal _
        KeyCode As MSForms.ReturnInteger, _
        ByVal Shift As Integer)
 
    'Ocultar caixa de combinação e mover a próxima célula com Enter e Tab
    Select Case KeyCode
        Case 9
            ActiveCell.Offset(0, 1).Activate
        Case 13
            ActiveCell.Offset(1, 0).Activate
        Case Else
            'Nada
    End Select
 
End Sub
 
Private Sub Worksheet_SelectionChange(ByVal Target As Range)

    Dim str As String
    Dim cboTemp As OLEObject
    Dim ws As Worksheet
    Dim wsList As Worksheet
 
    Set ws = ActiveSheet
    Set wsList = Sheets(Me.Name)
    Application.EnableEvents = False
    Application.ScreenUpdating = False
 
    If Application.CutCopyMode Then
      'Permite copiar e colar na planilha
      GoTo errHandler
    End If
 
    Set cboTemp = ws.OLEObjects("TempCombo")
      On Error Resume Next
      With cboTemp
        .Top = 10
        .Left = 10
        .Width = 0
        .ListFillRange = ""
        .LinkedCell = ""
        .Visible = False
        .Value = ""
      End With
 
    On Error GoTo errHandler
      If Target.Validation.Type = 3 Then
        Application.EnableEvents = False
        str = Target.Validation.Formula1
        str = Right(str, Len(str) - 1)
        With cboTemp
            .Visible = True
            .Left = Target.Left
            .Top = Target.Top
            .Width = Target.Width + 15
            .Height = Target.Height + 5
            .ListFillRange = str
            .LinkedCell = Target.Address
        End With
        cboTemp.Activate
 
        'Abrir a lista suspensa automaticamente
        Me.TempCombo.DropDown
        End If

errHandler:
  Application.ScreenUpdating = True
  Application.EnableEvents = True
  Exit Sub
  
  If ActiveCell.Row >= 2 And ActiveCell.Row <= 500 And ActiveCell.Column = 4 And ActiveCell.Value <> "" Then
   MsgBox (“Este campo já foi preenchido”)
   Cells(500, 2).End(xlUp).Offset(1, 0).Select
End If
End Sub

 

 

Link para o comentário
Compartilhar em outros sites

No seu exemplo voce está tentando adaptar um combobox para seleciona os dados da lista de materiais.

Acho melhor usar mesmo, a lista de validação e com o evento change da planilha, uma macro para localizar os demais dados das colunas [B a F], e substituir as formulas. Desta forma os valores não ficarão vinculados as alterações.  

Link para o comentário
Compartilhar em outros sites

@Basole ok então há solução pelo que entendi, o que posso te afirmar é que meus conhecimentos ficaram restritos nas duas primeiras palavras.. sendo assim sem a ajuda de um passo a passo dificilmente vou conseguir, como não sou da área, fico na expectativa de uma boa ação pra me ajudar, se possível, claro!

Link para o comentário
Compartilhar em outros sites

Bom eu criei uma lista de validação dinâmica, e os dados da lista são atualizados de acordo com a atualização da tabela "Tabela_Tabela_de_Cotação_Individual" e ao selecionar um item na lista de orçamentos os dados das colunas B,D e F são carregados automaticamente.

Mesmo voce não solicitando, acrescentei também um zoom (veja a img), que ao selecionar a lista de validação, aumenta a tela, e melhora a visualização do conteúdo, os dados, pois não tem como aumentar o tamanho da fonte. Qualquer coisa, caso não queira usar, cancele o Evento SelectionChange.

 

Ao selecionar a Lista de Validação, o Zoom da tela aumenta para (120%):

 

b8a984940cbe235ef73ef3100b2b2b3a.gif

 

Após selecionar um Item, o Zoom volta para o normal (100%):

 

Segue o Anexo:

 

Tabela de Obra - Ex-1.zip

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!