Ir ao conteúdo
  • Cadastre-se
Patricia Senatore Ribeiro

Excel Digitar em qualquer area da planilha e alterar o valor em uma celula especifica

Recommended Posts

Bom dia, tenho uma planilha com um filtro de pesquisa, ela fica bloqueada mas as células onde aparecem os resultados da pesquisa tem que ficar desbloqueadas pois tem uma formatação condicional para realça-las quando selecionadas. O problema é que os funcionários fazem uma pesquisa e não entendem que depois de selecionar uma dessas células você tem que clicar na célula da pesquisa de novo para realizar uma nova consulta. Então eu queria que sempre que eu digitasse alguma coisa em qualquer área dessa planilha ela selecionasse essa célula (no caso a célula B3) para fazer uma nova pesquisa. Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vejas se é isso

 

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim seuIntervalo As Range
    
    If Target.Count > 1 Then Exit Sub
    
    Set seuIntervalo = Range("A4:M50") ' Altere de acordo com seu intervalo
    
    If Not Intersect(Target, seuIntervalo) Is Nothing Then
        
        Range("B3").Activate
        
    End If
    
    
End Sub

 

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não funcionou. O problema é que eles fazem a pesquisa e então selecionam algum produto do resultado, depois eles começam a digitar ali mesmo naquela celula pra fazer a pesquisa ao invés de clicar em B3 pra pesquisar de novo. Ai eu queria que mesmo se eles digitassem nessas outras celulas modificasse a celula B3 para fazer a pesquisa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom eu não entendi o motivo que não deu certo você ajustou o intervalo que contem dados no código

 

Se for este o problema, experimente com o intervalo dinamico

 

 

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim seuIntervalo As Range
    Dim LR!
    
    If Target.Count > 1 Then Exit Sub
    
    LR = UsedRange.SpecialCells(xlCellTypeLastCell).Row
    
    Set seuIntervalo = Range("A4:M" & LR) ' Altere de acordo com seu intervalo
    
    If Not Intersect(Target, seuIntervalo) Is Nothing Then
        
        Range("B3").Activate
        
    End If
    
    
End Sub

 

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

 

1 hora atrás, Patricia Senatore Ribeiro disse:

.....O que eu preciso é que se eu escrever em qualquer uma das celulas do intervalo B6:C1000 o que eu escrevi apareça na B3 para fazer a pesquisa.

 

Desculpe mas acho que acrescentou informações alem do que tinha digo anteriormente. 

 

Sendo assim realmente o que passei está funcionando, ou seja selecionado a B3. 

 

De qualquer forma segue sugestão considerando as informações acrescentadas.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim seuIntervalo As Range
    Dim LR!
    
    If Target.Count > 1 Then Exit Sub
    
    LR = Planilha1.UsedRange.SpecialCells(xlCellTypeLastCell).Row
    
    Set seuIntervalo = Range("B6:C" & LR)
    
    If Not Intersect(Target, seuIntervalo) Is Nothing Then
        
        Range("B3").Value = suaPesquisa
        Range("B3").Activate
        
        Call PESQUISA
        
        Range("B3").Value = suaPesquisa
        
    End If
    
    
End Sub

E no módulo1

Declare a variável suaPesquisa como publica => Public suaPesquisa As String

E a sub pesquisa ficando assim:

 

Public suaPesquisa As String

Sub PESQUISA()
    '
    ' PESQUISA Macro
  
    If ThisWorkbook.ActiveSheet.Name = ThisWorkbook.Worksheets("CONSULTA").Name Then
        On Error GoTo trataErro
        
        Application.ScreenUpdating = False
        
        suaPesquisa = ActiveCell.Value
        
        ActiveSheet.Unprotect "123"
        
        Sheets("Planilha1").Columns("A:B").AdvancedFilter Action:=xlFilterCopy, _
        CriteriaRange:=Range("CONSULTA!Criteria"), CopyToRange:=Range( _
        "CONSULTA!Extract"), Unique:=False
        
        Range("B3").ClearContents
        ActiveSheet.Protect "123"
        
    Else
        Application.OnKey "~"
        Application.OnKey "{ENTER}"
        
    End If
    
trataErro:
    
    Application.ScreenUpdating = True
    
    Sheets(2).Activate
    Sheets(2).Cells(6, 2).Activate
    
    
End Sub

 

 

 

 

 

 

 

  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×