Este fórum está sendo desativado

Depois de 9 anos, este fórum será desativado. Mas calma.... estamos migrando para uma comunidade no DISCORD. Junte-se a nós.

ENTRAR PARA DISCORD

Tópicos relacionados a códigos VBA, gravação de macros, etc.
#66777
Boa Tarde!

Tenho uma planilha que dependendo dos valores da célula W15 (Valor de 1 a 15), são ocultadas algumas linhas.

Gostaria de definir, também, a área de impressão com base no valor da Célula W15.

A lógica seria assim:
W15 = 1 [PageSetup.PrintArea = "$A$1:$AF$55"]
W15 = 2 [PageSetup.PrintArea = "$A$1:$AF$55" & "$A$56:$AF$110"]
W15 = 3 [PageSetup.PrintArea = "$A$1:$AF$55" & "$A$56:$AF$110" & "$A$111:$A$165"]
W15 = 4 [PageSetup.PrintArea = "$A$1:$AF$55" & "$A$56:$AF$110" & "$A$111:$A$165" & "$A$166:$AF$220"]

Ou seja, a medida que o valor de W15 aumenta 1 número é adicionada, a partir da linhas seguinte, nova pagina com 55 linhas.

A última área (15ª Página) adicionada, se W15 = 15, seria $A$771:$AF$824.
Código: Selecionar todos
Sub Dropdown1_Alteração()
'Número de Participantes

        If Range("W15") = 1 Then
            Range("A18:A20").EntireRow.Hidden = False
            Range("A21:A62").EntireRow.Hidden = True
                Worksheets("7-SOCIOS").Select
                    Range("A56:A824").EntireRow.Hidden = True
                    Range("A1:A55").EntireRow.Hidden = False
                   'ActiveSheet.PageSetup.PrintArea = "$A$1:$AF$55"
                Worksheets("ENTRADA").Select
        ElseIf Range("W15") = 2 Then
            Range("A18:A23").EntireRow.Hidden = False
            Range("A24:A62").EntireRow.Hidden = True
                Worksheets("7-SOCIOS").Select
                    Range("A111:A824").EntireRow.Hidden = True
                    Range("A1:A110").EntireRow.Hidden = False
                    PageSetup.PrintArea = "$A$1:$AF$55" & "$A$56:$AF$110"
                Worksheets("ENTRADA").Select
        ElseIf Range("W15") = 3 Then
            Range("A18:A26").EntireRow.Hidden = False
            Range("A27:A62").EntireRow.Hidden = True
                Worksheets("7-SOCIOS").Select
                    Range("A166:A824").EntireRow.Hidden = True
                    Range("A1:A165").EntireRow.Hidden = False
                Worksheets("ENTRADA").Select
        ElseIf Range("W15") = 4 Then
            Range("A18:A29").EntireRow.Hidden = False
            Range("A30:A62").EntireRow.Hidden = True
                Worksheets("7-SOCIOS").Select
                    Range("A221:A824").EntireRow.Hidden = True
                    Range("A1:A1220").EntireRow.Hidden = False
                Worksheets("ENTRADA").Select
        ElseIf Range("W15") = 5 Then
            Range("A18:A32").EntireRow.Hidden = False
            Range("A33:A62").EntireRow.Hidden = True
                Worksheets("7-SOCIOS").Select
                    Range("A276:A824").EntireRow.Hidden = True
                    Range("A1:A275").EntireRow.Hidden = False
                Worksheets("ENTRADA").Select
        ElseIf Range("W15") = 6 Then
            Range("A18:A35").EntireRow.Hidden = False
            Range("A36:A62").EntireRow.Hidden = True
                Worksheets("7-SOCIOS").Select
                    Range("A331:A824").EntireRow.Hidden = True
                    Range("A1:A330").EntireRow.Hidden = False
                Worksheets("ENTRADA").Select
        ElseIf Range("W15") = 7 Then
            Range("A18:A38").EntireRow.Hidden = False
            Range("A39:A62").EntireRow.Hidden = True
                Worksheets("7-SOCIOS").Select
                    Range("A386:A824").EntireRow.Hidden = True
                    Range("A1:A385").EntireRow.Hidden = False
                Worksheets("ENTRADA").Select
        ElseIf Range("W15") = 8 Then
            Range("A18:A41").EntireRow.Hidden = False
            Range("A42:A62").EntireRow.Hidden = True
                Worksheets("7-SOCIOS").Select
                    Range("A441:A824").EntireRow.Hidden = True
                    Range("A1:A440").EntireRow.Hidden = False
                Worksheets("ENTRADA").Select
        ElseIf Range("W15") = 9 Then
            Range("A18:A44").EntireRow.Hidden = False
            Range("A45:A62").EntireRow.Hidden = True
                Worksheets("7-SOCIOS").Select
                    Range("A496:A824").EntireRow.Hidden = True
                    Range("A1:A495").EntireRow.Hidden = False
                Worksheets("ENTRADA").Select
        ElseIf Range("W15") = 10 Then
            Range("A18:A47").EntireRow.Hidden = False
            Range("A48:A62").EntireRow.Hidden = True
                Worksheets("7-SOCIOS").Select
                    Range("A551:A824").EntireRow.Hidden = True
                    Range("A1:A550").EntireRow.Hidden = False
                Worksheets("ENTRADA").Select
        ElseIf Range("W15") = 11 Then
            Range("A18:A50").EntireRow.Hidden = False
            Range("A51:A62").EntireRow.Hidden = True
                Worksheets("7-SOCIOS").Select
                    Range("A606:A824").EntireRow.Hidden = True
                    Range("A1:A605").EntireRow.Hidden = False
                Worksheets("ENTRADA").Select
        ElseIf Range("W15") = 12 Then
            Range("A18:A53").EntireRow.Hidden = False
            Range("A54:A62").EntireRow.Hidden = True
                Worksheets("7-SOCIOS").Select
                    Range("A661:A824").EntireRow.Hidden = True
                    Range("A1:A660").EntireRow.Hidden = False
                Worksheets("ENTRADA").Select
        ElseIf Range("W15") = 13 Then
            Range("A18:A56").EntireRow.Hidden = False
            Range("A57:A62").EntireRow.Hidden = True
                Worksheets("7-SOCIOS").Select
                    Range("A716:A824").EntireRow.Hidden = True
                    Range("A1:A715").EntireRow.Hidden = False
                Worksheets("ENTRADA").Select
        ElseIf Range("W15") = 14 Then
            Range("A18:A59").EntireRow.Hidden = False
            Range("A60:A62").EntireRow.Hidden = True
                Worksheets("7-SOCIOS").Select
                    Range("A771:A824").EntireRow.Hidden = True
                    Range("A1:A770").EntireRow.Hidden = False
                Worksheets("ENTRADA").Select
        ElseIf Range("W15") = 15 Then
            Range("A18:A62").EntireRow.Hidden = False
                Worksheets("7-SOCIOS").Select
                Range("A1:A824").EntireRow.Hidden = False
                Worksheets("ENTRADA").Select
        End If

End Sub
Agradeço a quem puder me ajudar!
Editado pela última vez por eduardobatistaadm em 06 Set 2021 às 20:31, em um total de 1 vez.
#66779
Olá, @eduardobatistaadm .

Experimente:
Código: Selecionar todos
ActiveSheet.PageSetup.PrintArea = "$A$1:$AF$" & [W15] * 55
eduardobatistaadm agradeceu por isso
#66790
@osvaldomp Testei aqui...tava gerando 900 e poucas paginas (acho que precisaria especificar no código a worksheets que estou fazendo referencia), mas ao excluir todas as abas e deixar somente a que estou trabalhando rodou...
No entanto, gerou 16 páginas ao invés de 15. Vou anexar aqui para você dá uma olha no que pode ser (caso tenha disponibilidade).

Grato!
Você não está autorizado a ver ou baixar esse anexo.
#66791
[quote=eduardobatistaadm post_id=66790 time=1630893215 user_id=19352
(acho que precisaria especificar no código a worksheets que estou fazendo referencia), ...
Sim, se você faz uma referência a uma ou mais células e não coloca a referência à planilha, então o código entende que você está se referindo à planilha ativa.


No entanto, gerou 16 páginas ao invés de 15.
A expressão que passei retorna a área de impressão exatamente como você pediu. A quantidade de páginas resultantes será consequência da altura das linhas na área de impressão e do ajuste das margens. Verifique aí.
[/quote]
eduardobatistaadm agradeceu por isso
#66802
@osvaldomp deu certo!

Eu tinha colocado o "55" no final do intervalo, dessa forma (ActiveSheet.PageSetup.PrintArea = "$A$1:$AF$55" & [W15] * 55). Por isso, inicialmente estava dando 900 e poucas páginas.
Descobrir usando o Debug.Print onde havia errado.

Seu código estava completamente correto.

Muito obrigado!
osvaldomp agradeceu por isso
long long title how many chars? lets see 123 ok more? yes 60

We have created lots of YouTube videos just so you can achieve [...]

Another post test yes yes yes or no, maybe ni? :-/

The best flat phpBB theme around. Period. Fine craftmanship and [...]

Do you need a super MOD? Well here it is. chew on this

All you need is right here. Content tag, SEO, listing, Pizza and spaghetti [...]

Lasagna on me this time ok? I got plenty of cash

this should be fantastic. but what about links,images, bbcodes etc etc? [...]

Estamos migrando para uma comunidade no Discord