Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
#54366
Olá Pessoal...

Faz dias que quebro a cabeça com essa planilha... Preciso substituir automaticamente cada linha da planilha de controle de transações de cartões parcelados realizadas (que no caso representa o total) por suas parcelas.

Ou seja, quando na coluna "Total de Parcelas" o valor for maior do que 1 (a Getnet apresenta a venda a crédito sem ser parcelado como 1 parcela, a Cielo apresenta como 0 parcela), a linha daquela transação precisa ser excluída e no local devem ser incluídas as parcelas respectivas.

Não sei se consegui me fazer entender. Segue em anexo a planilha que uso como base e que preciso incluir a macro para substituir todas as transações que sejam parceladas por suas respectivas parcelas e datas de pagamento.

Agradeço antecipadamente por qualquer ajuda.

Gregory
Você não está autorizado a ver ou baixar esse anexo.
#54367
gregvides escreveu:
Preciso substituir automaticamente cada linha ...
Você quer substituir todos os dados da venda e ficar sem o histórico, é isso?

... a linha daquela transação precisa ser excluída e no local devem ser incluídas as parcelas respectivas.
Em quais colunas você quer as parcelas ?
Como calcular o valor das parcelas ?


Não sei se consegui me fazer entender.
Seria útil se você colocasse os resultados desejados na planilha com as necessárias explicações.
#54369
Olá Osvaldo, Boa noite!

1) Sim, quando for uma transação parcelada, quero que a linha relativa a essa transação seja substituída por tantas transações quantas forem as parcelas.

2) Na planilha há uma coluna que informa quantas parcelas são, e, no caso de ser 2 ou 3, para se obter o valor de cada parcela seria apenas dividir o valor da transação total pelo total de parcelas.

3) Estou anexando duas planilhas, uma da forma que eu tenho os dados, e a outro com a forma que eu espero que fique após o tratamento pelo macro (vou marcar de vermelho o que deveria ser excluído e de amarelo o que deveria ser incluído).

Muito obrigado por sua atenção e ajuda!!!

Gregory
Você não está autorizado a ver ou baixar esse anexo.
#54381
Olá, Gregory.
Veja se aproveita.
O resultado do código abaixo apresenta divergências do seu resultado nas colunas F:G do segundo registro.
Funciona com qualquer quantidade de registros e de parcelas.
Código: Selecionar todos
Sub InsereParcelas()
 Dim LR As Long, k As Long, x As Long
  LR = Cells(Rows.Count, 1).End(3).Row
  Application.ScreenUpdating = False
  For k = LR To 2 Step -1
   If Cells(k, 5) > 1 Then
    x = Cells(k, 5)
    Rows(k + 1).Resize(x - 1).EntireRow.Insert
    Cells(k, 5).Resize(x) = 1
    Cells(k, 6).Resize(x) = Cells(k, 6) / x
    Cells(k, 7).Resize(x) = Cells(k, 7) / x
   End If
  Next k
  LR = Cells(Rows.Count, 5).End(3).Row
  Range("A2:A" & LR).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=EDATE(R[-1]C,1)"
  Range("B2:B" & LR).Resize(, 3).SpecialCells(xlCellTypeBlanks).FormulaR1C1 = "=R[-1]C"
  Range("A2:D" & LR).Value = Range("A2:D" & LR).Value
  Application.ScreenUpdating = True
End Sub
#54401
Olá Osvaldo!!!

Muito obrigado! É exatamente isso que eu precisava!

Só mais uma dúvida... Quando não há nenhuma transação parcelada (ou seja, quando há apenas transações com 1 ou 0) a macro retorna o erro "Erro em tempo de execução 1004; Nenhuma célula foi encontrada". Tem como alterar o código para, em não havendo nenhuma transação a ser dividida, a macro simplesmente não fazer nada mesmo e não retornar o erro?

Muitíssimo obrigado por sua atenção!

Gregory
#54410
Olá, Gregory.

Acrescente a linha em vermelho conforme abaixo.

Dim LR As Long, k As Long, x As Long
If Application.CountIf([E:E], ">" & 1) = 0 Then Exit Sub
LR = Cells(Rows.Count, 1).End(3).Row
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord