From 014a585396ed0b1a4852ed96abaeb1a51a7514aa Mon Sep 17 00:00:00 2001 From: updsv7 Date: Mon, 13 Apr 2026 16:46:20 +0900 Subject: [PATCH] Update CSV columns to I-R (was G-P) --- vba_code_kukan_detail_master.txt | 76 ++++++++++++++++---------------- 1 file changed, 38 insertions(+), 38 deletions(-) diff --git a/vba_code_kukan_detail_master.txt b/vba_code_kukan_detail_master.txt index 743f81e..505af41 100644 --- a/vba_code_kukan_detail_master.txt +++ b/vba_code_kukan_detail_master.txt @@ -233,16 +233,16 @@ NextCsvLine: wsTarget.Cells(writeRow, 3).Value = code ' CSV col 2-11 -> G-P column - If UBound(dataArray) >= 1 Then wsTarget.Cells(writeRow, 7).Value = CleanCSVField(CStr(dataArray(1))) - If UBound(dataArray) >= 2 Then wsTarget.Cells(writeRow, 8).Value = CleanCSVField(CStr(dataArray(2))) - If UBound(dataArray) >= 3 Then wsTarget.Cells(writeRow, 9).Value = CleanCSVField(CStr(dataArray(3))) - If UBound(dataArray) >= 4 Then wsTarget.Cells(writeRow, 10).Value = CleanCSVField(CStr(dataArray(4))) - If UBound(dataArray) >= 5 Then wsTarget.Cells(writeRow, 11).Value = CleanCSVField(CStr(dataArray(5))) - If UBound(dataArray) >= 6 Then wsTarget.Cells(writeRow, 12).Value = CleanCSVField(CStr(dataArray(6))) - If UBound(dataArray) >= 7 Then wsTarget.Cells(writeRow, 13).Value = CleanCSVField(CStr(dataArray(7))) - If UBound(dataArray) >= 8 Then wsTarget.Cells(writeRow, 14).Value = CleanCSVField(CStr(dataArray(8))) - If UBound(dataArray) >= 9 Then wsTarget.Cells(writeRow, 15).Value = CleanCSVField(CStr(dataArray(9))) - If UBound(dataArray) >= 10 Then wsTarget.Cells(writeRow, 16).Value = CleanCSVField(CStr(dataArray(10))) + If UBound(dataArray) >= 1 Then wsTarget.Cells(writeRow, 9).Value = CleanCSVField(CStr(dataArray(1))) + If UBound(dataArray) >= 2 Then wsTarget.Cells(writeRow, 10).Value = CleanCSVField(CStr(dataArray(2))) + If UBound(dataArray) >= 3 Then wsTarget.Cells(writeRow, 11).Value = CleanCSVField(CStr(dataArray(3))) + If UBound(dataArray) >= 4 Then wsTarget.Cells(writeRow, 12).Value = CleanCSVField(CStr(dataArray(4))) + If UBound(dataArray) >= 5 Then wsTarget.Cells(writeRow, 13).Value = CleanCSVField(CStr(dataArray(5))) + If UBound(dataArray) >= 6 Then wsTarget.Cells(writeRow, 14).Value = CleanCSVField(CStr(dataArray(6))) + If UBound(dataArray) >= 7 Then wsTarget.Cells(writeRow, 15).Value = CleanCSVField(CStr(dataArray(7))) + If UBound(dataArray) >= 8 Then wsTarget.Cells(writeRow, 16).Value = CleanCSVField(CStr(dataArray(8))) + If UBound(dataArray) >= 9 Then wsTarget.Cells(writeRow, 17).Value = CleanCSVField(CStr(dataArray(9))) + If UBound(dataArray) >= 10 Then wsTarget.Cells(writeRow, 18).Value = CleanCSVField(CStr(dataArray(10))) ' Auto-fill D, E columns Call FillFromKukanMaster(wsTarget, writeRow, False) @@ -284,30 +284,31 @@ Sub validateDetailData(ByVal ws As Worksheet, ByVal rowNum As Long) Exit Sub End If - ' Check J, K required and numeric + ' Check G, H required and numeric (for composite key) + If Trim(ws.Cells(rowNum, 9).Value) = "" Or Not IsNumeric(ws.Cells(rowNum, 9).Value) Then + ws.Cells(rowNum, 17).Value = "G column (I) is required and must be numeric" + Exit Sub + End If + If Trim(ws.Cells(rowNum, 10).Value) = "" Or Not IsNumeric(ws.Cells(rowNum, 10).Value) Then - ws.Cells(rowNum, 17).Value = "J column is required and must be numeric" + ws.Cells(rowNum, 17).Value = "H column (J) is required and must be numeric" Exit Sub End If - If Trim(ws.Cells(rowNum, 11).Value) = "" Or Not IsNumeric(ws.Cells(rowNum, 11).Value) Then - ws.Cells(rowNum, 17).Value = "K column is required and must be numeric" + ' Check I (K column) required + If Trim(ws.Cells(rowNum, 11).Value) = "" Then + ws.Cells(rowNum, 17).Value = "I column (K) is required" Exit Sub End If - ' Check G, H, I required and numeric - If Trim(ws.Cells(rowNum, 7).Value) = "" Or Not IsNumeric(ws.Cells(rowNum, 7).Value) Then - ws.Cells(rowNum, 17).Value = "G column is required and must be numeric" + ' Check J, K required and numeric + If Trim(ws.Cells(rowNum, 12).Value) = "" Or Not IsNumeric(ws.Cells(rowNum, 12).Value) Then + ws.Cells(rowNum, 17).Value = "J column (L) is required and must be numeric" Exit Sub End If - If Trim(ws.Cells(rowNum, 8).Value) = "" Or Not IsNumeric(ws.Cells(rowNum, 8).Value) Then - ws.Cells(rowNum, 17).Value = "H column is required and must be numeric" - Exit Sub - End If - - If Trim(ws.Cells(rowNum, 9).Value) = "" Then - ws.Cells(rowNum, 17).Value = "I column is required" + If Trim(ws.Cells(rowNum, 13).Value) = "" Or Not IsNumeric(ws.Cells(rowNum, 13).Value) Then + ws.Cells(rowNum, 17).Value = "K column (M) is required and must be numeric" Exit Sub End If @@ -315,31 +316,30 @@ Sub validateDetailData(ByVal ws As Worksheet, ByVal rowNum As Long) Dim col As Long Dim colName As String Dim colLetter As String - colLetter = "LMNOP" + colLetter = "NOPQR" - For col = 12 To 16 + For col = 14 To 18 If Trim(ws.Cells(rowNum, col).Value) <> "" And Not IsNumeric(ws.Cells(rowNum, col).Value) Then - colName = Mid(colLetter, col - 11, 1) + colName = Mid(colLetter, col - 13, 1) ws.Cells(rowNum, 17).Value = colName & " column must be numeric" Exit Sub End If Next col - ' Check GHI composite key duplicate - Dim g As String, h As String, i As String + ' Check GH composite key duplicate + Dim g As String, h As String Dim r As Long Dim lastRow As Long - g = Trim(ws.Cells(rowNum, 7).Value) - h = Trim(ws.Cells(rowNum, 8).Value) + g = Trim(ws.Cells(rowNum, 9).Value) + h = Trim(ws.Cells(rowNum, 10).Value) - lastRow = ws.Cells(ws.Rows.Count, "C").End(xlUp).Row + lastRow = ws.Cells(ws.Rows.Count, 3).End(xlUp).Row For r = 7 To lastRow If r <> rowNum And Trim(ws.Cells(r, 3).Value) = Trim(ws.Cells(rowNum, 3).Value) Then - If Trim(ws.Cells(r, 7).Value) = g And _ - Trim(ws.Cells(r, 8).Value) = h Then - ws.Cells(rowNum, 17).Value = "GH combination already exists" + If Trim(ws.Cells(r, 9).Value) = g And Trim(ws.Cells(r, 10).Value) = h Then + ws.Cells(rowNum, 17).Value = "GH (I,J) combination already exists" Exit Sub End If End If @@ -347,9 +347,9 @@ Sub validateDetailData(ByVal ws As Worksheet, ByVal rowNum As Long) ' Validation passed ws.Cells(rowNum, 17).ClearContents - End Sub + ' Button macro (Validate selected row) Sub validateDetailDataButton() Dim ws As Worksheet @@ -418,8 +418,8 @@ Sub ExportMasterDetailData() rowCount = rowCount + 1 ' CSV col1 -> C column csvContent = csvContent & CleanCSVField(ws.Cells(r, 3).Value) - ' CSV col2-11 -> G-P column - For j = 7 To 16 + ' CSV col2-11 -> I-R column + For j = 9 To 18 csvContent = csvContent & "," & CleanCSVField(ws.Cells(r, j).Value) Next j csvContent = csvContent & vbLf