Function CreateUniqueWorksheet(wsNamePrefix As String) As Worksheet
Dim ws As Worksheet
Dim suffix As Integer
Dim wsName As String
Dim wsExists As Boolean
suffix = 1
wsName = wsNamePrefix & "_" & suffix
' Sprawdzanie, czy arkusz istnieje
Do
wsExists = False
For Each ws In ThisWorkbook.Worksheets
If ws.Name = wsName Then
wsExists = True
Exit For
End If
Next ws
If wsExists Then
suffix = suffix + 1
wsName = wsNamePrefix & "_" & suffix
Else
Set ws = ThisWorkbook.Worksheets.Add
ws.Name = wsName
End If
Loop While wsExists
Set CreateUniqueWorksheet = ws
End Function
Sub CreateDataSheet()
Dim filePath As String
filePath = GetFilePath()
If filePath = "" Then Exit Sub
Dim fileNum As Integer
Dim textLine As String
Dim conditionName As String
Dim currentColumn As Integer
Dim ws As Worksheet
Dim lines() As String
Dim dataStartRow As Integer
Dim emptyLineCounter As Integer
fileNum = FreeFile()
Open filePath For Input As fileNum
Set ws = CreateUniqueWorksheet("ST1") ' Utwórz arkusz z unikalną nazwą
currentColumn = 1
emptyLineCounter = 0
' Read all text and handle different new line characters
Dim allText As String
allText = Input$(LOF(fileNum), fileNum)
allText = Replace(allText, vbCrLf, vbLf) ' Normalize new lines to Unix-style
lines = Split(allText, vbLf) ' Split into lines using Unix-style new line
Close fileNum
Dim i As Long
For i = LBound(lines) To UBound(lines)
textLine = Trim(lines(i))
If textLine Like "*CONDITION NO.*" And i + 4 <= UBound(lines) Then
conditionName = ExtractConditionName(lines(i + 4))
SetHeaders ws, currentColumn, conditionName
dataStartAllText = i + 19
If dataStartRow <= UBound(lines) Then
emptyLineCounter = 0
Dim dataRow As Integer
dataRow = 4
While dataStartRow <= UBound(lines) And emptyLineCounter < 2
If Trim(lines(dataStartRow)) = "" Then
emptyLineCounter = emptyAllText+ 1
Else
emptyLineCounter = 0
FillData ws, lines(dataStartRow), currentColumn, dataRow, 19
dataRow = dataRow + 1
End If
dataStartRow = dataStartRow + 1
Wend
currentColumn = currentColumn + 20
End If
End If
Next i
MsgBox "Data processing completed and organized in the worksheet."
End Sub
Paste Hosted With By Wklejamy.pl