olá será que não teria como apenas acrescentar essa alteração nos codigos. por exemplo da rotina só colar quando a linha da coluna B tiver vazia em perdas e roubos para o codigo de Sub Relatoriodederoubos() e a linha da coluna I em branco quando for o codigo Sub Relatoriodededefeitos()
porque o resto ja ta tudo pronto so ta faltando isso...
link drive https://drive.google.com/open?id=1anTG7 ... Bf87exUD1A
Sub Relatoriodederoubos()
'=========================================================================================
'Código VBA desenvolvido por Wagner Morel, em 15/07/2017, para kayomaster, integrante do _
do fórum planilhando, para Gerar relatório de Pedido dos Mercadinhos
'=========================================================================================
'Declaração de variáveis
Dim i As Long
Dim j As Long
Dim UltimaLinha As Long
Dim Linha As Long
'Desabilita atualizações de tela
Application.ScreenUpdating = False
'Atribui a linha 3 como sendo a primeira da aba Pedidos
Linha = 4
'Limpa a aba Pedidos
'Pega a última linha com dados da aba Pedidos pela coluna A
UltimaLinha = Sheets("PERDAS & ROUBOS").Cells(Cells.Rows.Count, 1).End(xlUp).Row
'Certifica-se que os dados comecem na linha 2
If UltimaLinha < 8 Then UltimaLinha = 8
'Seleciona a aba Pedidos
Sheets("PERDAS & ROUBOS").Select
'Seleciona a célula A1
Range("A1").Select
'Volta para a aba Geral
Sheets("GE").Select
'Laço para percorrer todas as abas
For j = 1 To Sheets.Count
'Verifica o nome das abas e exclui as que não interessam
If Sheets(j).Name <> "GE" And Sheets(j).Name <> "Planilha" And Sheets(j).Name <> "Imprimir" And Sheets(j).Name <> "CB" And Sheets(j).Name <> "pedidos" And Sheets(j).Name <> "C & C" And Sheets(j).Name <> "V & L" And Sheets(j).Name <> "EVOL." And Sheets(j).Name <> "V. IND" And Sheets(j).Name <> "EST" And Sheets(j).Name <> "recibo" And Sheets(j).Name <> "CAD." And Sheets(j).Name <> "VENDAS A PRAZO" And Sheets(j).Name <> "PERDAS & ROUBOS" And Sheets(j).Name <> "FOR." And Sheets(j).Name <> "PR E ESTQ" And Sheets(j).Name <> "HISTORICO" And Sheets(j).Name <> "FORNECEDORES" And Sheets(j).Name <> "121P" And Sheets(j).Name <> "122P" And Sheets(j).Name <> "123P" And Sheets(j).Name <> "124P" And Sheets(j).Name <> "125P" And Sheets(j).Name <> "ImprimirPRE" And Sheets(j).Name <> "reciboPRE" And Sheets(j).Name <> "EVOL2" And Sheets(j).Name <> "CB" Then
'Seleciona a aba que interessa
Sheets(j).Select
'Pega a última linha com dados da aba ativa pela coluna A
UltimaLinha = Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
'Certifica-se que os dados comecem na linha 4
If UltimaLinha < 8 Then UltimaLinha = 8
'Laço para percorrer todas as linhas da planilha ativa
For i = 9 To UltimaLinha
'Verifica se a coluna D contém alguma coisa
If Range("N" & i).Value <> "" Then
'Copia os dados para a aba Pedidos
Sheets("PERDAS & ROUBOS").Range("A" & Linha).Value = ActiveSheet.Name
Sheets("PERDAS & ROUBOS").Range("C" & Linha).Value = ActiveSheet.Range("M" & i).Value
Sheets("PERDAS & ROUBOS").Range("D" & Linha).Value = ActiveSheet.Range("N" & i).Value
Sheets("PERDAS & ROUBOS").Range("E" & Linha).Value = ActiveSheet.Range("O" & i).Value
Sheets("PERDAS & ROUBOS").Range("B" & Linha).Value = ActiveSheet.Range("J4").Value
'Incrementa a linha da aba Pedidos
Linha = Linha + 1
End If
Next
End If
Next
'Exibe mensagem de sucesso
MsgBox "GERADO RELATÓRIO DE FALTAS (ROUBOS)!", vbDefaultButton1, "PRODUTOS FALTANDO"
'Volta para a aba Geral
Sheets("PERDAS & ROUBOS").Select
'Volta a habilitar as atualizações de tela
Application.ScreenUpdating = True
End Sub
Sub Relatoriodededefeitos()
'=========================================================================================
'Código VBA desenvolvido por Wagner Morel, em 15/07/2017, para kayomaster, integrante do _
do fórum planilhando, para Gerar relatório de Pedido dos Mercadinhos
'=========================================================================================
'Declaração de variáveis
Dim i As Long
Dim j As Long
Dim UltimaLinha As Long
Dim Linha As Long
'Desabilita atualizações de tela
Application.ScreenUpdating = False
'Atribui a linha 3 como sendo a primeira da aba Pedidos
Linha = 4
'Limpa a aba Pedidos
'Pega a última linha com dados da aba Pedidos pela coluna A
UltimaLinha = Sheets("PERDAS & ROUBOS").Cells(Cells.Rows.Count, 1).End(xlUp).Row
'Certifica-se que os dados comecem na linha 2
If UltimaLinha < 8 Then UltimaLinha = 8
'Seleciona a aba Pedidos
Sheets("PERDAS & ROUBOS").Select
'Seleciona a célula A1
Range("A1").Select
'Volta para a aba Geral
Sheets("GE").Select
'Laço para percorrer todas as abas
For j = 1 To Sheets.Count
'Verifica o nome das abas e exclui as que não interessam
If Sheets(j).Name <> "GE" And Sheets(j).Name <> "Planilha" And Sheets(j).Name <> "Imprimir" And Sheets(j).Name <> "CB" And Sheets(j).Name <> "pedidos" And Sheets(j).Name <> "C & C" And Sheets(j).Name <> "V & L" And Sheets(j).Name <> "EVOL." And Sheets(j).Name <> "V. IND" And Sheets(j).Name <> "EST" And Sheets(j).Name <> "recibo" And Sheets(j).Name <> "CAD." And Sheets(j).Name <> "VENDAS A PRAZO" And Sheets(j).Name <> "PERDAS & ROUBOS" And Sheets(j).Name <> "FOR." And Sheets(j).Name <> "PR E ESTQ" And Sheets(j).Name <> "HISTORICO" And Sheets(j).Name <> "FORNECEDORES" And Sheets(j).Name <> "121P" And Sheets(j).Name <> "122P" And Sheets(j).Name <> "123P" And Sheets(j).Name <> "124P" And Sheets(j).Name <> "125P" And Sheets(j).Name <> "ImprimirPRE" And Sheets(j).Name <> "reciboPRE" And Sheets(j).Name <> "EVOL2" And Sheets(j).Name <> "CB" Then
'Seleciona a aba que interessa
Sheets(j).Select
'Pega a última linha com dados da aba ativa pela coluna A
UltimaLinha = ActiveSheet.Cells(Cells.Rows.Count, 1).End(xlUp).Row
'Certifica-se que os dados comecem na linha 4
If UltimaLinha < 8 Then UltimaLinha = 8
'Laço para percorrer todas as linhas da planilha ativa
For i = 9 To UltimaLinha
'Verifica se a coluna D contém alguma coisa
If Range("R" & i).Value <> "" Then
'Copia os dados para a aba Pedidos
Sheets("PERDAS & ROUBOS").Range("F" & Linha).Value = ActiveSheet.Name
Sheets("PERDAS & ROUBOS").Range("H" & Linha).Value = ActiveSheet.Range("Q" & i).Value
Sheets("PERDAS & ROUBOS").Range("I" & Linha).Value = ActiveSheet.Range("R" & i).Value
Sheets("PERDAS & ROUBOS").Range("J" & Linha).Value = ActiveSheet.Range("S" & i).Value
Sheets("PERDAS & ROUBOS").Range("G" & Linha).Value = ActiveSheet.Range("J4").Value
'Incrementa a linha da aba Pedidos
Linha = Linha + 1
End If
Next
End If
Next
'Exibe mensagem de sucesso
MsgBox "GERADO RELATÓRIO DE DEFEITOS!", vbDefaultButton1, "DEFEITOS"
'Volta para a aba Geral
Sheets("PERDAS & ROUBOS").Select
'Volta a habilitar as atualizações de tela
Application.ScreenUpdating = True
End Sub
Sub fncCLEARPERDASEROUBOS()
Dim wks As Excel.Worksheet
For Each wks In Sheets
Select Case wks.Name
Case "MAT.", "100", "101", "102", "103", "104", "105", "106", "107", "108", "109", "110", "111", "112", "113", "114", "115", "116", "117", "118", "119", "120"
wks.Range("M9:020").ClearContents
wks.Range("Q8:S20").ClearContents
End Select
Next wks
End Sub
Postado : 28/05/2018 9:06 am