Amigos, boa tarde!
Fiz uma macro para imprimir alguns relatório com base no duplo clik que dou numa célula:
Como funciona:
Quando eu dou um duplo clik na coluna 4 que é o RE do meu funcionário, ele armazena as variáveis:
RE
Setor
Tipo (Vai ser mecanica ou eletrica)
Responsavel
Planilha (Nessa coluna tem o nome da planilha que é para imprimir)
Daí depois que eu dou o duplo cick e armazena esses dados ela abre um formulário para eu escolher a data inicial e a final que vai alimentar a capa que antecederá a planilha de inspeção que deverá ser impressa com base na variável Planilha.
Em resumo.
A macro funciona perfeitamente. Só que eu tenho 40 funcionários e eu tenho que dar duplo clique em todos para executar!
Queria que essa macro abaixo ao invés de ser no duplo click executasse para cada linha da coluna 4 partindo da linha 5.
Executar a mesma macro, exatamente assim, só que em loop para todas as linha da coluna 4 partindo da linha 5 (E claro, identificando a última linha preenchida da coluna 4) para não ter perigo de executar as linhas em branco.
Não consigo enviar-lhes o arquivo, pois são muitas inspeções. Se puderem me ajudar visualizando a macro abaixo. Agradeço-lhes muito!
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 4 Then
Dim Nome_Celula As String
Nome_Celula = ActiveCell.Value
Setor = ActiveCell.Offset(0, -1).Value
Tipo = ActiveCell.Offset(0, -2).Value
Responsavel = ActiveCell.Offset(0, 1).Value
Planilha = ActiveCell.Offset(0, 5).Value
Form_Data.Show
Sheets("Capa").Select
Sheets("Capa").Range("A33") = Setor
Sheets("Capa").Range("A35") = Tipo
Sheets("Capa").Range("C54") = Nome_Celula
Sheets("Capa").Range("A60") = Sheets("Lista").Range("P1")
Sheets("Capa").Range("E60") = Sheets("Lista").Range("P2")
' IMPRIMIR A CAPA
Sheets("Capa").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
' IMPRIMIR A INSPEÇÃO
If Planilha = "" Then
MsgBox "Inspeção Mantec" ' Caso não tenho o nome da planilha
Else
Sheets(Planilha).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
End If
' IMPRIMIR SEGURANÇA
Sheets(Tipo).Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
IgnorePrintAreas:=False
Else
MsgBox "CLIQUE NO RE PARA EXECUTAR A MACRO"
End If
Sheets("Lista").Select
End Sub
Postado : 26/10/2016 9:44 am