none
Ajuda EXCEL RRS feed

  • Pergunta

  • Olá,

    Tenho uma planilha no excel onde é feito o ponto dos professores da escola onde trabalho.

    Nessa planilha tem o campo onde os professores devem assinar diariamente, outro campo com as  turmas e horarios da aulas deles e outras tantas informações.

    Parece que a planilha começou com um modelo que foi copiado várias vezes alterando só os dados do professor e a grade de aulas dele. Ou seja, a cada 57 linhas a planilha se repete. Essa é a definição da impressão também, tenho que imprimir todo mês com os dados atualizados, retirando os professores que não trabalham mais na escola e acrescentando os novos professores contratados.

    Me pediram pra organizar essa planilha por ordem de RG, mas acho que não é possivel fazer isso do jeito que a planilha está agora, pois hoje o rg do primeiro professor está na célula 2GHIJKL (as colunas estão mescladas), o rg do segundo professor está na célula 59GHIJKL e assim por diante... e na mesma linha tem o nome e outras informações do professor.

    Hoje a planilha tem 145 professores e não quero ter que fazer tudo de forma manual. Sei muito pouco de Excel, mas acho que se alguem me ajudar me dizendo o que posso fazer acabo me virando.

    O que eu posso pra atualizar essa planilha de forma mais simples? organizar por ordem de RG, mesmo quando saem alguns professores e entram outros??

    O modelo que recebi é esse http://www.4shared.com/office/Elr8u6lV/teste.html, não tenho nem ideia de como chegaram nesse arquivo nem como vou fazer o que me pediram. SOCORRO!

    Qualquer ajuda é bem vinda

    Agradeço a atenção

    Flávia

    terça-feira, 21 de maio de 2013 17:41

Respostas

  • Infelizmente, a planilha não está sistematicamente separada de 57 em 57 linhas. Há casos em que ela está separada por 56 linhas da outra. Com isso, uma forma simples de resolver o problema não existe, porque não existe padrão.

    A técnica que sugiro, com o código abaixo, é procurar um texto que aparece com certeza em cada uma das fichas da planilha e então buscar os valores relativos à cada ficha:

    Sub fnc()
        Const cstrMês As String = "SETEMBRO"
        Const cstrResumo As String = "Resumo"
        
        Dim lngResumo As Long
        Dim lngRow As Long
        Dim rng As Range
        Dim strFirst As String
        Dim wksMês As Worksheet
        Dim wksResumo As Worksheet
        
        With ThisWorkbook
            Set wksMês = .Worksheets(cstrMês)
            Application.DisplayAlerts = False
            On Error Resume Next
            .Worksheets(cstrResumo).Delete
            On Error GoTo 0
            Application.DisplayAlerts = True
            Set wksResumo = .Worksheets.Add
        End With
        wksResumo.Name = cstrResumo
        wksResumo.Range("A1:B1") = Array("Professor", "RG")
        wksResumo.Rows(1).Font.Bold = True
        lngResumo = 2
           
        Set rng = wksMês.Cells.Find("FOLHA DE FREQUÊNCIA")
        If Not rng Is Nothing Then
            strFirst = rng.Address
            Do
                lngRow = rng.Row
                'As linhas de código mais importantes da macro são as duas a seguir:
                wksResumo.Cells(lngResumo, "A") = wksMês.Cells(lngRow + 1, "A")
                wksResumo.Cells(lngResumo, "B") = wksMês.Cells(lngRow + 1, "G")
                '
                lngResumo = lngResumo + 1
                Set rng = wksMês.Cells.FindNext(rng)
            Loop While rng.Address <> strFirst
        End If
    End Sub


    Felipe Costa Gualberto - http://www.ambienteoffice.com.br

    terça-feira, 21 de maio de 2013 21:07
    Moderador