Printout 3 sheets com condiçoes VBA
Enviado: 29 Mar 2022 às 19:38
por ICEFROG
Boas, basicamente o codigo e o seguinte, vai verificar se alguma destas celulas ("A4", "B4", "C4", "D4", "E11", "F11", "J11", "H11") contem o numero 5, se alguma conter 5, vai imprimir. isto são 3 planilhas cada uma tem o botao para fazer print individual, So que tenho um botão para imprimir as 3 de uma vez, so que não esta a respeitar as condiçoes da IMPRIMIR_1(2)(3), que quando e individual funciona perfeitamente, no single botão vai imprimir todas sem respeitar condição.
Código: Selecionar todosPrivate Sub IMPRIMIR_1()
'D4 F4 H4 J4 D11 F11 H11 J11
Dim vArray, vEntry, bPrint As Boolean
vArray = Array("A4", "B4", "C4", "D4", "E11", "F11", "J11", "H11")
For Each vEntry In vArray
If Range(vEntry) = 5 Then
bPrint = True
Exit Sub
End If
Next vEntry
Application.ScreenUpdating = False
With Sheets("sheet1")
If bPrint Then
.Visible = True
.PrintOut Copies:=1, Collate:=True
.Visible = xlSheetVeryHidden
End If
End With
Application.ScreenUpdating = True
Código: Selecionar todosSub IMPRIMIR_OS_3()
Call IMPRIMIR_3
Call IMPRIMIR_2
Call IMPRIMIR_1
End Sub
Re: Printout 3 sheets com condiçoes VBA
Enviado: 29 Mar 2022 às 23:25
por osvaldomp
Experimente:
Código: Selecionar todosSub ImprimePlans()
Dim Sht As Worksheet, c As Range, k As Long
Application.ScreenUpdating = False
For Each Sht In Sheets(Array("Sheet1", "Sheet2", "Sheet3"))
For Each c In Sht.Range("D4,F4,H4,J4,D11,F11,H11,J11")
If c.Value = 5 Then k = 1: Exit For
Next c
If k = 1 Then
Sht.Visible = True
Sht.PrintOut Copies:=1, Collate:=True
Sht.Visible = xlSheetVeryHidden
k=0
End If
Next Sht
End Sub
Re: Printout 3 sheets com condiçoes VBA
Enviado: 30 Mar 2022 às 05:51
por ICEFROG
Tentei, mas nada aconteceu. isto e para ficar no imprimir os 3?, tentei no single tambem nada.
Re: Printout 3 sheets com condiçoes VBA
Enviado: 30 Mar 2022 às 07:01
por osvaldomp
O código irá verificar as planilhas Sheet1, Sheet2 e Sheet3, e se ao menos uma das células relacionadas no código for igual a 5 então a planilha será impressa.
Antes de rodar o código, ajuste nele os nomes das planilhas e os endereços das células relacionadas.
Editei o código e acrescentei "k=o". Faça os testes e se não conseguir o resultado então disponibilize uma amostra do seu arquivo Excel com o código instalado.
Re: Printout 3 sheets com condiçoes VBA
Enviado: 31 Mar 2022 às 21:15
por ICEFROG
Boas desculpa a demora apenas hoje tive acesso ao PC, tive de fazer um ficheiro novo, bem parecido como o meu original

.
Acho que eu fiz confusão na explicaçao porque meu ficheiro tem 3 corpos para ser preenchido, cada corpo representa uma impressão diferente acho que agora da para ter uma melhor ideia.
Re: Printout 3 sheets com condiçoes VBA
Enviado: 01 Abr 2022 às 08:46
por osvaldomp
"Ao pressionar o botão que vai imprimir "impressão 1 2 e 3" devem respectividade respeitar, por exemplo
se sheet1 estiver vazio "D4", "F4", "H4", "J4", "D11", "F11", "H11", "J11", vai imprimir sheet 2 e 3, sempre respeitando esta ordem e logica."
A história acima está diferente da anterior, pois na anterior era para verificar se ao menos uma das células era igual a 5 e agora é para verificar se todas estão vazias.

É isso que consigo entender das suas explicações. Utilize o código abaixo.
Considerei que as células relacionadas não contêm fórmulas, como está na planilha que você disponibilizou.
Código: Selecionar todosSub ImprimePlansV2()
Dim Sht As Worksheet
Application.ScreenUpdating = False
For Each Sht In Sheets(Array("Sheet1", "Sheet2", "Sheet3"))
If Application.CountA(Sht.Range("D4,F4,H4,J4,D11,F11,H11,J11")) <> 0 Then
Sht.Visible = True
Sht.PrintOut Copies:=1, Collate:=True
Sht.Visible = xlSheetVeryHidden
End If
Next Sht
End Sub
Re: Printout 3 sheets com condiçoes VBA
Enviado: 01 Abr 2022 às 09:31
por ICEFROG
De fato foi como escreve na primeira não era como era suposto. por que esqueci de mencionar os 3 corpos e 3 impressões, basicamente cada rosto e o "espelho da impressão" de cada corpo, ou seha para ser impresso, e precisa verficar individualmente se D4,F4,H4,J4,D11,F11,H11,J11" contem o numero no exemplo e 5, se tiver vazio não faz nada, vai tentar no proximo assim sucessvamente. como foi dito o codigo esta funcionar perfeitamente se for criado um sub para cada um individual. so quero fazer um macro que vai unir basicamente os sub para que seja impressão com um unico botão respeitando que se D4,F4,H4,J4,D11,F11,H11,J11" está vazio não faz nada, tiver 5 vai imprimir, apenas as que respeitaram a regra.