VBA Copiar/colar "Tabela" para outra sheet com base na escolha do dia e printar.
Enviado: 19 Mai 2022 às 09:20
Boas, precisava da vossa ajuda perceber erro que não vi a estruturar o codigo.
O codigo funciona da seguinte forma, primeira sheet e para ser preenchido a segunda e para printar, a opcao e o dia de hoje ou amanha para serem cópiado.
Algo que quero introduzir no codigo que não tenho conseguido é fazer que seja detectado se algo foi filtrado para ser printado.
Por exemplo pode ser que o dia de amanha( ou hoje) não tenha data, sendo assim vai aparecer mensagem que nada vai ser printado porque não a nada deste dia.
Codigo que tenho trabalhado até o momento. Ajuda sugestões são bem vindas.
O codigo funciona da seguinte forma, primeira sheet e para ser preenchido a segunda e para printar, a opcao e o dia de hoje ou amanha para serem cópiado.
Algo que quero introduzir no codigo que não tenho conseguido é fazer que seja detectado se algo foi filtrado para ser printado.
Por exemplo pode ser que o dia de amanha( ou hoje) não tenha data, sendo assim vai aparecer mensagem que nada vai ser printado porque não a nada deste dia.
Codigo que tenho trabalhado até o momento. Ajuda sugestões são bem vindas.
Código: Selecionar todos
Private Sub TEST1()
Dim rng1 As Range, rng2 As Range, rngMERGE1 As Range, rngMERGE2 As Range, rngMERGE3 As Range
Dim ques As String, Text1 As String, Text2 As String, Text3 As String
Text1 = "HEADER1"
Text2 = "HEADER2 " & Format(Date + 1, "dd/MM")
Text3 = "HEADER3"
Set rngMERGE1 = REC_TEST.Range("B1:E1")
Set rngMERGE2 = REC_TEST.Range("B2:J2")
Set rngMERGE3 = REC_TEST.Range("K2:O2")
Set rng1 = REC123.Range("B4:O" & REC123.Range("B" & Rows.Count).End(xlUp).Row)
Set rng2 = REC_TEST.Range("B3:O" & REC_TEST.Range("B" & Rows.Count).End(xlUp).Row)
REC_TEST.Cells.Clear
With rngMERGE1
.Merge
.Value = Text1
.Font.Bold = True
.Font.Name = "Calibri"
.Font.Size = 15
.WrapText = True
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Interior.ColorIndex = 35
.BorderAround , LineStyle:=xlContinuous, Weight:=xlThick
End With
With rngMERGE2
.Merge
.Value = Text2
.Font.Bold = True
.Font.Name = "Calibri"
.Font.Size = 13
.WrapText = True
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Interior.ColorIndex = 40
.BorderAround , LineStyle:=xlContinuous, Weight:=xlThick
End With
With rngMERGE3
.Merge
.Value = Text3
.Font.Bold = True
.Font.Name = "Calibri"
.Font.Size = 13
.WrapText = True
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Interior.ColorIndex = 50
.BorderAround , LineStyle:=xlContinuous, Weight:=xlThick
End With
ques = InputBox("selec dia? (1 hj, or 2 amanha)", "test", "1")
If ques = "1" Then
rng1.AutoFilter 1, Criteria1:="TRUE", Operator:=xlFilterValues
rng1.AutoFilter 2, Criteria1:=xlFilterToday, Operator:=xlFilterDynamic
rng2.AutoFilter 6, Criteria1:="TRUE2", Operator:=xlFilterValues
rng1.SpecialCells(xlCellTypeVisible).Copy Destination:=rng2
ElseIf ques = "2" Then
rng1.AutoFilter 1, Criteria1:="TRUE", Operator:=xlFilterValues
rng1.AutoFilter 2, Criteria1:=xlFilterTomorrow, Operator:=xlFilterDynamic
rng2.AutoFilter 6, Criteria1:="TRUE2", Operator:=xlFilterValues
rng1.SpecialCells(xlCellTypeVisible).Copy Destination:=rng2
Else
MsgBox "não corresponde"
Exit Sub
End If
REC_TEST.UsedRange.EntireRow.EntireColumn.AutoFit
rng1.AutoFilter 2
rng2.AutoFilter 6
End Sub