Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Entre para seguir isso  
andre12345

[Resolvido] EXCEL- Fixar data "=AGORA()" em fução de um critério

Recommended Posts

Alguém pode me ajudar com o excel?

Exemplo:

Tenho na célula A1 a fórmula: =HOJE()

Na B1: =se(AA1>100;1;0)

Na C1: preciso algo do tipo: =se(B1=1;A1;””) Entretanto o resultado da DATA não poderia mais ser alterada “NA VIRADA DO DIA”, teria que se manter inalterada no momento que for validado que B1=1.

Grato,

André

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Patropi,

Eu dei uma olhada, o macro está executando ctrl C e ctrl V? Testei alterando a data do sistema operacional e não deu certo, quando altera o dia ele executa novamente o macro e C1 fica igual a A1 novamente.

Sabe como solucionar?

Obrigado,

André

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Patropi,

Se o procedimento do macro é ctrl C e ctrl V. Trocando o ctrl V por “colar especial/ valores e formatos de números” pode dar certo? Se acredita que sim! Sabe como alterar no macro?

Um abraço,

André

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde

Um código como você sugeriu seria mais menos assim:


Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Range("B1").Value = "1" Then
Application.EnableEvents = False
Range("A1").Select ' Celula a ser copiada
Selection.Copy
Range("C1").Select ' Celula de destino
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
End If
End Sub

Eu não testei pois onde estou não tem Office, e além disso sou iniciante em VBA e consequentemente, o código pode precisar de algum ajuste.

Um abraço.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde Patropi,

Eu sou totalmente leigo em VBA e macro! Como crio o macro com as novas instruções que você enviou? Não consigo visualizar o macro na planilha que você fez, pra ter como exemplo.

Obrigado,

André

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde André

Para você ver a macro que eu coloquei na tua planilha, basta você clicar com o lado direito do Mouse na Aba da Planilha, que fica embaixo e esta com o nome Plan1, e selecione Exibir código.

Neste mesmo local você pode apagar o código que esta lá e copiar/colar o novo código.

Para sair do editor de VBA é só clicar em ALT+Q

Um abraço.

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite Patropi,

Ok!!! Obrigadão pela ajuda.

Sem querer abusar, mas.... Para estender para as outras células das colunas? Devo substituir ex: (“A1”) por?

Um grande abraço,

André

Compartilhar este post


Link para o post
Compartilhar em outros sites

André

Eu não entendi o que você deseja fazer?

Abs.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia Patropi,

O macro só está checando =se(B1=1;”copia em A1 e cola em C1”). Certo?

Gostaria de estender (“copiar o macro”) para outras linhas ex: =se(B2=1;copia em $A$1 e cola em C2”), e assim por diante ($A$1,B3 e C3...).

No macro as células estão restritas a linha 1: (“A1”), (“B1”) e (“C1”). Já tentei alterar no macro para (“B1:B100”) e (“C1:C100”) mas não funcionou.

Um abraço,

André

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia André

Aí já complica, pois não é só alterar os intervalos como você fez, e como eu te disse eu sou iniciante em VBA.

Deixo para os feras em VBA resolverem a tua dúvida.

Um abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se ajuda... Se entendi bem, acho que é isto que você deseja

for linha = 1to 100

If Range("B"&linha).Value = "1" Then

Application.EnableEvents = False

Range("A" & linha).Select ' Celula a ser copiada

Selection.Copy

Range("C" & linha).Select ' Celula de destino

Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

:=False, Transpose:=False

Application.CutCopyMode = False

End If

next linha

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa tarde Patropi,

Primeiramente, obrigado por sua atenção!

Abaixo segue o código do qual eu preciso.

Um grande abraço,

André

Código:

Private Sub Worksheet_Change(ByVal Target As Range)

Dim celulaOrigem As String

Dim colunaDestino As String

Dim colunaCondicional As String

Dim colunaCondicionalNumero As String

Dim condicao As String

Dim column As String

'#############################################

'########## PARÂMETROS DE ENTRADA ############

'#############################################

celulaOrigem = "A1"

colunaDestino = "C"

colunaCondicional = "B"

condicao = "1"

'#############################################

'#############################################

'#############################################

For Each cell In Target

column = Mid(cell.Address, InStr(cell.Address, "$") + 1, InStr(2, cell.Address, "$") - 2)

If column = colunaCondicional Then

copyCells celulaOrigem, colunaDestino, cell.Row, cell.Row, colunaCondicional, condicao

End If

Next cell

End Sub

Private Sub copyCells(ByVal sourceCell As String, ByVal destinationColumn As String, ByVal startLine As Integer, ByVal endLine As Integer, ByVal conditionColumn As String, ByVal condition As String)

Dim i As Integer

Dim destinationCell As String

Dim conditionCell As String

For i = startLine To endLine

destinationCell = destinationColumn & i

conditionCell = conditionColumn & i

If Range(conditionCell).Value = condition Then

Range(sourceCell).Copy

Range(destinationCell).PasteSpecial

Else

Range(destinationCell).Value = ""

End If

Next i

End Sub

Private Function getColumnChar(ByRef cell) As String

Dim MyColumn As String, Here As String

Here = cell.Address

MyColumn = Mid(Here, InStr(Here, "$") + 1, InStr(2, Here, "$") - 2)

getColumnChar = MyColumn

End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ops!!!!

Corrigindo pessoal! Segue abaixo com a correção de colar “simples” para “colar especial”.

Essa ficou legal porque que é só trocar os parâmetros que estão em verde entre os “******” e adaptar em qualquer situação.

Valeu!!! Flavio Soares.

Valeu!!! Patropi.

Um abraço,

André

Private Sub Worksheet_Change(ByVal Target As Range)

Dim celulaOrigem As String

Dim colunaDestino As String

Dim colunaCondicional As String

Dim colunaCondicionalNumero As String

Dim condicao As String

Dim column As String

'#############################################

'########## PARÂMETROS DE ENTRADA ############

'#############################################

celulaOrigem = "A1"

colunaDestino = "F"

colunaCondicional = "B"

condicao = "1"

'#############################################

'#############################################

'#############################################

For Each cell In Target

column = Mid(cell.Address, InStr(cell.Address, "$") + 1, InStr(2, cell.Address, "$") - 2)

If column = colunaCondicional Then

copyCells celulaOrigem, colunaDestino, cell.Row, cell.Row, colunaCondicional, condicao

End If

Next cell

End Sub

Private Sub copyCells(ByVal sourceCell As String, ByVal destinationColumn As String, ByVal startLine As Integer, ByVal endLine As Integer, ByVal conditionColumn As String, ByVal condition As String)

Dim i As Integer

Dim destinationCell As String

Dim conditionCell As String

For i = startLine To endLine

destinationCell = destinationColumn & i

conditionCell = conditionColumn & i

If Range(conditionCell).Value = condition Then

Range(destinationCell) = Range(sourceCell)

Range(destinationCell).NumberFormat = "dd/mm/yyyy"

Else

Range(destinationCell).Value = ""

End If

Next i

End Sub

Private Function getColumnChar(ByRef cell) As String

Dim MyColumn As String, Here As String

Here = cell.Address

MyColumn = Mid(Here, InStr(Here, "$") + 1, InStr(2, Here, "$") - 2)

getColumnChar = MyColumn

End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite André

Fico contente que você tenha conseguido resolver a tua dúvida.

Precisando retorne ao fórum.

Um abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Compartilhar este post


Link para o post
Compartilhar em outros sites
Visitante
Este tópico está impedido de receber novos posts.
Entre para seguir isso  





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

×