Notifications
Clear all

Manipular celulas de sheet oculta

6 Posts
4 Usuários
0 Reactions
1,781 Visualizações
(@gilbertjrs)
Posts: 77
Trusted Member
Topic starter
 

Bom dia.

Tenho uma macro que está apresentando o seguinte erro:
Existe uma planilha Sheet("Validações") e tem uma coluna que preciso colocar dados escolhidos através de um UserForm.
Na macro, primeiramente limpo o conteúdo pré-existente através do seguinte código:

   With ThisWorkbook.Sheets("Validações")
        .Select
        .Range("C" & firstLine & ":F300").Select
    End With
    
    With Selection
        .ClearContents
        .Interior.Pattern = xlNone
        .Interior.TintAndShade = 0
        .Interior.PatternTintAndShade = 0
    End With

Tudo funciona perfeitamente até que esta aba Sheet("Validações") seja ocultada, começa a dar erro no .select

Por gentileza como faço para solucionar este erro?

 
Postado : 09/03/2017 7:59 am
hronconi
(@hronconi)
Posts: 314
Reputable Member
 

Envie uma cópia da planilha para facilitar o suporte.

Henrique
http://henriqueronconi.wix.com/consultoria

Espero ter ajudado! ;)

 
Postado : 09/03/2017 8:05 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Use assim:

   
With ThisWorkbook.Sheets("Validações").Range("C" & firstLine & ":F300")
        .ClearContents
        .Interior.Pattern = xlNone
        .Interior.TintAndShade = 0
        .Interior.PatternTintAndShade = 0
End With

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 09/03/2017 9:37 am
(@gilbertjrs)
Posts: 77
Trusted Member
Topic starter
 

Boa tarde.

Eu não consegui eliminar o SELECT quando eu cola células que foram copiadas, portanto ainda está dando falha em planilhas ocultadas
Segue o código:

        With .Sheets("Departamentos")
            ultLin = .Cells(Rows.Count, "A").End(xlUp).Row
            .Range("A1" & ":D" & ultLin).Copy
        End With
        
        With .Sheets("Validações")
            Planilha = .Name
            .Select
            .Range("D1").Select
            .Paste
	End With

Como posso eliminar o SELECT deste trecho de código?

 
Postado : 24/03/2017 10:08 am
(@teleguiado)
Posts: 142
Estimable Member
 

Para rodar uma macro a planilha não pode estar oculta. Se tentar rodar a macro com a planilha oculta vai dar erro.

Obrigado.

Teleguiado.
E-mail: [email protected]

 
Postado : 27/03/2017 5:52 am
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Para rodar uma macro a planilha não pode estar oculta. Se tentar rodar a macro com a planilha oculta vai dar erro.

informação errada. Equivocada.

Tente assim:

        With .Worksheets("Departamentos")
            ultLin = .Cells(.Rows.Count, "A").End(xlUp).Row
            .Range("A1" & ":D" & ultLin).Copy
        End With
        
        .Worksheets("Validações").Range("D1").PasteSpecial Paste:=xlPasteAll

Ou assim, que eu prefiro:

Dim shtDeptos       As Excel.Worksheet
Dim shtValidacao    As Excel.Worksheet
    
    With ThisWorkbook
        Set shtDeptos = .Worksheets("Departamentos")
        Set shtValidacao = .Worksheets("Validações")
    End With
    
    With shtDeptos
        ultLin = .Cells(.Rows.Count, "A").End(xlUp).Row
        .Range("A1" & ":D" & ultLin).Copy shtValidacao.Range("D1")
    End With
    
    Set shtDeptos = Nothing
    Set shtValidacao = Nothing

Existem mil maneiras de preparar Neston. Invente a sua!
http://www.youtube.com/ExpressoExcel

 
Postado : 27/03/2017 6:58 am