Notifications
Clear all

Numerar coluna A conforme coluna B

6 Posts
3 Usuários
0 Reactions
1,535 Visualizações
(@neto1a)
Posts: 28
Eminent Member
Topic starter
 

Bom dia!
Andei pesquisando no forum e encontrei o seguinte tópico http://www.planilhando.com.br/forum/viewtopic.php?f=10&t=6219&p=32796&hilit=numerar#p32796, porém não consegui adapta-lo a minha necessidade.

Eu estou tentando fazer com que a coluna A numere as linhas que tenham algo escrito na coluna B. Porém haverá casos que não terá nada escrito na coluna B, então não deve numerar a A.
Tanto a coluna A quanto a B começam na linha 5.

Agradeço desde já.

 
Postado : 12/08/2014 5:46 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Veja se é isto:

Sub Numera_ColA_Relativo_ColB()
        'Declaramos as Variaveis
        Dim sNumeros
        Dim sLinsB
        Dim nLinsA
       
        'Iniciamos a Variavel com Numero 1
        sNumeros = 1
       
        'CONTAMOS OS ITENS NA COLUNA B PLAN1
        sLinsB = Sheets("plan1").Cells(Rows.Count, 2).End(xlUp).Row
       
        'Loop para preencher as Linhas Col A conforme Qde Coluna B
        'Inicia na Linha 5
        For nLinsA = 5 To sLinsB
            
            If Sheets("plan1").Range("B" & nLinsA) = "" Then
            
            Else
                Sheets("plan1").Range("A" & nLinsA) = sNumeros
                sNumeros = sNumeros + 1
            End If
        Next

    End Sub

[]s

 
Postado : 12/08/2014 6:11 am
(@neto1a)
Posts: 28
Eminent Member
Topic starter
 

Funcionou perfeitamente!!
Muito obrigado.

Só mais uma coisa, eu estou tentando fazer com que no final de tudo, ele seleciona todas as linhas preenchidas e organize-as, tipo quando seleciono as linhas e dou dois clicks.

O código está ficando assim,

Rows("5:5").Select
    Range(Selection, Selection.End(xlDown)).Select
    Rows("5:38").EntireRow.AutoFit

Como que posso dizer para ele que eu quero autofit até onde tem coisas preenchidas, seria a numeração a "coisa" preenchida.

 
Postado : 12/08/2014 11:04 am
(@gtsalikis)
Posts: 2373
Noble Member
 

Range(Selection, Selection.End(xlDown)).EntireRow.AutoFit

Ou

Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.AutoFit

PS: não testado.

 
Postado : 12/08/2014 11:15 am
(@neto1a)
Posts: 28
Eminent Member
Topic starter
 

Funcionou esse aqui.

Rows("5:5").Select
    Range(Selection, Selection.End(xlDown)).Select
Selection.EntireRow.AutoFit

Muito obrigado pela ajuda!!

 
Postado : 12/08/2014 11:23 am
(@fernandofernandes)
Posts: 43750
Illustrious Member
 

Se entendi, não há necessidade de usar o Select, não precisamos selecionar, usamos a chamada direta para a ação desde que referenciado corretamente os endereços, neste caso a primeira linha e a última.

Nesta instrução capturamos a Última Linha preeenchida e armazenamos na Variável sLinsB:
sLinsB = Sheets("plan1").Cells(Rows.Count, 2).End(xlUp).Row

Então após o Next em vez de colocar tudo isto:
Rows("5:5").Select
Range(Selection, Selection.End(xlDown)).Select
Rows("5:38").EntireRow.AutoFit

Troque POR:
Onde 5 é a linha inicial e "sLinsB" a Linha final
Rows("5" & ":" & sLinsB).EntireRow.AutoFit

[]s

 
Postado : 12/08/2014 11:27 am