Notifications
Clear all

Tirar Seleção

5 Posts
2 Usuários
0 Reactions
1,283 Visualizações
(@paulo_001)
Posts: 149
Estimable Member
Topic starter
 

Olá;
Gostaria de saber se há um código que tire a seleção de um intervalo.
Fiz um macro que copia os dados e uma planilha pra outra, mas quando a macro termina fica a seleção do intervalo que os valores foram colados.

Eu já tentei : Application.CutCopyMode = False
no fim da macro e não deu certo,

Tentei também: Application.Selection = False

mas também foi em vão (Nesse caso deu problema pois os valores ficaram todos "FALSO" :? )

Alguém conhece um jeito?

 
Postado : 16/05/2013 3:53 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Paulo, não sei se entendi :

Application.CutCopyMode = False

Cancela somente a açãop de cópia mas não tira a seleção das celulas, se não quer que fique selecionado, tem de direcionar para outro intervalo no final, tipo Range("A1").Activate.

Se tivesse colocado a rotina completa daria para analisar melhor, pois dependendo de como está fazendo, se estiver utilizando por exemplo :
Desta maneira :
Range("B2:B10").Select
Selection.Copy

Não precisamos selecionar antes e depois copiar, podemos enviar diretamente para o intervalo que queremos, fazendo :

Range("B2:B10").Copy Destination:=Sheets("OutraAba").Range("E2")

É só um exemplo, pesquise no forum sobre Copy Destination e encontrara varias opções.

[]s

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

 
Postado : 16/05/2013 4:14 pm
(@paulo_001)
Posts: 149
Estimable Member
Topic starter
 

Muito obrigado pela dica Mauro

Só pra caso alguém tenha outra sugestão a minha rotina é essa:

Sub preencher()
    
   Application.ScreenUpdating = False
   
    Sheets("Filtro").Select
    Range("E2").Select
    ActiveCell.FormulaR1C1 = "Taxa"
   
   Call Módulo3.FiltroZ
   
     Range("D8:D61").Select
    ActiveWorkbook.Worksheets("Filtro").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Filtro").Sort.SortFields.Add Key:=Range("D8"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    
    With ActiveWorkbook.Worksheets("Filtro").Sort
        .SetRange Range("A8:N61")
        .Header = xlNo
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    
    Range("A8:A71").Select
    Selection.Copy
    Sheets("Recebim.").Select
    Range("C4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    Sheets("Filtro").Select
       Range("D8:D71").Select
        Selection.Copy
    Sheets("Recebim.").Select
    Range("D4").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    Sheets("Filtro").Select
        Range("G8:G71").Select
        Selection.Copy
    Sheets("Recebim.").Select
    Range("E4").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    
    Sheets("Filtro").Select
    Range("A8:N500").ClearContents
    Sheets("Recebim.").Select
    
   
    Application.ScreenUpdating = True
    
End Sub
 
Postado : 16/05/2013 4:30 pm
Fernando Fernandes
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Paulo, com a rotina postada podemos ainda fazer das seguintes formas :

Nestas linhas :
Range("A8:A71").Select
Selection.Copy
Sheets("Recebim.").Select
Range("C4").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Poderiamos trocar simplesmente por :
Range("A8:A71").Copy Destination:=Sheets("Recebim.").Range("C4")

Se reparou no que comentei anteriormente, não precisamos utilizar a instrução Select, podemos fazer a operação diretamente.

Uma outra opção já que está utilizando PasteSpecial e o CopyDestination não aceita estes argumentos seria trocar as mesmas linhas por :
Range("A8:A71").Rows.Copy
Sheets("Recebim.").PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Enquanto aguardamos novas sugestões, é só fazer os ajustes, qq duvida retorne.

[]s

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

 
Postado : 16/05/2013 4:50 pm
(@paulo_001)
Posts: 149
Estimable Member
Topic starter
 

Range("A8:A71").Rows.Copy
Sheets("Recebim.").PasteSpecial _
Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False

Valeu Mauro, funcionou perfeitamente :D

Muito obrigado mesmo.

 
Postado : 16/05/2013 5:04 pm