Notifications
Clear all

Estrutura de Repetição

6 Posts
2 Usuários
1 Reactions
1,518 Visualizações
LeandroSJC
(@leandrosjc)
Posts: 18
Active Member
Topic starter
 

Estrutura de Repetição

Boa Tarde!

Como elaborar a estrutura de repetição.

Na planilha tenho Sheets:- “INSERIR_Produtos” / “Entrada_Produtos”  /  “Depart_Venda”

 Em Inserir Produtos tem 28 coluna, sendo 6 colunas onde são inseridos os lançamentos e  22 colunas contém formulas. Serão distribuídas para 2 Sheets conf. as colunas.

Inserir Produtos começa na B6 e vai até B15, pode receber de 1 a 10 lançamentos.

Ao usar menos < 10 lançamentos ela pula linha, por causa dos códigos.  Geralmente uso os códigos abaixo.

Modelo 1

Sheets(“Inserir_Produtos”).Select

Range(“B6:B15”).Copy

Sheets(“Entrada_produtos”).Select

Linha=Range(“B1048576”).End(xlUp).Row+1

Range(“B” & Linha).PasteSpecial xlPasteValues

Etc.....

 

Modelo 2

  Sheets("PRODUTOS_LANÇAR").Select

        Range("B6:N20").Select

        Selection.Copy

   Sheets("ENTRADA_MERCADORIAS").Select

        Range("B50000").Select

        Selection.End(xlUp).Select

        ActiveCell.Offset(1, 0).Select

        Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _

            :=False, Transpose:=False

Print em anexo.

Leandro Bathista

    SJCampos    


Editado pela Moderação. Motivo: procure utilizar o botão Código (< >) para inserir código VBA ou Fórmulas.

 
Postado : 02/08/2020 5:13 pm
(@nmis159)
Posts: 13
Active Member
 

Não entendi muito o que vc está tentando fazer...

Montei de maneira simples uma cópia da sua...

agora me explique qual é realmente o erro, pois não vejo erro em copiar os dados de uma sheet para outra

Este post foi modificado 4 anos atrás por Nmis159
 
Postado : 03/08/2020 1:21 pm
LeandroSJC
(@leandrosjc)
Posts: 18
Active Member
Topic starter
 

Olá! Obrigado por ter respondido.

O seu exemplo deu certo, mas ele não contém formulas embutido.

Coluna: COR VERDE Recebe os dados, que vão da linha 6 até linha 15. Colunas restantes contém formulas.

Ao acionar a MACRO as linhas em branco ficam registrada na memória.   E nos próximos lançamentos ficam pulando as linhas, conf. ENTRADA_PRODUTOS  e  VALOR_VENDAS.                                                  

Qual o critério a ser usado, seria estrutura de repetição?

Segue em anexo a planilha.

Leandro Bathista

      SJCampos

 
Postado : 03/08/2020 6:34 pm
(@nmis159)
Posts: 13
Active Member
 

Boa Tarde!

Visualizei o erro... que é a cópia das células com fórmula que tem resultado "vazio" o Excel está copiando resultado vazio das fórmulas como valor "vazio" (fazendo se passar que a célula tem valor)

para corrigir isto, tem muitas formas, mas uma delas, simples, é adicionado valor a células vazias contadas e apagando esses valores, para torná-las realmente vazias.

Assim, vc pode fazer as seguintes substituições (onde insiro valor */\*/\* e os apago depois):

 

1ª Sheet

' GRUPO - PRODUTOS - MARCA - PROD C/
'Corrigindo células vazias
Linha = Range("D1048576").End(xlUp).Row + 1
Range("D1:G" & Linha).Select
Selection.Replace What:="", Replacement:="*/\*/\*", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="*/\*/\*", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'Fim Correção Células Vazias

Sheets("INSERIR_PRODUTOS").Select
Range("E6:H15").Copy

Sheets("ENTRADA_PRODUTOS").Select
Linha = Range("D1048576").End(xlUp).Row + 1
Range("D" & Linha).PasteSpecial xlPasteValues

-----------------------------------------

 

2ª Sheet

' GRUPO & PRODUTOS

'Corrigindo células vazias
Linha = Range("D1048576").End(xlUp).Row + 1
Range("D1:F" & Linha).Select
Selection.Replace What:="", Replacement:="*/\*/\*", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Selection.Replace What:="*/\*/\*", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
'Fim Correção Células Vazias

Sheets("INSERIR_PRODUTOS").Select
Range("E6:F15").Copy

Sheets("VALOR_VENDA").Select
Linha = Range("D1048576").End(xlUp).Row + 1
Range("D" & Linha).PasteSpecial xlPasteValues

 

 

 
Postado : 04/08/2020 1:38 pm
LeandroSJC reacted
LeandroSJC
(@leandrosjc)
Posts: 18
Active Member
Topic starter
 

@nmis159

Boa Noite!

Perfeito, vou aplicar em toda planilha.

Obrigado pela força,

Leandro Bathista

    SJCampos

 

 

 
Postado : 05/08/2020 6:24 pm
LeandroSJC
(@leandrosjc)
Posts: 18
Active Member
Topic starter
 

Planilhas funcionando perfeitamente.

Obrigado,

Leandro Bathista

   SJCampos

 
Postado : 06/08/2020 1:04 pm