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