Planilha do Excel - Distribuindo linhas da Planilha mestre e excluindo duplicatas

0

Eu tenho uma planilha mestre que tenho a linha distribuindo para diferentes planilhas com etiquetas específicas.

Euqueroquecadalinhasejadistribuídanaguiaapropriada(domestre),dependendodasinformaçõesdacolunaB.

Euestavausandoocódigoparadistribuirascolunas,masnãotinhacomoexcluir/atualizarascolunasdomestre,seelasfossemalteradas.Emseguida,adicioneiumID#queseriaexclusivoparacadatarefa.

EutenteialterarocódigoparalerdacolunaB,masacabeicomnovasfolhasnumeradasde1-31.OcódigofuncionouantesdeeuadicionarnacolunaID#eteralinha:Setrng=ActiveSheet.Range(ActiveSheet.Range("B3"), _ read A3 .

Meu código:

Sub ProcessRows()

Dim rng As Range, cell As Range
Set rng = ActiveSheet.Range(ActiveSheet.Range("B3"), _
                 ActiveSheet.Cells(Rows.Count, 1).End(xlUp))

For Each cell In rng.Cells
    cell.EntireRow.Copy CopyTo(cell)
Next cell
End Sub

'Return a range object to which a row should be copied
'  Range returned is determined by the value in "rng"
Function CopyTo(rng As Range) As Range

Dim s As Excel.Worksheet, sName As String

sName = Trim(rng.Value) 'just in case...

On Error Resume Next               'ignore any error
Set s = ThisWorkbook.Sheets(sName) 'see if we can grab the sheet
On Error GoTo 0                    'stop ignoring errors

If s Is Nothing Then    'sheet didn't exist: create it
    Set s = ThisWorkbook.Sheets.Add( _
      after:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count))
    s.Name = sName
    rng.Parent.Rows(1).Copy s.Range("a1") 'copy headers
End If                  'needed a new sheet
'return the first empty cell in column 1
Set CopyTo = s.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0)
End Function

O problema que estou tendo é que, sem um identificador único, não sei como obter a macro para decifrar se uma linha mudou e atualizá-la e acabo com duplicatas. Adicionamos a esta pasta de trabalho todo o ano, portanto, ter a atualização de macro das planilhas individuais é uma grande economia de tempo.

Para resumir, preciso de uma macro que:

  1. Distribua cada linha da planilha mestre para cada planilha adequadamente rotulada.
  2. Preciso de cada número de ID exclusivo para atualizar essa linha se algo mudou.
  3. Também preciso ter certeza de que não existem duplicatas nas planilhas.

Se houver uma maneira de executar a macro automaticamente ao fechar o documento, isso seria um bônus, mas a execução manual da macro é algo com o qual posso conviver.

Duplicar linhas e informações não atualizadas

    
por Michelle 06.04.2016 / 23:08

1 resposta

0

Modifique este código

Set rng = ActiveSheet.Range(ActiveSheet.Range("B3"), _
             ActiveSheet.Cells(Rows.Count, 1).End(xlUp)) 

porque está lendo a primeira coluna, para isso:

Set rng = ActiveSheet.Range(ActiveSheet.Range("B3"), _
             ActiveSheet.Cells(Rows.Count, 2).End(xlUp))
    
por 06.04.2016 / 23:40