Boa tarde a todos,
Estou a ter alguma dificuldades em continuar com o código e necessito da vossa ajuda.
Basicamente tenho um ficheiro em .xml em que se encontra a abrir como tabela e procuro buscar apenas 3 colunas que começam por estes campos:
NAME17 |
POINTS_COUNT |
Pt |
EOP |
342 |
X=2181.18 Y=673.492 Z=-864.605 |
Neste momento estou a passar estas colunas para uma nova folha: "Folha2" para a partir daí compilar o código, sendo a "Folha3" o formatado pretendido para gravar como ficheiro de texto com tabulações .txt.
Vou anexar o ficheiro original e o final, do que é realmente pretendido obter...
mas no campos "NAME17", existem nomes que se repetem em n linhas e o objetivo é montar as coordenadas x,y e z separadas por tabulação, começando e terminado neste formato (de preferência colocando as coordenadas com 4 casas decimais, de forma a ficarem bem tabeladas).
Neste ficheiro especifico existem estes nomes distintos em apenas algumas linhas ordenadas pelo nome, na coluna "NAME17" (mas podem ser outros nomes para outros ficheiros daí necessitar de uma macro geral)
EOP |
RAIADOR |
P000 |
P001 |
P002 |
M541A2081210 |
POTTING 1 |
POTTING 2 |
POTTING 3 |
POTTING 4 |
M541A1081203 |
M541A2081208 |
P003 |
P004 |
P005 |
O objetivo é colocar sempre a iniciar cada listagem de campos do "NAME17" com
"START " e nome do campo
"P" e número de coordenadas existente para o campo
após a ultima coordenada(linha do campo) coloca
"END" ( ou seja, entre o P 343 e o "END" teremos 343 linhas com as tais coordenadas x,y e z)
e de seguida, após colocar o END P 343, coloca novo ciclo, com o nome do 2campo da "NAME17" e torna a colocar "START" e nome do campo seguinte.. e repete...
"P" e número de coordenadas que existem para o campo "RAIADOR" e posteriormente todas as coordenadas...
e novamente "END RADIADOR" e novo ciclo com o "P000", etc..
START EOP |
|
|
P 343 |
|
|
|
2181.1800 673.4920 -864.6050 |
END EOP |
|
|
|
START RAIADOR |
|
|
P 354 |
|
|
|
2212.6300 660.3580 -886.8900 |
Abaixo o código já desenvolvido, no qual estou tendo dificuldade em continuar para criar os ciclos de leitura, inserindo linhas com os Starts/END e os P e nº e coordenadas... a "FOLHA3" deveria ser gravada como .txt separada por tabulações para o caso das coordenadas e deveriam contar todas 4 casas decimais...
Sub MACRO_TXT_TAB()
'
' MACRO_VERA Macro
' Macro Vera - LASERs LAY-UP
'
Application.DisplayAlerts = False
'
ActiveWindow.SmallScroll ToRight:=48
Range("Tabela1[[#Headers],[NAME17]]").EntireColumn.Select
Selection.Copy
Sheets.Add After:=ActiveSheet
ActiveSheet.Paste
Sheets("Folha1").Select
Application.CutCopyMode = False
Range("Tabela1[[#Headers],[POINTS_COUNT]]").EntireColumn.Select
Selection.Copy
Sheets("Folha2").Select
Range("B1").Select
ActiveSheet.Paste
Sheets("Folha1").Select
Application.CutCopyMode = False
Range("Tabela1[[#Headers],[Pt]]").EntireColumn.Select
Selection.Copy
Sheets("Folha2").Select
Range("C1").Select
ActiveSheet.Paste
Range("A1:C1").Select
Application.CutCopyMode = False
Columns("A:A").Select 'Caso seja necessário troque a letra da coluna
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireRow.Delete
Range("a1").Select
Columns("A:A").Select
Selection.Copy
Range("F1").Select
ActiveSheet.Paste
Application.CutCopyMode = False
ActiveSheet.Range("$F$1:$F$50000").RemoveDuplicates Columns:=1, Header:= _
xlYes
Sheets.Add After:=ActiveSheet
ActiveCell.FormulaR1C1 = "=""START ""&Folha2!R2C6"
Range("A2").Select
ActiveCell.FormulaR1C1 = "=""P""&Folha2!RC[1]+""1"""
Range("A3").Select
Sheets("Folha2").Select
Sheets("Folha2").Activate
Dim i, NLinhas2, Nlinhas3 As Integer
Dim nome As String
i = 0
NLinhas2 = Range("A65536").End(xlUp).Row
Nlinhas3 = 3
For i = 1 To NLinhas2
nome = Range("A2").Value 'coloca primeiro nome
If (nome) = Range("A" & i + 1) Then
Worksheets("Folha3").Cells(Nlinhas3, 1) = Worksheets("Folha2").Cells(i + 1, 3)
Else: Exit For
End If
Nlinhas3 = Nlinhas3 + 1
Next i
Application.DisplayAlerts = True
End Sub
Postado : 18/04/2021 1:42 pm