Notifications
Clear all

Condicional IF entre duas colunas

10 Posts
3 Usuários
0 Reactions
1,927 Visualizações
OrlandoS
(@orlandos)
Posts: 104
Estimable Member
Topic starter
 

.
Olá, pessoal!

Fiz tudo até onde aprendi, pesquisando também aqui.
Mas não consigo salvar o código abaixo no editor da Plan1:

Sub Condicional_IF()

' Colar os dados da coluna A em B se estiver vazia
If Range("B2:B18").Value = 0 Then

Range("A2:A18").Select
Selection.Copy
Range("B2:B18").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Range("A2").Select

Exit Sub
End If

Worksheets("Plan1").Range("B2:B18").ClearContents

End Sub

Segue uma planilha-modelo:

Grato pela atenção!
Orlando Souza

:geek:

PS: Se a resposta foi útil, clique na "mãozinha positiva" ou em "curtir" na fonte de link informada, agradecendo ao colaborador do código/fórmula. Eu já fiz a minha parte! :]

 
Postado : 18/02/2018 2:22 pm
(@klarc28)
Posts: 971
Prominent Member
 
Sub teste()

  If WorksheetFunction.CountA(Range("B2:B18")) = 0 Then


Range("A2:A18").Select
Selection.Copy
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
Range("A2").Select

End If

Worksheets("Plan1").Range("A2:A18").ClearContents

End Sub
 
Postado : 18/02/2018 2:40 pm
(@osvaldomp)
Posts: 859
Prominent Member
 

Opções sem Select:

Sub Condicional_IF()
 ' Colar os dados da coluna A em B se estiver vazia
 If Application.CountA([B2:B18]) = 0 Then [B2:B18].Value = [A2:A18].Value
End Sub
Sub Condicional_IF()
 ' Colar os dados da coluna A em B se estiver vazia
 If Application.CountA([B2:B18]) = 0 Then [A2:A18].Copy [B2]
End Sub

Osvaldo

 
Postado : 18/02/2018 3:38 pm
OrlandoS
(@orlandos)
Posts: 104
Estimable Member
Topic starter
 

.
realmente, o problema não só estava na forma de
salvar o arquivo (afff!! sempre esqueço desse ".xlsm").
Mas também está no desenvolvimento do código.

Então, vou explicar como gostaria que funcionasse:

1ª) Se a coluna B estiver limpa, copiar (sem recortar)
os dados da coluna A e colar (sem formatação) na coluna B.
2ª) Se a coluna B estiver preenchida, limpar essa coluna,
encerrando o código sem executar a 1ª) opção.

grato aos que já contribuíram até o momento.

abçs.

PS: Se a resposta foi útil, clique na "mãozinha positiva" ou em "curtir" na fonte de link informada, agradecendo ao colaborador do código/fórmula. Eu já fiz a minha parte! :]

 
Postado : 18/02/2018 7:29 pm
(@klarc28)
Posts: 971
Prominent Member
 

...........

 
Postado : 18/02/2018 7:37 pm
(@osvaldomp)
Posts: 859
Prominent Member
 

.
1ª) Se a coluna B estiver limpa, copiar (sem recortar)
os dados da coluna A e colar (sem formatação) na coluna B.
2ª) Se a coluna B estiver preenchida, limpar essa coluna,
encerrando o código sem executar a 1ª) opção.

Private Sub CommandButton1_Click()
 [B2:B18].Value = IIf(Application.CountA([B2:B18]) = 0, [A2:A18].Value, "")
End Sub

Osvaldo

 
Postado : 19/02/2018 4:52 am
OrlandoS
(@orlandos)
Posts: 104
Estimable Member
Topic starter
 

...........

Deu um erro no VBAProject, conforme a imagem abaixo:


Inclusive, pretendo inserir o código só no editor da Plan1, sem usar Módulo.
Porque está dessa forma na minha planilha-principal.

Grato!

.
1ª) Se a coluna B estiver limpa, copiar (sem recortar)
os dados da coluna A e colar (sem formatação) na coluna B.

Private Sub CommandButton1_Click()
 [B2:B18].Value = IIf(Application.CountA([B2:B18]) = 0, [A2:A18].Value, "")
End Sub

Muito bom! Bem mais simples do que o meu.
A minha planilha-principal tem a linha de comando abaixo, que abre o resultado em PDF quando a 1ª opção for verdadeira:

' Salvar e abrir o resultado em PDF
        ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        ActiveWorkbook.Path & "" & Range("AA1").Value & "RESULTADO DA PLAN1" & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True

Grato!

PS: Se a resposta foi útil, clique na "mãozinha positiva" ou em "curtir" na fonte de link informada, agradecendo ao colaborador do código/fórmula. Eu já fiz a minha parte! :]

 
Postado : 19/02/2018 10:30 pm
(@klarc28)
Posts: 971
Prominent Member
 

Arquivo >> Opções >> Central de Confiabilidade >> Configurações da Central de Confiabilidade >> Configurações de Macro >> Habilitar Todas as Macros

 
Postado : 19/02/2018 10:51 pm
OrlandoS
(@orlandos)
Posts: 104
Estimable Member
Topic starter
 

klarc28

Funcionou!
Agora, vou tentar adaptá-lo à linha de comando que escrevi na mensagem
de 20 Fev 2018, 01:30 e a outros códigos que funcionam simultaneamente
na minha planilha-principal através de um botão CommandButton1_Click()

PS: Se a resposta foi útil, clique na "mãozinha positiva" ou em "curtir" na fonte de link informada, agradecendo ao colaborador do código/fórmula. Eu já fiz a minha parte! :]

 
Postado : 20/02/2018 1:13 pm
OrlandoS
(@orlandos)
Posts: 104
Estimable Member
Topic starter
 

Deu certo! o/
Criei um novo código, mesclando partes de todos os códigos sugeridos aqui
e consegui acrescentar a linha de comando que postei depois, incluindo novos
operadores de comparação do Visual Basic.

Muito obrigado, pessoal!!!

:)

PS: Se a resposta foi útil, clique na "mãozinha positiva" ou em "curtir" na fonte de link informada, agradecendo ao colaborador do código/fórmula. Eu já fiz a minha parte! :]

 
Postado : 21/02/2018 9:48 pm