Ir ao conteúdo
  • Cadastre-se

GabrielSilvaLoki

Membro Júnior
  • Posts

    10
  • Cadastrado em

  • Última visita

posts postados por GabrielSilvaLoki

  1. 2 minutos atrás, CasaDoHardware disse:

    E so configurar a pagina corretamente, ou seja a cada um numero x de linhas você insere uma quebra de pagina e pronto.

     

    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.

  2. 2 minutos atrás, CasaDoHardware disse:

    você precisa configurar a planilha leo, pra saber qtas linhas vai ter em cada pagina, isso vai depender se ela vai estar em retrato ou paisagem entre outras configurações que você venha aplicar.

     

    Fiz um ajuste para 80 linhas por pagina dentro do next que realiza a contagem, esta assim

     

    if ordem = 80 then

    ordem = 1

    end if

     

    ou seja quando o contador chegar a 80 ele reinicia e começa novamente com 1

     

    Tb nao entendi porque você separou em 03 arquivos, pode usar tudo em um unico.

     

    Segue o arquivo com a macro, faça os devidos ajustes afinal e você quem vai definir qtas linhas tera por pagina, e teste para ver se funciona como deseja.

    Macro.rar

     

     

    Oi,

     

    A quantidade de produtos por página é variável... não consigo deixar ela fixa assim.

  3. 5 minutos atrás, CasaDoHardware disse:

    Completa amigo com o codigo e funcionando eu nao sou adivinho não sei onde esta o codigo e nem sei o que ele faz ate rodar 

     

    Indique na planilha onde você quer a numeração, mesmo que manualmente

     

    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

  4. 10 minutos atrás, CasaDoHardware disse:

    Limita o contador ao numero de linhas da pagina, ou seja quando o contador atingir o numero maximo ele reinicia....

     

    Se nao conseguir disponibilize o arquivo

     

    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
    

     

  5. 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...

 

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!