Ir ao conteúdo
  • Cadastre-se

GabrielSilvaLoki

Membro Júnior
  • Posts

    10
  • Cadastrado em

  • Última visita

Tudo que GabrielSilvaLoki postou

  1. Resolvido. Utilizei o seguinte código: Dim paginatual As String paginatual = "0" ordem = 1 For contador = 5 To final paginatual = wksDest.Range("B" & contador).Value wksDest.Range("A" & contador).Value = ordem If wksDest.Range("B" & contador + 1).Value <> paginatual Then ordem = 1 Else ordem = ordem + 1 End If Next
  2. Oi, não posso definir páginação padrão. É váriável, já que trabalhará com vários documentos neste formato, mas com quantidades diferentes.
  3. Fiz uma pequena alteração: Dim paginatual As String paginatual = "1" ordem = 1 For contador = 5 To final wksDest.Range("A" & contador).Value = ordem paginatual = wksDest.Range("B" & contador).Value If paginatual <> paginatual Then ordem = 1 Else ordem = ordem + 1 End If Next Ou seja, eu gravo o texto da coluna B5 na variável "paginatual" e vou fazendo o For enquanto a variável de valor for igual. Se for diferente, ele reseta o contador de ordem, caso não, ele continua. Mas ainda assim não está funcionando.
  4. Oi, A quantidade de produtos por página é variável... não consigo deixar ela fixa assim.
  5. A planilha Leo, que será salva com outro nome quando a macro é finalizada. O arquivo que contém o código é o nomeado "macro" O arquivo com os valores iniciais é "SP" O arquivo que vão ser inseridos os valores é "leo"
  6. Oi, o codigo está na planilha macro, que quando acionada a macro, irá pedir a planilha SP. Os valores serão todos colados na planilha leo A ordenação irá na coluna A, levando em referência a paginação da coluna B. Obs: todos os arquivos devem estar no mesmo diretório. arquivos_macro.zip
  7. Oi, desculpa! Esqueci da original e a padrão que recebe o paste. Segue. Original é a SP. arquivos.zip
  8. Segue abaixo o código completo da macro: Sub fnc() Dim wkbOrigem As Excel.Workbook Dim wkbOrigem2 As Excel.Workbook Dim wksOrigem As Excel.Worksheet Dim wkbDest As Excel.Workbook Dim wksDest As Excel.Worksheet Dim lngLast As Integer Dim Titulo As Variant Dim Arquivo As Variant Dim ArquivoFinal As Variant Dim codigoficha As String Dim nomeficha As String Dim pagina As String Dim unidade As String Dim Filtro1 As String Dim valorparcela As String Dim numeroparcela As String Dim abelinhaqte As String Dim abelinhapreco As String Dim ordem As Integer Dim contador As Integer Dim final As Integer ordem = 1 Filtro1 = "Text files (*.xl*),*.xl*" ArquivoFinal = ActiveWorkbook.Path & "\leo.xlsx" 'Colunas codigoficha = "J" nomeficha = "K" precovista = "P" pagina = "C" unidade = "L" valorparcela = "R" numeroparcela = "Q" abelinhaqte = "V" abelinhapreco = "W" 'Verifica se a planilha do retail existe If Dir(ArquivoFinal) <> "" Then 'Pega caminho dos arquivos MsgBox ("Insira o arquivo de origem") Arquivo = Application.GetOpenFilename(Filtro1) ArquivoFinal = ActiveWorkbook.Path & "\leo.xlsx" 'Abre pastas de trabalho e planilhas. 'Altere os caminhos e nomes de planilhas para adequar a seu caso. Set wkbOrigem = Workbooks.Open(Arquivo) Set wksOrigem = wkbOrigem.Worksheets(1) Set wkbDest = Workbooks.Open(ArquivoFinal) Set wksDest = wkbDest.Worksheets("SP") 'Descobre a última linha da planilha de destino With wksDest lngLast = .Cells(.Rows.Count, "D").End(xlUp).Row + 1 End With wksOrigem.Activate 'Codigo de barras wksOrigem.Range(codigoficha & "5:" & codigoficha & "250").Copy wksDest.Cells(lngLast, "D").PasteSpecial Paste:=xlPasteValues 'Nome ficha wksOrigem.Range(nomeficha & "5:" & nomeficha & "250").Copy wksDest.Cells(lngLast, "E").PasteSpecial Paste:=xlPasteValues 'Preço Vista wksOrigem.Range(precovista & "5:" & precovista & "250").Copy wksDest.Cells(lngLast, "K").PasteSpecial Paste:=xlPasteValues 'Página wksOrigem.Range(pagina & "5:" & pagina & "250").Copy wksDest.Cells(lngLast, "B").PasteSpecial Paste:=xlPasteValues 'Unidade wksOrigem.Range(unidade & "5:" & unidade & "250").Copy wksDest.Cells(lngLast, "V").PasteSpecial Paste:=xlPasteValues 'Parcela wksOrigem.Range(numeroparcela & "5:" & numeroparcela & "250").Copy wksDest.Cells(lngLast, "Z").PasteSpecial Paste:=xlPasteValues 'Valor Parcela wksOrigem.Range(valorparcela & "5:" & valorparcela & "250").Copy wksDest.Cells(lngLast, "Q").PasteSpecial Paste:=xlPasteValues 'Abelinha Qte wksOrigem.Range(abelinhaqte & "5:" & abelinhaqte & "250").Copy wksDest.Cells(lngLast, "V").PasteSpecial Paste:=xlPasteValues 'Abelinha Preço wksOrigem.Range(abelinhapreco & "5:" & abelinhapreco & "250").Copy wksDest.Cells(lngLast, "W").PasteSpecial Paste:=xlPasteValues 'Se quiser colar valores: 'wksOrigem.Range("D5:D250").Copy 'wksDest.Cells("D5").PasteSpecial Paste:=xlPasteValues 'Conta o final da planilha tratada With wksDest final = .Cells(.Rows.Count, "D").End(xlUp).Row End With 'Numera a ordem Dim pegapagina As String Dim contapagina As Integer contapagina = 1 pegapagina = wksDest.Range("A" & contapagina).Value Do While pegapagina = pegapagina For contador = 5 To final wksDest.Range("A" & contador).Value = ordem ordem = ordem + 1 Next Loop 'Renomeia a Sheet com o nome da Praça Dim NovaPraca As String NovaPraca = InputBox("Digite o Nome da Praça:", "Praça", "") 'Se a praça não for SP, coloca a SP como base If NovaPraca <> "SP" Then wksDest.Cells(1, "B").Value = "SP" End If wkbOrigem.Close SaveChanges:=False wksDest.Name = NovaPraca wkbDest.SaveCopyAs Filename:="RetailLeo_" & NovaPraca & ".xlsx" wkbDest.Close SaveChanges:=False wkbDest.Close Else MsgBox ("Arquivo padrão retail não encontrado") End If End Sub
  9. Boa tarde, Preciso de ajuda urgente!! Estou criando uma macro que copia os valores de uma planilha para outra e, em determinado momento, ela copia uma coluna que ontem números de páginas. em outra coluna, preciso númerar cada produto nas páginas, ou seja, pagina 1 terá o produto 1,2,3,n... Página 2 produtos 1,2,n... E assim consecutivamente. Preciso de ajuda para fazer essa numeração automática para cada página. Consegui fazer um For que númera, mas ainda não identifica as páginas, ou seja, está trabalhando com todos os produtos como se fossem de uma página só. Segue abaixo trecho do código: 'Conta o final da planilha tratada With wksDest final = .Cells(.Rows.Count, "D").End(xlUp).Row End With 'Numera a ordem Dim pegapagina As String Dim contapagina As Integer contapagina = 1 pegapagina = wksDest.Range("A" & contapagina).Value Do While pegapagina = pegapagina For contador = 5 To final wksDest.Range("A" & contador).Value = ordem ordem = ordem + 1 Next Loop

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...