Ir ao conteúdo
  • Cadastre-se

Escreve em células - macro


Ir à solução Resolvido por Visitante,

Posts recomendados

Olá tenho esse código. Estou com um problema, a partir do IF com Elétrica o código era para adicionar o que estava na TextBox1 na coluna respectiva a Elétrica, só que o código como consegui fazer só escreve na mesma célula subscrevendo cada vez que tentar usar ele. Na parte Interligação Frigorífica ele funciona como deveria. Gostaria de ajuda de como resolver isso.
 

Private Sub CommandButton1_Click()  If TextBox1.Value = "" Then        Exit Sub    End If       If ComboBox1.Value = "" Then        Exit Sub    End If       If ComboBox1.Value = "INTERLIGAÇÃO FRIGORÍFICA" Then        Dim varA As Variant               With Sheets("teste 1").Cells(Rows.Count, 1).End(xlUp)            .Offset(1, 0).Value = TextBox1.Text        End With           varA = Sheets("teste 1").Range("L7").Value           If varA <= 0 Then            Label3.Caption = "Consumo dentro do orçado"               ElseIf varA > 0 Then            Label3.Caption = "Consumo além do orçado em " & Format(varA, "Currency")        End If       ComboBox1.ListIndex = -1    TextBox1.Text = ""       End If  If ComboBox1.Value = "ELÉTRICA" Then        Dim varB As Variant               With Sheets("teste 1").Cells(Rows.Count, 1).End(xlUp)            .Offset(1, 1).Value = TextBox1.Text        End With           varB = Sheets("teste 1").Range("L8").Value           If varB <= 0 Then            Label3.Caption = "Consumo dentro do orçado"               ElseIf varB > 0 Then            Label3.Caption = "Consumo além do orçado em " & Format(varB, "Currency")        End If       ComboBox1.ListIndex = -1    TextBox1.Text = ""       End If      End Sub
Link para o comentário
Compartilhar em outros sites

É considerado boa prática declarar variáveis logo no início da macro, isso facilita p/ você e p/ quem for revisar seu código.

 

Dim varA As Variant

Dim varB As Variant

 

O seu comando parece não ter um ponto de partida.

 

With Sheets("teste 1").Cells(Rows.Count, 1).End(xlUp)

            .Offset(1, 0).Value = TextBox1.Text

Link para o comentário
Compartilhar em outros sites

É considerado boa prática declarar variáveis logo no início da macro, isso facilita p/ você e p/ quem for revisar seu código.

 

Dim varA As Variant

Dim varB As Variant

 

O seu comando parece não ter um ponto de partida.

 

With Sheets("teste 1").Cells(Rows.Count, 1).End(xlUp)

            .Offset(1, 0).Value = TextBox1.Text

 

Essa parte do código funciona, provavelmente porque a coluna em que está é A. A outra é B.

Link para o comentário
Compartilhar em outros sites

@gugadg

 

Na parte do código que trata da "ELÉTRICA" experimente substituir estas linhas


With Sheets("teste 1").Cells(Rows.Count, 1).End(xlUp)
.Offset(1, 1).Value = TextBox1.Text
End With

 

 

 

por estas

With Sheets("teste 1").Cells(Rows.Count, 2).End(xlUp)
.Offset(1).Value = TextBox1.Text
End With

 

 

Link para o comentário
Compartilhar em outros sites

@gugadg

 

Na parte do código que trata da "ELÉTRICA" experimente substituir estas linhas

 

 

por estas

 

Entendi, muito obrigado, irei testar isso. No caso o código ira se deslocar uma coluna a direita? Gosto de tentar entender o que estou escrevendo.

Testei o sistema e funcionou como eu gostaria. Antes de dar como resolvido gostaria de tirar outra dúvida. Como se faz para impedir que alguém escreva numa ComboBox e assim só escolha a opções desta?

Link para o comentário
Compartilhar em outros sites

  • Solução

No caso o código ira se deslocar uma coluna a direita? Gosto de tentar entender o que estou escrevendo.

O comando que está no seu código do post #1 busca a última célula com conteúdo em "A", porém insere o valor da TextBox em "B", na linha logo abaixo, então, se após essa operação a última linha em "A" permanecer a mesma, ao rodar o código novamente o valor anterior em "B" será sobrescrito.

O comando que eu sugeri busca a última linha em "B" (esta é a diferença para o seu código), e insere o valor da TextBox na célula logo abaixo (o que já era feito pelo seu código).

 

With Sheets("teste 1").Cells(Rows.Count, 2).End(xlUp) 'busca a última linha com conteúdo em "B"

.Offset(1).Value = TextBox1.Text 'insere o valor da TextBox na célula logo abaixo

 

 

Como se faz para impedir que alguém escreva numa ComboBox e assim só escolha a opções desta?

A ComboBox apresenta as funcionalidades da TextBox e da ListBox. Eu não conheço uma forma de impedir a entrada via teclado na Combo. Experimente substituir a Combo pela ListBox.

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber 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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!