Ir ao conteúdo
  • Cadastre-se

Loop VBA


hudhc

Posts recomendados

Olá,

Eu tenho o seguinte código em VBA:

Private Sub Worksheet_Change(ByVal Target As Range)

If Range("C1").Value = "" Then

Columns("C").Hidden = True

End If

End Sub

Ele faz o seguinte, quando a célula "C1" estiver vazia, a coluna "C" fica oculta.

Eu gostaria de saber se da para fazer um loop ou qualquer outro código que de para estender o código para o restante da planilha. Tipo assim, célula "D1" para a coluna "D" e assim por diante. Claro que da para fazer um por um, mas isso vai ser bastante inconveniente.

Então se alguém puder me ajudar, desde já eu agradeço.

Link para o comentário
Compartilhar em outros sites

Olá,

Eu tenho o seguinte código em VBA:

Private Sub Worksheet_Change(ByVal Target As Range)

If Range("C1").Value = "" Then

Columns("C").Hidden = True

End If

End Sub

Ele faz o seguinte, quando a célula "C1" estiver vazia, a coluna "C" fica oculta.

Eu gostaria de saber se da para fazer um loop ou qualquer outro código que de para estender o código para o restante da planilha. Tipo assim, célula "D1" para a coluna "D" e assim por diante. Claro que da para fazer um por um, mas isso vai ser bastante inconveniente.

Então se alguém puder me ajudar, desde já eu agradeço.

Tente o seguinte código:

Dim LR As Long, k As Long

LR = Cells(1, Columns.Count).End(xlUp).Row

For k = 1 To LR

If Cells(1, k).Value = "" Then

Columns(k).Delete

End If

Next k

Link para o comentário
Compartilhar em outros sites

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Row > 1 Then Exit Sub
If Target.Value = "" Then
Columns(Target.Column).Hidden = True
End If
End Sub

Link para o comentário
Compartilhar em outros sites

osvaldomp o código funcionou, só queria mais uma coisa. Após ocultar a coluna, gostaria que ela fosse reexibida quando escrevesse alguma coisa nela, mais ou menos o inverso desse código ae.

Mais ou menos o seguinte, a coluna "C" está oculta e quando a célula "C1" for preenchida, a coluna "C" fica visível novamente.

AlysonR, cara eu não consegui aplicar o seu código, não manjo muito de promagramação rsrsrs. Se você pudesse explicar mais ou menos como esse código funciona seria legal. Valeu.

Link para o comentário
Compartilhar em outros sites

... só queria mais uma coisa. Após ocultar a coluna, gostaria que ela fosse reexibida quando escrevesse alguma coisa nela, mais ou menos o inverso desse código ae.

Mais ou menos o seguinte, a coluna "C" está oculta e quando a célula "C1" for preenchida, a coluna "C" fica visível novamente.

Antes, você poderia explicar,... mais ou menos ..., qual a mágica que você pretende fazer para conseguir preencher 'C1' estando a coluna 'C' oculta?

Link para o comentário
Compartilhar em outros sites

Antes, você poderia explicar,... mais ou menos ..., qual a mágica que você pretende fazer para conseguir preencher 'C1' estando a coluna 'C' oculta?

kkk... tenho um formulário em vba que preenche algumas células pré determinadas.

uso um código parecido com esse:

Sheets("Plan1").Range("C1").Value = TextBox.Value

Ai digito no textbox e com o botão eu gravo na célula

Link para o comentário
Compartilhar em outros sites

...Ai digito no textbox e com o botão eu gravo na célula

kkkkkkkk ... Cheguei a pensar que você fosse o He Man, com superpoderes ...

Testaí... acrescentei a linha em vermelho.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Row > 1 Then Exit Sub
If Target.Value = "" Then
Columns(Target.Column).Hidden = True
[COLOR="Red"]Else: Columns(Target.Column).Hidden = False[/COLOR]
End If
End Sub

Link para o comentário
Compartilhar em outros sites

kkkkkkkk ... Cheguei a pensar que você fosse o He Man, com superpoderes ...

Testaí... acrescentei a linha em vermelho.

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Row > 1 Then Exit Sub
If Target.Value = "" Then
Columns(Target.Column).Hidden = True
[COLOR="Red"]Else: Columns(Target.Column).Hidden = False[/COLOR]
End If
End Sub

Cara OBRIGADO, foi de muita ajuda!!!

He-Man?? To quase la kkkkkk.

Valeu

Cara ocorreu algo inesperado. O código só funciona quando eu preencho ou deixo em branco célula por célula, e quando eu tento fazer em mais de uma ele não funciona.

Exemplo:

As células da linha 1 estão preenchidas da coluna A até a E, ai eu seleciono todas (A1;B1;C1;D1;E1) e apago o conteúdo delas e o código não funciona.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...