Escolar Documentos
Profissional Documentos
Cultura Documentos
plan_base = "Plan1"
plan_dados = "Plan2"
plan_lay = "SARACURUNA L1"
erro_est = ""
'desprotege planilha base
Sheets(plan_base).Select
ActiveSheet.Unprotect Password:="danielmoraes"
'torna plan_lay ativa para iniciar cdigo
Sheets(plan_lay).Select
For i_inicio = 1 To 10
If Application.IsNumber(Cells(i_inicio, 1)) = True Then
inicio = Cells(i_inicio, 1)
End If
Next i_inicio
result = CInt(Application.InputBox("Para atualizar tudo, digite 1" & Chr(10)
& "Para atualizar executado, digite 2", "Atualizar", , , , , , 1))
Application.ScreenUpdating = False
Application.DisplayAlerts = False
'Cancela a operao caso clique cancelar
If result = 0 Then
Exit Sub
End If
If result = 1 Then
Call listar_problemas
Application.statusbar = "Montangem do layout... pode demorar alguns minu
tos... Aguarde!!"
Call montar_layout
End If
qtd_prob = Application.CountA(Sheets(plan_dados).Range("A:A"))
planejado = result
10:
If planejado = 1 Then
i_est_km = "D"
i_est_m = "E"
f_est_km = "F"
f_est_m = "G"
Else
i_est_km = "I"
i_est_m = "J"
f_est_km = "K"
f_est_m = "L"
End If
inicio = 0
aux_bloco = 0
inic = Application.Match(inicio, Sheets(plan_lay).Range("A:A"), 0)
linha_in = inic + 2
i0 = 7
Sheets(plan_lay).Select
Do While Sheets(plan_base).Range("C" & i0).Value <> ""
prob = LTrim(RTrim(CStr(Sheets(plan_base).Range("C" & i0).Value)))
If i1 = coluna_de Then
'adicionar comentrio na clula *****VER COM DANIEL*
****
End If
Next i1
'Bloco inicio
ElseIf bloco_de < bloco_ate And aux_bloco = 0 Then
aux_bloco = 1
For i1 = coluna_de To ultima_coluna
Cells(i, i1).Value = prob
Cells(i, i1).Select
Call formatar_celulas
If i1 = coluna_de Then
'adicionar comentrio na clula *****VER COM DANIEL*
****
End If
Next i1
'Bloco intermedirio
ElseIf i < bloco_ate And aux_bloco = 1 Then
For i1 = 2 To ultima_coluna
Cells(i, i1).Value = prob
Cells(i, i1).Select
Call formatar_celulas
Next i1
'Bloco fim
Else
For i1 = 2 To coluna_ate
Cells(i, i1).Value = prob
Cells(i, i1).Select
Call formatar_celulas
If i1 = coluna_ate Then
'adicionar comentrio na clula *****VER COM DANIEL*
****
End If
Next i1
End If
End If
Next i
End If
aux_bloco = 0
Application.statusbar = "Progresso: " & Format((i0 - 6) / (Application.CountA(Sh
eets(plan_base).Range("C:C")) - 1), "0.00%") & " Concludo"
'****************problema est aqui em algum lugar****************
'
If planejado = 2 And Sheets(plan_base).Range(i_est_km & i0) <> "" And Sheet
s(plan_base).Range(i_est_m & i0) <> "" Then
'
'
If Sheets(plan_base).Range(f_est_km & i0) <> "" And Sheets(plan_base).R
ange(f_est_m & i0) <> "" Then
'
'
Sheets(plan_base).Select
'
'
'
'
'
i0 = i0 + 1
Loop
If planejado = 1 Then
planejado = 2
GoTo 10
End If
'Trava planilha plan_base
Sheets(plan_base).Select
ActiveSheet.Protect Password:="danielmoraes", DrawingObjects:=True, Contents
:=True, Scenarios:=True _
, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowFiltering:=True, AllowUsingPivotTables:=
True
''Deleta a plan2 criada pra listar problemas
'Sheets(plan_dados).Select
'ActiveWindow.SelectedSheets.Delete
'Seleciona plan_lay para finalizar cdigo
Sheets(plan_lay).Select
Application.ScreenUpdating = True
'Application.DisplayAlerts = True
Application.statusbar = False
If erro_est <> "" Then
MsgBox (erro_est)
End If
End Sub
Function quad(inicio As Long, fim As Long) As Integer
quad = (fim - inicio) / 50
End Function
Private Sub listar_problemas()
'Lista os problemas, retira os duplicadas e coloca em ordem alfabtica para servir
de base a montagem do layout
'
'
On Error GoTo TratarErro
Sheets(plan_dados).Select
Range("A:A").Select
Selection.Delete
Sheets(plan_base).Select
Range("C7").Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets(plan_dados).Select
Columns("A:A").Select
Selection.Replace What:=" ", Replacement:="", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
Range("A1").Select
'Selection.ClearContents
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
ActiveSheet.Range("$A$1:$A$1048570").RemoveDuplicates Columns:=1, Header:= _
xlNo
ActiveWorkbook.Worksheets(plan_dados).Sort.SortFields.Clear
ActiveWorkbook.Worksheets(plan_dados).Sort.SortFields.Add Key:=Range("A1"),
_
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets(plan_dados).Sort
.SetRange Range("A1:A1048570")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Sheets(plan_lay).Select
Exit Sub
TratarErro:
If Err.Number = 9 Then
Sheets.Add After:=ActiveSheet
ActiveSheet.Name = "Plan2"
Resume
End If
End Sub
Private Sub montar_layout()
'monta o layout
Sheets(plan_lay).Select
5:
inic = Application.Match(inicio, Sheets(plan_lay).Range("A:A"), 0)
linha_in = inic + 2
i0 = 1
Do While Sheets(plan_dados).Range("A" & i0) <> ""
Sheets(plan_lay).Range(linha_in & ":" & linha_in).Select
With Selection.Interior
.Pattern = xlNone
.TintAndShade = 0
.PatternTintAndShade = 0
End With
If Application.IsNumber(Sheets(plan_lay).Range("B" & linha_in)) = False
Then
Selection.ClearContents
Sheets(plan_lay).Range("A" & linha_in) = Sheets(plan_dados).Range("A
" & i0)
Else
Sheets(plan_lay).Range(linha_in & ":" & linha_in).Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Sheets(plan_lay).Range("A" & linha_in) = Sheets(plan_dados).Range("A
" & i0)
Sheets(plan_lay).Range(linha_in - 1 & ":" & linha_in - 1).Select
Selection.Copy
Sheets(plan_lay).Range(linha_in & ":" & linha_in).Select
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Application.CutCopyMode = False
End If
linha_in = linha_in + 1
i0 = i0 + 1
Loop
Do While Sheets(plan_lay).Range("A" & linha_in + 1) <> "GEOMETRIA"
Sheets(plan_lay).Range(linha_in & ":" & linha_in).Select
Selection.Delete
Loop
If Sheets(plan_lay).Range("A" & linha_in + 3) <> "" Then
inicio = Sheets(plan_lay).Range("A" & linha_in + 3) '3 para pegar a prim
eira marcao das estacas na quebra de linha
GoTo 5
End If
End Sub
Private Sub formatar_celulas()
'Formata de acordo com a varivel planejado, se 1, vermelho. Se planejado igual a
2,branco
If planejado = 1 Then 'formata celulas planejadas da maneira que quiser
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
.TintAndShade = 0
.PatternTintAndShade = 0
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.WrapText = False
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
Selection.Font.Bold = True