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

Numeração de linhas


Diogo Antonio

Pergunta

Boa noite

Gostaria da ajuda dos senhores para resolver o seguinte problema.

Estou montando uma planilha de orçamento de obra que tem a seguinte estrutura (exemplo):

- SERVIÇOS PRELIMINARES

    Compra do terreno

    Locação da obra

- FUNDAÇÃO

    Escavação manual

    Armadura 5mm

 

E assim por diante. O problema da numeração é que em uma "etapa" (ex: SERVIÇOS PRELIMINARES) o código seria "1" e os itens abaixo seria 1.1, 1.2......., seguindo este critério a etapa fundação seria "2" e os itens abaixo 2.1, 2.2........

Alguma idéia de como fazer esse código? Para diferenciar uma linha que está descrito a ETAPA de uma com SERVIÇO tenho uma coluna de verificação onde tenho "ET" se essa linha separador de etapa e "SE" para os serviços.

Desde já agradeço a atenção e aguardo ansiosamente para a solução deste problema.

 

Abraços

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Bom não sei se o código que eu fiz vai de encontro com o que estava planejando...

Fiz uma tabela para conter os campos que vão criar os formulário assim você marca com x o que vai precisar:

image.thumb.png.dddbb3757556002b01e6f77133c4fd9f.png

No formulário criei uma forma apenas para trazer as informações da tabela de opções.

image.png.e133963ae9ec5a087669d59545d7d1d0.png

Não fiz a formatação completamente por não saber se é dessa maneira que esta imaginando porém o código esta aberto para fazer as suas personalizações. E essa tabela pode ser substituída por uma formulário que vai preenchendo as informações e aparecendo as linhas no formulário.

Código:

Sub cFormCreateOptions()
Dim tCategory As String, idCategory As Long, tCategoryNew As String
Dim tSubCategory As String, idSubCategory As Long, tSubCategoryNew As String
Dim idOptions As Long
Dim rowSheetForm As Long, uRowSheetForm As Long
Dim rowSheetOptions As Long, uRowSheetOptions As Long
Dim shOpt As Worksheet

Set shOpt = Sheets("Opções")

With Sheets("Formulário")
    .Select
    uRowSheetForm = .Cells(Rows.Count, "G").End(xlUp).Row
    'uRowSheetForm = .Cells(Rows.Count, "A").End(xlUp).Row
    
    If uRowSheetForm > 5 Then
        Rows("6:" & uRowSheetForm).Delete shift:=xlUp
    End If


    rowSheetForm = 6

    uRowSheetOptions = shOpt.Cells(Rows.Count, "E").End(xlUp).Row
    For rowSheetOptions = 2 To uRowSheetOptions
        If shOpt.Cells(rowSheetOptions, "E").Value <> "" Then
        
            tCategoryNew = shOpt.Cells(rowSheetOptions, "A").Value
            If tCategory <> tCategoryNew Then
                tCategory = tCategoryNew
                idCategory = idCategory + 1
                idSubCategory = 0
                idOptions = 0
                
                .Cells(rowSheetForm, "A").Value = idCategory
                .Cells(rowSheetForm, "B").Value = tCategory
    
                
                .Range("A" & rowSheetForm & ":K" & rowSheetForm).Select
                With Selection.Interior
                    .Pattern = xlSolid
                    .PatternColorIndex = xlAutomatic
                    .ThemeColor = xlThemeColorLight1
                    .TintAndShade = 0.499984740745262
                    .PatternTintAndShade = 0
                End With
                
                rowSheetForm = rowSheetForm + 1
                
            End If
            
            tSubCategoryNew = shOpt.Cells(rowSheetOptions, "B").Value
            If tSubCategoryNew <> tSubCategory Then
                tSubCategory = tSubCategoryNew
                idSubCategory = idSubCategory + 1
                idOptions = 0
                
                If tSubCategory <> "" Then
                    .Cells(rowSheetForm, "A").Value = idCategory & "." & idSubCategory
                    .Cells(rowSheetForm, "B").Value = tSubCategory
                    
                    .Range("A" & rowSheetForm & ":K" & rowSheetForm).Select
                    With Selection.Interior
                        .Pattern = xlSolid
                        .PatternColorIndex = xlAutomatic
                        .ThemeColor = xlThemeColorDark1
                        .TintAndShade = -0.349986266670736
                        .PatternTintAndShade = 0
                    End With
                    
                    rowSheetForm = rowSheetForm + 1
                Else
                    idSubCategory = 0
                End If
            End If
            
            idOptions = idOptions + 1
            .Cells(rowSheetForm, "A").Value = IIf(idSubCategory > 0, _
                                                    idCategory & "." & idSubCategory & "." & idOptions, _
                                                    idCategory & "." & idOptions)
            .Cells(rowSheetForm, "B").Value = shOpt.Cells(rowSheetOptions, "C").Value
            .Cells(rowSheetForm, "C").Value = shOpt.Cells(rowSheetOptions, "D").Value
            
            rowSheetForm = rowSheetForm + 1
        End If
    Next rowSheetOptions

    
End With

Range("A1").Select
Range("G" & rowSheetForm).Value = "TOTAL"
Range("H" & rowSheetForm).FormulaR1C1 = "=SUM(R6C:R[-1]C)"
End Sub

 

Link planilha: PLANILHA ORÇAMENTARIA-PADRÃO

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,5k
×
×
  • Criar Novo...