Ir para conteúdo
Fórum Script Brasil
  • 0

Bt, Que Deleta Valore Da Plan


sange

Pergunta

E aí galera bem saca so o que quero !!

Imaginemos a seguinte situação:

você tem um arquivo de excel de controle de empréstimos de livros com duas plan a primeira plan e a de busca onde você insere tal valor e ele busca na outra plan os resultados para isso usei está função PROCV bem tudo certo ate aqui...!! A questão é tem como colocar um Bt que ao clicar apaga os valores de tal celula ???

no caso usaria isso para apagar os valores da outra plan sendo assim dado por devolvido o livro porque dessa forma não precisa de ir para a outra plan preocura e apagar o empréstimo !!!!entenderam ?? agradesso as ajudas !!!

valeu...

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Supondo que você queira deletar apenas uma célula faça assim:

Range("A1").Clear
Caso seja uma matriz faça assim:
Range("A1:C3").Clear
Caso seja células isoladas faça assim:
Range("A1,A3,B13").Clear
Caso seja um valor de outra planilha faça assim:
Plan2.Range("A1").Clear

Qualquer dúvida poste denovo

Link para o comentário
Compartilhar em outros sites

  • 0

Sim de certa forma é isso que quero....beleza !!!!

Mas saca so o que realmente quero ...:;;

Não sei se percebeu mas já faz algumas semanas que estou perguntando sobre a função =PROCV(), enfim estou montando uma planilha de empréstimos de livros na plan1 esta essa funçao que procura por resultado na plan2 que por sua vez estão os código os nomes das pessoa enfim todos os dados ai quando a pessoa vai entregar o livro eu digito o code dela na plan1 onde esta o função PROCV e atravez do sistema que montei com as funções e que me informa se esta atrasado e quanto de multa deve pagar .... enfin tudo isso ........ a questão é colocar um Bt ao lado que apagasse os dados da pessoa na plan2 sendo assim dado por entregue o livro !!!?? bem dessa forma deve-se levar em consideração que tem que colocar o code como referencia para que se apague os dados certo de tal pessoa que por sua vez esta entregando o livro .....?? bem espero que tenha entendido......

Valeww mais uma vezz....

Link para o comentário
Compartilhar em outros sites

  • 0

É um pouco difícil comentar sobre um projeto que você não está vendo, você faz de acordo com sua lógica, o que eu posso fazer é te mostrar como se usa as ferramentas, a base do que eu te passei tente elaborar um jeito de resolver o problema. Qualquer dúvida é só postar.

Link para o comentário
Compartilhar em outros sites

  • 0

cara deu mais ou menos certo mas e isso mesmo que quero !!!!! está quase tudo OK !!

a unica coisa que quero falar é que ele acabou apagando a letra que no caso seria uma descriçao importante sendo assim como apagar somente o numero ????

outra coisa doderia me explicar o code ???

Link para o comentário
Compartilhar em outros sites

  • 0

Basta retirar a última linha (posição.Clear) para não apagar a célula com a letra. E, explicando o código:

    Dim posição As Range 'Declarando "posição" como um objeto Range (que é o objeto que representa uma faixa de uma ou mais células)
    
    área = "B:B" 'Variável com a área a ser procurada (ou seja, toda a coluna B)
    procurar = "G" 'Variável com o valor a ser procurado (no caso a letra "G")
    Set posição = Range(área).Find(procurar) 'Aqui usei o método Find para procurar o valor "procurar" em um objeto cujo resultado é a faixa especificada pela variável "área"
    
    posição.Next.Clear 'Aqui eu apago a próxima (Next) célula após a célula encontrada (na verdade eu deveria primeiro olhar se realmente o valor foi encontrado, caso contrário esta linha vai resultar em um erro)
    posição.Clear 'Aqui eu apago o conteúdo da própria célula cujo valor foi encontrado

Certo? ;)

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

cara eu estava achando tudo uma beleza quando constatei uma coisa que se na tiver soluçao na adiantara veja so :

Essa funçao independentemente de inserir valor na funçao PROCV ou não para localizar os dados na da certo pois mesmo sem valor nessa celula ele deleta o valor que nem especifiquei e sempre o "G" o que para mim torna- se um erro pois esse Bt tem que esta em funçao do resultado inserido na selula H3 ai sim ele apagar tal determinado. Essa pasada so apaga o "G" isso deveria buscar no intervalo Inteiro para da certo!!!

Sendo assim tem que modificar essa parte pare que ele procure em todo o intervalo:

procurar = "G"

bem espero que tenha entendido e se possivel da uma nova analizada na imagem para entender o que disse por ultimo e note la que a essa funçao PROCV() na Celula I3 ......

beleza, agradesso sua ajuda....

valeu.....!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Graymalkin; veja só...!!!

Para ficar melhor de se entender, na função que postou tem como fazer com que em vez de procura somente um valor direto há como coloca-lo para que procure no intervalo inteiro assim ao digitar um valor em uma célula ele procura no intervalo o que corresponde a ele.

Bem acho que ficou melhor assim .!!!

Valeww... \!!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Isso não é uma questão de VBA e sim de lógica de programação. Você já sabe que a variável "procurar" é a que possui o valor a ser procurado, então basta colocar nela o valor desejado. Você poderia fazer isso assim...

procurar = Range("H3").Value
... para colocar o que estiver na célula H3 em "procurar". Ou você também poderia fazer assim:
procurar = InputBox("Digite a letra desejada:")

E de qualquer outra maneira desde que "procurar" ficasse com a letra a ser procurada.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

tem razao isso realmente é a logica .....

bem com isso consegui atingir meu objetivo.....

valeu cara .... muito obrigadooo..

so para finalizar totalmente...

...mas se o Bt estivese em um plan e os dados em outra como ficaria no caso teria que ter o nome da plan como descriçao de procura...

 
Dim posição As Range
    
    área = "B:B" 
    procurar = Range("H3").Value
    Set posição = Range(área).Find(procurar)
    
    posição.Next.Clear

usando o proprio code o que estari faltando ???..

aproposito você tem ou sabe onde posso encontrar uma apostila desses tipos de comando aqui trabalhados e outros mais

e-mail: wssange@gmail.com

...... espero que possa me ajudar com isso tambem ...valeww mais uma vez.... muito obrigadooooooo.... :) :rolleyes: B)

Link para o comentário
Compartilhar em outros sites

  • 0

...mas se o Bt estivese em um plan e os dados em outra como ficaria no caso teria que ter o nome da plan como descriçao de procura...

 
Dim posição As Range
    
    área = "B:B" 
    procurar = Range("H3").Value
    Set posição = Range(área).Find(procurar)
    
    posição.Next.Clear
usando o proprio code o que estari faltando ???..
Sim, você pode se referir a uma determinada planilha obtendo o objeto correspondente na coleção WorkSheets:
procurar = Worksheets("Plan2").Range("H3").Value

aproposito você tem ou sabe onde posso encontrar uma apostila desses tipos de comando aqui trabalhados e outros mais

Não tenho nenhuma para recomendar porque tudo que aprendi sobre os objetos disponibilizados pelo VBA foi mesmo utilizando-os (uma vez que a linguagem em si, Visual Basic, eu já conhecia).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

não deu certo .... veja o que aconteceu...

a unica forma qua deu certo foi assim..!!

os dados e o Bt numa mesma plan e a funçao =PROCV() em outra plan ao digitar o valor na PROCV a ser procurado ele acha ai para apagar tem que ir na outra plan onde esta os dados e clicar no bt para apagar o que foi digitado na PROCV bem ate aqui esta certo so que o Bt ficari melhor na mesma plan que a PROCV... a ei como fazer...??!!

veleww..

Link para o comentário
Compartilhar em outros sites

  • 0

cara veja só...!!!

A funçao PROCV e so para eu ter serteza que o dado exita e esteja correspondendo ao que quero....!!!

o bt apaga os dados equivalente ao que vai se digitado na celula da funçao PROCV... ate aqui na há erros tudo certo....agora o que quero é colocar o bt com a funçao PROCV numa plan e os dados em outra.!}!???

somente isso.... entendeu.... ???!

valeu... as ajudas...

Link para o comentário
Compartilhar em outros sites

  • 0

:unsure: Nops... eu ainda não entendi. O que realmente está confuso é que *não* usei a função PROCV em lugar nenhum do código que te passei. Por isso não estou entendendo o que você quer adaptar. Porque se for realmente o código, eu já te passei como fazer (através do objeto Worksheets).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

cara entenda a seguinte coisa ...

para você não importa o fato de eu estar usando o funçao PROCV eu não estou incorparando ela a lugar nenhum so coloquei ela so para que eu tenha serteza de que o dado exista..... aonde eu insiro valor nela para procura e o mesmo lugar destinada a inserir o valor para que o bt possa apagar no intervalo....

agora o que quero que entenda para me ajudar éé´;;;...

o bt tem que esta em uma plan e os dados em outra...!! sacouuu..... beleza e so isso ...?@!!!

_fiz o que você falouu mas não deu certo ?? essa funçao não esta valendo para o caso .//!!!!?? e ai

bem e só valeu.. a ajuda que esta me fornecendo...

valeww..

Link para o comentário
Compartilhar em outros sites

  • 0

Assim: lodo no inicio


Dim posição As Range
    
    área = "B:B"
    procurar = Range("H3").Value
    Set posição = Range(área).Find(procurar)
    
    posição.Next.Clear

esse quando pedi que usa-se outra plan !!
Dim posição As Range
    
    área = "B:B"
    procurar = Worksheets("Plan2").Range("H3").Value
    Set posição = Range(área).Find(procurar)
    
    posição.Next.Clear

mas nada de dar certo ..??!!!

valeww.. a compreençao...

Link para o comentário
Compartilhar em outros sites

  • 0

A linha...

Set posição = Range(área).Find(procurar)
... faz a busca na planilha selecionada, e não na que você quer (Plan2). Para tanto você deveria fazer...
Set posição = Worksheets("Plan2").Range(área).Find(procurar)
... tal qual o exemplo anterior. Para o código ficar melhor ainda, você pode escrevê-lo assim:
    Dim posição As Range
    
    área = "B:B"
    Set planilha = Worksheets("Plan2")
    procurar = planilha.Range("H3").Value
    Set posição = planilha.Range(área).Find(procurar)
    
    posição.Next.Clear

Se você quer efetuar operações em uma planilha específica você precisa ou utilizar o objeto correspondente (como no exemplo acima) ou ativá-la antes (com o método Activate).

Certo? ;)

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

po cara consegui....valeww...

na verdade você falou que erra para eu usa o evento Worksheets na procura so que estava usando em outra o que ocasionou o erro .... bem desculpe por tantas pergunta pelo simples erro que cometi.....

agora realmente e para finalizar ..... com chave de ouro... bem veja só porque quando vai proteger a plan o Bt não consegue mais procura para deletar ??? sera que é só porque esta protegida..!???

bem é só e valeww.. mais uma vez....

obrigado palas ajudas..............

Link para o comentário
Compartilhar em outros sites

  • 0

Qualquer coisa você pode fazer uma "gambiarra", veja uma que eu fiz aqui:

Private Sub CommandButton1_Click()
    ActiveSheet.Unprotect Password:=123
    Range("A1").Clear
    ActiveSheet.Protect Password:=123
End Sub

Eu protegi minha planilha contra alterações com a senha 123, neste código eu começo desbloqueando a planilha, depois faço a edição e finalmente bloqueia a planilha.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...