Notifications
Clear all

PLANILHA NÃO SALVA DADOS NA LINHA VAZIA CORRETA

4 Posts
3 Usuários
0 Reactions
877 Visualizações
(@alinejr)
Posts: 4
New Member
Topic starter
 

Oi gente,

estou com um problema bem irritante aqui no meu arquivo VBA.
A questão é a seguinte, criei um userform que salva diversas informações no mesmo instante em diversas planilhas, acontece que por exemplo quando quero salvar dados na planilha 2 e na planilha 7 ao mesmo tempo usando o userform, se a plainha ativa for a 2 ele percorre as linhas vazias e salva corretamente na primeira linha os dados que se destinam a planilha 2, mas quanto a planilha 7 que está inativa ele salva em qualquer lugar entre as linhas vazias (mesmo assim não é o que eu quero). Já quando estou com a plan7 ativa ele salva corretamente os dados nessa planilha, mas aí na plan2 ele coloca em qualquer linha até numa já preenchida, o que é bem pior. Alguém pode me ajudar? Onde estou errando? :( :(

O código que estou usando para condição específica que deve salvar dados nestas duas planilhas é:

If CB_TIPO = "SAÍDA" And CB_CUSTO = "Retirada do financeiro" Then
   
        linha = 5
        Set PLAN = Plan2
        Range("b1048576").Select 'seleciona a ultima linha da planilha
        Selection.End(xlUp).Select 'sobe na primeira linha preenchida da planilha
        ActiveCell.Offset(1, 0).Select 'desce para célula em branco
        linha = ActiveCell.Row 'captura na variável o valor da linha atual
              
        With PLAN
        .Cells(linha, 2) = CX_DATA.Value
        .Cells(linha, 3) = CB_NCLIENTE.Value
        .Cells(linha, 4) = CX_DESC.Value
        .Cells(linha, 6) = CX_NOTA.Value
        .Cells(linha, 7) = CB_CUSTO.Value
        .Cells(linha, 8) = CB_PAGAM.Value
        .Cells(linha, 9) = cb_Categoria.Value
        .Cells(linha, 11) = CCur(CX_SAI.Value)
        End With
      
      Set PLAN = Plan7 'EDITANDO
        Range("b1048576").Select 'seleciona a ultima linha da planilha
        Selection.End(xlUp).Select 'sobe na primeira linha preenchida da planilha
        ActiveCell.Offset(1, 0).Select 'desce para célula em branco
        linha = ActiveCell.Row 'captura na variável o valor da linha atual
        linha1 = linha + 1
        
        With PLAN
        .Cells(linha, 2) = CX_DATA.Value
        .Cells(linha, 6) = CB_PAGAM.Value
        .Cells(linha, 7) = cb_Categoria.Value
        .Cells(linha, 9) = CCur(CX_SAI.Value)
        End With
End If
 
Postado : 02/05/2018 2:41 pm
xlarruda
(@xlarruda)
Posts: 732
Honorable Member
 

Veja se isso atende:

If CB_TIPO = "SAÍDA" And CB_CUSTO = "Retirada do financeiro" Then

Dim Ultimalinhaplan2, Ultimalinhaplan7 As Long
Ultimalinhaplan2 = plan2.Range("B" & Rows.Count).End(xlUp).Row + 1
Ultimalinhaplan7 = plan7.Range("B" & Rows.Count).End(xlUp).Row + 1

With PLAN
.Cells(Ultimalinhaplan2, 2) = CX_DATA.Value
.Cells(Ultimalinhaplan2, 3) = CB_NCLIENTE.Value
.Cells(Ultimalinhaplan2, 4) = CX_DESC.Value
.Cells(Ultimalinhaplan2, 6) = CX_NOTA.Value
.Cells(Ultimalinhaplan2, 7) = CB_CUSTO.Value
.Cells(Ultimalinhaplan2, 8) = CB_PAGAM.Value
.Cells(Ultimalinhaplan2, 9) = cb_Categoria.Value
.Cells(Ultimalinhaplan2, 11) = CCur(CX_SAI.Value)
End With

Set PLAN = plan7

With PLAN
.Cells(Ultimalinhaplan7, 2) = CX_DATA.Value
.Cells(Ultimalinhaplan7, 6) = CB_PAGAM.Value
.Cells(Ultimalinhaplan7, 7) = cb_Categoria.Value
.Cells(Ultimalinhaplan7, 9) = CCur(CX_SAI.Value)
End With
End If

___________________________________________________________________________________________
Se a resposta atendeu sua dúvida, por favor, clique no Gostei e marque o Tópico como [Resolvido].

Att.

André Arruda

 
Postado : 02/05/2018 2:58 pm
Wagner Morel
(@wagner-morel-vidal-nobre)
Posts: 0
Illustrious Member
 

alinejr,

Bom dia!

Pedimos, por gentileza, ao postar código VBA aqui no fórum, utilizar a ferramenta CODE que fica localizada logo acima da caixa de mensagens (quinto botão da esquerda para a direita).

Desenvolvo pequenas soluções em VBA Excel a valores que variam entre R$ 50,00 a R$ 200,00. Se te interessar, entre no meu instagran (vba_excel_desenvolvimento)

Atenciosamente
Wagner Morel

 
Postado : 03/05/2018 8:18 am
(@alinejr)
Posts: 4
New Member
Topic starter
 

xlarruda

Oiii, poxa, muito obrigada. Era exatamente isso que eu precisava, não entendo como não havia pensado nisso!!!

Muito obrigada mesmoooooo! :D :D :D :D :D :D :D :D :D

 
Postado : 04/05/2018 5:10 am