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.
  • Avatar do usuário
Por SandroLima
#66824
Boa tarde, pessoal.

Tenho uma macro para inserir linhas conforme o Nº de Procedimentos ou Parcelas (aquele que for maior).

Preciso de auxílio na seguinte necessidade:

No caso do exemplo da planilha anexa são 5 procedimentos e 3 parcelas, portanto ela insere 5 linhas e descreve cada linha da Coluna Proced como P1, P2, P3 etc.

Na Coluna Parcelas preciso que ela insira Parcela 1 de 3, Parcela 2 de 3 e Parcela 3 de 3.

Tentei com um Bloco "For... Next" dentro do outro mas sem sucesso.

Alguém poderia me orientar/ajudar em como proceder?

Na Planilha tem duas tabelas.

A Tabela 1 serve para verificação e teste da Macro e a Tabela 2 apresenta o resultado desejado.
Você não está autorizado a ver ou baixar esse anexo.
Por SandroLima
#66950
Boa noite, Jonathaluis.

Excelente alternativa.... obrigado pela ajuda.

No lugar desse trecho do seu código:
Código: Selecionar todos
If inserirParcelas And _
                    parc <= Parcelas Then
                    Tabela.ListColumns("Parcelas").DataBodyRange.Cells(1, 1).Value = "Parcela " & parc & _
                        " de " & Parcelas
                    parc = parc + 1
                End If
Consegui resolver da seguinte forma:
Código: Selecionar todos
If Parcelas >= P-1 Then
                            .ListColumns("Parcelas").DataBodyRange.Cells(1, 1).Value = "Parcela " & P-1 & " de " & Parcelas
                        Else
                            .ListColumns("Parcelas").DataBodyRange.Cells(1, 1).Value = ""
                        End If
Mais uma vez obrigado por agregar conhecimento.
Avatar do usuário
Por Jonathaluis
Posts Avatar
#66951
Boa!

Por questão de performance você não precisa do Else.
Quando você cria uma linha nova os seus campos estão todos vazios.
O código só vai inserir as parcelas quando entrar no if, do contrário não fará nada, então não precisa colocar o else com a linha que insere vazio(.ListColumns("Parcelas").DataBodyRange.Cells(1, 1).Value = "").
A mesma coisa para a linha Tabela.ListColumns("Descrição").DataBodyRange.Cells(1, 1).Value = "", quando cria uma linha nova já está vazia.
Só utilizaria celula= "" quando eu quisesse limpar o campo e nesse caso eles já são criados limpos.
SandroLima agradeceu por isso
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