Ir para conteúdo
Fórum Script Brasil
  • 0

Criando um Loop


mazocco

Pergunta

Olá, criei a macro abaixo, mas o problema é que tenho que fazer até a ordenação até a linha "Z11:Z16" como posso fazer para criar um loop?

Sub Macro2()
'
' Macro2 Macro
'
' Keyboard Shortcut: Ctrl+w
'
for
    Range("C11:C16").Select
    ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Add Key:=Range("C11"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet2").Sort
        .SetRange Range("C11:C16")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("D11:D16").Select
    ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Add Key:=Range("D11"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet2").Sort
        .SetRange Range("D11:D16")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("E11:E16").Select
    ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Add Key:=Range("E11"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet2").Sort
        .SetRange Range("E11:E16")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
    Range("F11:F16").Select
    ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Clear
    ActiveWorkbook.Worksheets("Sheet2").Sort.SortFields.Add Key:=Range("F11"), _
        SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
    With ActiveWorkbook.Worksheets("Sheet2").Sort
        .SetRange Range("F11:F16")
        .Header = xlGuess
        .MatchCase = False
        .Orientation = xlTopToBottom
        .SortMethod = xlPinYin
        .Apply
    End With
End Sub

Obrigado,

Mazocco

Editado por kuroi
Adicionar tag CODE
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Olá mazocco,

Aparentemente a sua macro é muito confusa - deduzi que quer fazer o sort das 4 colunas...

Explique-se um pouco mais sobre o que pretende

Olá 'Durutti_Black'...

Está confusa mesmo, é que utilizei o gravador de macro, por isso, está confusa...

O objetivo é ordenar cada coluna individualmente.

Ex.:

Possuo os seguintes dados:

3 6 4

1 4 2

2 5 6

6 3 1

4 1 5

5 2 3

Quero que o resultado seja:

1 1 1

2 2 2

3 3 3

4 4 4

5 5 5

6 6 6

Tem que ordenar cada coluna, iniciando da celula (A1:A6) e até (Z1:Z6)

Entendeu?

Muito obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

Olá mazocco

Eu, Zav60, e Durutti_Black, somos apenas uma pessoa...

A sua Macro2 passa a isto:

Sub Macro2()
' Keyboard Shortcut: Ctrl+w
Dim mLinha
Dim Col
'Activa a worksheet2
Worksheets("Sheet2").Activate
'Para as colunas A a Z
'em que a A = 1 e a Z = 26
    For Col = 1 To 26
'E para as linhas a trabalhar que começam na 11
'e vão até à 16
        Set mLinha = Range(Cells(11, Col), Cells(16, Col))
'se quiser até à última linha utilizada use antes esta:
'    Set mLinha = Range(Cells(11, Col), _
'      Cells(Cells(Rows.Count, Col).End(xlUp).Row, Col))
'Faz a ordenação tendo como linha inicial a 11
            mLinha.Sort Key1:=Cells(11, Col)
    Next Col
End Sub

Experimente e diga se funciona...

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...