Notifications
Clear all

Fixar linha e variar as colunas

7 Posts
2 Usuários
0 Reactions
1,384 Visualizações
(@jokerpot)
Posts: 132
Estimable Member
Topic starter
 

Pessoal boa tarde!

Gostaria da ajuda de vcs.
Em anexo segue um exemplo simples do que eu necessito.

 
Postado : 04/06/2015 10:38 am
pfarias
(@pfarias)
Posts: 265
Reputable Member
 

Não entendi.

Como você precisa que estas datas esteja lá?
Toda vez que você adicionar uma data na aba Suporte, você atualize a aba SUPORTE_FORMATADO e essa data seja adicionada?

Pietro Farias

Se foi resolvido suas dúvidas, lembre se de marcar o tópico como RESOLVIDO.

ANALISTA X

 
Postado : 04/06/2015 11:15 am
(@jokerpot)
Posts: 132
Estimable Member
Topic starter
 

Boa tarde.
Vou pegar a primeira data e jogar na suporte formatado. A partir daí fazendo um FOR , sempre que a data for = a data do formatado e o item também for igual, vou jogar os valores, quando a data for diferente, vou jogar a nova data na coluna D.
Já estou montando macro, só não sei como fixar a linha, só sei fixar as colunas.

 
Postado : 04/06/2015 12:13 pm
pfarias
(@pfarias)
Posts: 265
Reputable Member
 

Pera aew! estais falando em congelar as linhas e colunas feito no exemplo em anexo?

Pietro Farias

Se foi resolvido suas dúvidas, lembre se de marcar o tópico como RESOLVIDO.

ANALISTA X

 
Postado : 05/06/2015 11:01 am
(@jokerpot)
Posts: 132
Estimable Member
Topic starter
 

Pera aew! estais falando em congelar as linhas e colunas feito no exemplo em anexo?

Boa Tarde!

Montei a macro, porem agora estou no dilema de variar a coluna quando ela termina de montar os dados da primeira data!!

Segue codigo:

Sub SUPORTE_FORMATADO()

n_LASTROW_SUP = Sheets("SUPORTE").Range("A1048576").End(xlUp).Row
n_LASTROW_SUP2 = Sheets("SUPORTE_FORMATADO").Range("C1048576").End(xlUp).Row
n_LASTROW_SUP3 = Sheets("SUPORTE_FORMATADO").Range("B1048576").End(xlUp).Row

    
n_LASTROW_SUP2 = 1
Sheets("SUPORTE_FORMATADO").Activate
x_RANGE = "C1:AZ10000" & n_LASTROW_SUP2
Range(x_RANGE).Select
Selection.Delete Shift:=xlUp

DATA_ATUAL = Sheets("SUPORTE").Cells(2, 1).Value
Sheets("SUPORTE_FORMATADO").Cells(1, 3).Value = DATA_ATUAL


n_SUP1 = 2
n_SUPFOR = 2

For n_SUPFOR = n_SUPFOR To n_LASTROW_SUP3
x_ITEM_FOR = Sheets("SUPORTE_FORMATADO").Cells(n_SUPFOR, 2).Value

    For n_SUP1 = n_SUP1 To n_LASTROW_SUP
    DATA_MOVTO_ATUAL = Sheets("SUPORTE").Cells(n_SUP1, 1).Value
    x_ITEM_SUP = Sheets("SUPORTE").Cells(n_SUP1, 4).Value
    x_VALOR = Sheets("SUPORTE").Cells(n_SUP1, 5).Value
    
        If DATA_MOVTO_ATUAL = DATA_ATUAL And _
            x_ITEM_SUP = x_ITEM_FOR Then
            [u][i][b]Sheets("SUPORTE_FORMATADO").Cells(n_SUPFOR, 3).Value = x_VALOR[/b][/i][/u]              
            Exit For
            End If

    
    Next
            If n_SUPFOR = 61 And _
                x_VALOR <> 0 Then
                n_SUPFOR = 1
                DATA_ATUAL = DATA_ATUAL + 1
                Sheets("SUPORTE_FORMATADO").Cells(n_SUPFOR, 4).Value = DATA_ATUAL
                
            End If
        
Next

End Sub

Justamente nesse ponto do codigo :Sheets("SUPORTE_FORMATADO").Cells(n_SUPFOR, 3).Value = x_VALOR no primeiro momento esta na coluna 3 (C), apos terminar de montar todos os valores da primeira data, eu quero que na proxima data os valores vao para a coluna 4 (D), e assim por diante.

Já tenho a variavel de linhas, agora nao sei como fazer com as colunas.

A planilha original esta em anexo.

 
Postado : 05/06/2015 11:42 am
(@jokerpot)
Posts: 132
Estimable Member
Topic starter
 

Olá pessoal, boa madrugada.

Vejam só como as ideias surgem do nada e em um estalo na mente.
Agora são 01:44 d manhã e pensei comigo. "Será que se eu fizer dentro do CELLS uma variável de coluna, e no final eu sempre adiciono + 1, dará certo"???
E não é que deu certo mesmo :shock: :lol: :lol:
Fiquei tão empolgado e orgulhoso de mim mesmo, muito novato de VBA que resolvi escrever agora mesmo.

Amanhã posto o código pra todos.

Abraços e bora dormir.

 
Postado : 05/06/2015 10:51 pm
(@jokerpot)
Posts: 132
Estimable Member
Topic starter
 

Boa Tarde!

Segue o codigo final pra quem quiser:

Sub SUPORTE_FORMATADO()

n_LASTROW_SUP = Sheets("SUPORTE").Range("A1048576").End(xlUp).Row
n_LASTROW_SUP2 = Sheets("SUPORTE_FORMATADO").Range("C1048576").End(xlUp).Row
n_LASTROW_SUP3 = Sheets("SUPORTE_FORMATADO").Range("B1048576").End(xlUp).Row

    
n_LASTROW_SUP2 = 1
Sheets("SUPORTE_FORMATADO").Activate
x_RANGE = "C1:AZ10000" & n_LASTROW_SUP2
Range(x_RANGE).Select
Selection.Delete Shift:=xlUp

DATA_ATUAL = Sheets("SUPORTE").Cells(2, 1).Value
Sheets("SUPORTE_FORMATADO").Cells(1, 3).Value = DATA_ATUAL


n_SUP1 = 2
n_SUPFOR = 2
n_COL = 3

For n_SUPFOR = n_SUPFOR To n_LASTROW_SUP3
x_ITEM_FOR = Sheets("SUPORTE_FORMATADO").Cells(n_SUPFOR, 2).Value

    For n_SUP1 = n_SUP1 To n_LASTROW_SUP
    DATA_MOVTO_ATUAL = Sheets("SUPORTE").Cells(n_SUP1, 1).Value
    x_ITEM_SUP = Sheets("SUPORTE").Cells(n_SUP1, 4).Value
    x_VALOR = Sheets("SUPORTE").Cells(n_SUP1, 5).Value
    
        If DATA_MOVTO_ATUAL = DATA_ATUAL And _
            x_ITEM_SUP = x_ITEM_FOR Then
            Sheets("SUPORTE_FORMATADO").Cells(n_SUPFOR, n_COL).Value = x_VALOR
    Exit For
        End If
    Next
            If n_SUPFOR = 61 And _
                x_VALOR <> 0 Then
                n_SUPFOR = 1
                n_COL = n_COL + 1
                DATA_ATUAL = DATA_ATUAL + 1
                Sheets("SUPORTE_FORMATADO").Cells(n_SUPFOR, n_COL).Value = DATA_ATUAL
            End If
                
                If n_SUP1 = n_LASTROW_SUP Then
                Sheets("SUPORTE_FORMATADO").Cells(n_SUPFOR, n_COL).Value = ""
                Exit For
                End If
Next

End Sub

Inseri a variavel n_COL valendo 3 e no final ele vai somando + 1, com isso as colunas nao ficam fixas.

Abraços

 
Postado : 07/06/2015 11:31 am