Quantcast
Channel: VBForums - Visual Basic .NET

VS 2022 Trying to learn graphics

$
0
0
Can anyone tell me what is wrong with this?

Dim g As Graphics = Me.CreateGraphics
Dim borderPen As New Pen(Color.Blue, 3)
Dim rect As New Rectangle(50, 50,250,150}
g.DrawRectangle(borderPen, rect)

I am getting an error in the third line. Rectangle is not a member of Graphics.








0

Problema con Fractal de Koch

$
0
0
Con los primeros niveles 1, 2 y 3 no hay problema. Con el nivel 4 comienza a fallar. Dos vértices no salen bien. Siguiendo con el proceso en el nivel 8 o 9 me da problema de desbordamiento.

Adjunto el código.

Imports Microsoft.VisualBasic
Imports System
Imports System.Windows.Forms
Imports System.Drawing
Imports System.Drawing.Printing
Imports System.Math
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.Width = 1200
Me.Height = 500
End Sub
Private Sub BtnKoch_Click(sender As Object, e As EventArgs) Handles BtnKoch.Click

Dim nivel As Integer
borrar()
nivel = HScrollBarNivel.Value - 1
Dim p0 As New Point(100, 400)
Dim p4 As New Point(1100, 400)
VonKoch(p0, p4, nivel)

End Sub
Private Sub VonKoch(p0, p4, nivel)

Dim i As Integer
Dim dx As Double = p4.x - p0.x
Dim dy As Double = p4.y - p0.y
Dim ltotal As Double
Dim l As Double
Dim angulo As Double
ltotal = Sqrt(dx * dx + dy * dy)
l = ltotal / 3
angulo = Atan(dy / dx)

Dim p1 As New Point(p0.x + dx / 3, p0.y + dy / 3)
Dim p2 As New Point(p1.X + Cos(angulo - PI / 3) * l, p1.Y + Sin(angulo - PI / 3) * l)
Dim p3 As New Point(p4.x - dx / 3, p4.y - dy / 3)
Dim p(4) As Point

Label2.Text = Str(p2.X) & " " & Str(p2.Y) & Str(Cos(angulo - PI / 3)) & " " & Str(Sin(angulo - PI / 3))

p(0) = p0
p(1) = p1
p(2) = p2
p(3) = p3
p(4) = p4
Dim mypen As Pen
mypen = New Pen(Drawing.Color.FromArgb(0, 0, 255), 2)
Dim mygraphics As Graphics = Me.CreateGraphics

Dim mispuntos As Point() = {p0, p1, p2, p3, p4}

For i = 0 To 3
If nivel <= 1 Then
mygraphics.DrawLine(mypen, p0, p4)
Else
VonKoch(p(i), p(i + 1), nivel - 1)
End If
Next
End Sub
Private Sub HScrollBarNivel_Scroll(sender As Object, e As ScrollEventArgs) Handles HScrollBarNivel.Scroll
Dim nivel As Integer
nivel = HScrollBarNivel.Value - 1
LabelNivel.Text = "Nivel = " & Str(nivel)
Label1.Text = Str(nivel)
End Sub
Private Sub borrar()
Dim i As Integer
Dim mygraphics As Graphics = Me.CreateGraphics
Dim penborrar As Pen
penborrar = New Pen(Color.Snow, 2)
For i = 1 To 500
mygraphics.DrawLine(penborrar, 0, i, 1200, i)
Next
End Sub
Private Sub BtnFin_Click(sender As Object, e As EventArgs) Handles BtnFin.Click
End
End Sub
End Class

Voy a intentar adjuntar imágenes.
No se si se han subido, lo he intentado...

Open a PDF file using the 'CreateFileMoniker' API in VB.NET

$
0
0
I am looking for ways to open a PDF document using the 'CreateFileMoniker' API call. I have observed using certain API monitoring tools that when we have a file path (such as a PDF) in a Microsoft Excel document mentioned as a hyperlink, the click action calls the 'CreateFileMoniker' which makes many other calls and finally opens the PDF file.

I have not seen Process.Start or ShellExecute being present directly in those calls and I would like to replicate the same for one of my application using a VB.NET code. This is the code I have, but it throws a Failed. HRESULT=800401EA error message. Took help from ChatGPT and other sources but to no avail.

HTML Code:

Imports System.Runtime.InteropServices
Imports System.Runtime.InteropServices.ComTypes

Public Class Form1

    <DllImport("ole32.dll", CharSet:=CharSet.Unicode)>
    Private Shared Function CreateFileMoniker(
        ByVal lpszPathName As String,
        ByRef ppmk As IMoniker
    ) As Integer
    End Function

    <DllImport("ole32.dll", CharSet:=CharSet.Unicode, PreserveSig:=True)>
    Private Shared Function CoGetObject(
    ByVal pszName As String,
    ByVal pBindOptions As IntPtr,
    <[In]()> ByRef riid As Guid,
    <Out(), MarshalAs(UnmanagedType.Interface)> ByRef ppv As Object
) As Integer
    End Function

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        '  Dim pdfPath As String = "C:\temp\file.pdf"
        ' Create the IUnknown GUID
        Dim IID_IUnknown As New Guid("00000000-0000-0000-C000-000000000046")

        Dim unk As Object = Nothing
        Dim hr As Integer = CoGetObject("file://" & pdfPath, IntPtr.Zero, IID_IUnknown, unk)

        If hr = 0 AndAlso unk IsNot Nothing Then
            MessageBox.Show("PDF opened successfully via OLE/COM.")
        Else
            MessageBox.Show("Failed. HRESULT=" & hr.ToString("X"))
        End If
    End Sub

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load

    End Sub


The API sequence ( not exhaustive ) drafted by observing the process used by MS Excel to open the PDF hyperlink file is as below:

1.When PDF file is opened from hyperlink through excel, the HLINK.dll calls the API "CreateFileMoniker"

2.The KERNELBASE.dll calls the API wcschr

3.urlmon.dll calls the API wcschr

4.Finally, the HLINK.dll calls the "GetFileAttributesW" API

5.This then inititates "RtlDosPathNameToNtPathName_U_WithStatus"

6.Acrobat reader comes into picture

7.Call to "RtlDosPathNameToRelativeNtPathName_U_WithStatus"

Which then initiates "ExtTextOutW''

How to modify my code to achieve the same in VB. NET?

The method tried is mentioned above

************

EDIT 09-09-2025

The actual purpose of our question is to look for a best method to open a file using it's default application in Windows using VB.NET application. We are presently using ShellExecute, but the process gets interfered by Antivirus software present in the PC. When tried by pasting it as a file link into a cell of MS Excel, and opened using Hyperlink, there was no antivirus interference. We posted about CreateFileMoniker as we observed this during the API calls as stated above. Any other such foolproof method to avoid AV interference is also ok

************

VS 2019 [RESOLVED] Validation and RowState

$
0
0
I can't figure out why the RowState stays unchanged after editing the text in a textbox as per these steps:

1. Run the application.
2. Type in the txtLeader textbox to change "Leader 1" to "Leader 1x".
3. Tab to another control.

I thought that upon successful validation, the data is automatically pushed to the datasource, which should change the RowState from unchanged to modified. This is not happening.

I am declaring these form-level objects:

Code:

    Private conn As SQLiteConnection
    Private da As SQLiteDataAdapter
    Private dt As DataTable
    Private WithEvents bs As BindingSource

The form's Load event:

Code:

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load

        ' Load data
        da = New SQLiteDataAdapter("SELECT * FROM Events", conn)
        Dim cb As New SQLiteCommandBuilder(da)
        dt = New DataTable()
        da.Fill(dt)

        ' Setup BindingSource
        bs = New BindingSource()
        bs.DataSource = dt

        ' Bind textbox
        txtLeader.DataBindings.Add("Text", bs, "Leader", True, DataSourceUpdateMode.OnValidation)

        Dim row As DataRow = CType(bs.Current, DataRowView).Row
        Debug.WriteLine("{0}: RowState = {1}, Value = {2}, txtLeader.Text = {3}", "Form.Load", row.RowState.ToString, row("Leader"), txtLeader.Text)

    End Sub

The relevant events:

Code:

    Private Sub TxtLeader_Validating(sender As Object, e As System.ComponentModel.CancelEventArgs) Handles txtLeader.Validating
        Dim row As DataRow = CType(bs.Current, DataRowView).Row
        Debug.WriteLine("{0}: RowState = {1}, Value = {2}, txtLeader.Text = {3}", "Validating (intro)", row.RowState.ToString, row("Leader"), txtLeader.Text)
        If String.IsNullOrWhiteSpace(txtLeader.Text) Then
            MessageBox.Show("Leader cannot be empty.", "Validation Error", MessageBoxButtons.OK, MessageBoxIcon.Warning)
            e.Cancel = True
        End If
        Debug.WriteLine("{0}: RowState = {1}, Value = {2}, txtLeader.Text = {3}", "Validating (exit)", row.RowState.ToString, row("Leader"), txtLeader.Text)
    End Sub

    Private Sub txtLeader_Validated(sender As Object, e As EventArgs) Handles txtLeader.Validated
        Dim row As DataRow = CType(bs.Current, DataRowView).Row
        Debug.WriteLine("{0}: RowState = {1}, Value = {2}, txtLeader.Text = {3}", "Validated", row.RowState.ToString, row("Leader"), txtLeader.Text)
        Call Bs_ListChanged(Nothing, New ComponentModel.ListChangedEventArgs(ComponentModel.ListChangedType.ItemChanged, bs.Position))
    End Sub

    Private Sub bs_CurrentChanged(sender As Object, e As EventArgs) Handles bs.CurrentChanged
        Dim row As DataRow = CType(bs.Current, DataRowView).Row
        Debug.WriteLine("{0}: RowState = {1}, Value = {2}, txtLeader.Text = {3}", "CurrentChanged", row.RowState.ToString, row("Leader"), txtLeader.Text)
    End Sub

    Private Sub Bs_ListChanged(sender As Object, e As ListChangedEventArgs) Handles bs.ListChanged
        Dim row As DataRow = CType(bs.Current, DataRowView).Row
        Debug.WriteLine("{0}: RowState = {1}, Value = {2}, txtLeader.Text = {3}", "ListChanged", row.RowState.ToString, row("Leader"), txtLeader.Text)
    End Sub

The immediate window shows the following:

Code:

Form.Load: RowState = Unchanged, Value = Leader 1, txtLeader.Text = Leader 1
Validating (intro): RowState = Unchanged, Value = Leader 1, txtLeader.Text = Leader 1x
Validating (exit): RowState = Unchanged, Value = Leader 1, txtLeader.Text = Leader 1x
Validated: RowState = Unchanged, Value = Leader 1x, txtLeader.Text = Leader 1x
ListChanged: RowState = Unchanged, Value = Leader 1x, txtLeader.Text = Leader 1x

The immediate window shows the current item of the bindingsource changes from "Leader 1" to "Leader 1x" between the txtLeader.Validating and txtLeader.Validated events.

Why isn't the RowState changing?

VS 2022 How do I extract text from a PDF?

$
0
0
I just need a couple of text values from a table in a PDF file. Any suggestions?
My thinking is to extract the text to a string variable and use RegEx, but I'm not sure if that's not the smartest way.
I figured out how to get PDFSharp into my project but there's not a simple method to extract. I found and converted some CS code to a module, but it's not working. I can see it's meant to loop through the pages of a type, but it doesn't find any of that type. I'm still trying to figure this out. It looks like it goes through every page and every object in the page looking for ones which are text and adding them to StringBuilder. I'll keep trying.

VS 2019 [RESOLVED] How Can I increase the Width of CheckBox in MenuStrip Sub Item ?

$
0
0
Hello

Any Ideas How Can I increase the width of checkbox in MenuStrip Sub Item
thru designer I did not find any option to incorporate the CheckBox thru. the respective DropDownItemColletion

So Now CheckBox has been created thru Form Load so When Clicked on SaveToolStripMenuItem It pops up

Although I've assigned its Autosize to True and also Tried with AutoSize False with assigning the width also but in both cases there is no success

Also tried
printInfoChkbx.Width = 200 This also no success


Form _load....
Code:

Dim printInfoChkbx As New CheckBox()

        printInfoChkbx.Text = "Print Data Details"
        printInfoChkbx.AutoSize = True
       

        Dim host As New ToolStripControlHost(printInfoChkbx)
        SaveToolStripMenuItem.DropDownItems.Add(host)


......

Displayed As Print Data

Thanks
nkvb

Code coverage while debugging in Visual Studio

$
0
0
I am looking for a tool that can measure and show code coverage while I am debugging my application inside Visual Studio. Ideally, I’d like to be able to step through code in a debug session and see coverage information at the same time.
I have been exploring different code coverage tools, but most of them seem to require creating and running test cases in order to measure coverage.
For example, I tried Fine Code Coverage and Visual Studio’s built-in code coverage. Both of these integrate with unit testing frameworks, which means I need to write and execute test cases before I can see any coverage results.
I also checked OpenCover. Unlike the others, OpenCover does not require writing test cases directly. Instead, it needs to be provided with an executable, and then it tracks which parts of the code are executed when that program runs. While this is useful, it still requires running the application separately.
I am looking for a tool which will let me step through code in a debug session and see coverage information without having to create unit tests or generate separate executables just for coverage.
Does a tool which does code coverage while debugging exist? If so, could you please suggest one?

[RESOLVED] VB.NET Ambiguous error in VS 2022

$
0
0
I am trying to load a large collection of data lines to a MYSQL database. The database is created and is local and is visible in MYSQL workbench. I have installed MySQL Connector and mySQL is visible in the solution explorer . I am getting a ambiguity error, and 2 others - see below.

I have followed (I think) the MS instructions with this code :

Public Sub Init()
Dim MySqlClient As String = "MySQL84"
Dim mySQLConnectionString As String

mySQLConnectionString = "server=127.0.0.1:3306;" & "uid=root;" & "pwd=1212Tyke!;" & "database=pooldata;"

Dim conn As New MySql.Data.MySqlClient.MySqlConnection(mySQLConnectionString)
conn.ConnectionString = mySQLConnectionString

Try
conn.open()
MsgBox("Connected to database")

Catch ex As Exception 'errorString 'MySql.Data.MySqlClient.MySqlException

End Try
End Sub

I get the following 3 errors

'Data' is ambiguous in the namespace 'ConsolidatedPoolData.MySql'.
'connectionstring' is not a member of 'MySqlConnection'.
'open' is not a member of 'MySqlConnection'.

VS 2017 [RESOLVED] Missing designer form

$
0
0
I have a form that I have been working on for several weeks with no problem.
I want to change something in the designer form but it does not show up.
If I click on designer, nothing happens.
If I click on View, than click on Solution Explorer the only thing that shows up is
My project, References, Resources, App.config and Millionns_game_million.vb
The Designer form is missing.
if I go to the directory where the project is, the Millionns_game_million>designer.vb shows up.
If I go back to a saved copy of the project, the save problem occurs.

Search of a Working Class !

$
0
0
Has someone the following working Class:

Zoom-hover Class for images in a Listview(large image), the listview is inside a panel?

VS 2022 Formatting issue

$
0
0
Hi Folks,

Maybe this has already been covered and solved, but I'll continue.

I have and issue that makes my code look a little unstructured and that is to do with comments.

VS formats everything that you enter and that's fine except for one case.

'comment 1
if
...a = b
...b = c
...'comment 2
else
...

Is there some way comment 2 can line up with the else statement?

It just seems inconsistent to me to have that comment indented incorrectly.

Hope you can shed some light on the issue.

Thanks.

[RESOLVED] VS 2022 How to click an HREF to activate a tab

$
0
0
I'm working with a company portal and I ran into tabs that are selected by HREF and not OnClick. Below is the code from the original VBA code to the conversion to VB Net, the only difference between then is that in VBA I could access the items by class and not just with the ID or TAGS.

VBA code

Code:

    Set HTMLobj = GetElement(eELEMENT_CLASS, cCLASS_TABS_TABLINK)
    DoEvents
    If (Not HTMLobj Is Nothing) Then
       
        For Each HTMLitem In HTMLobj
            DoEvents
           
            'Is this object the one we want?
            If (InStr(UCase(HTMLitem.Title), UCase(strTab)) <> 0) Then
                '              (HTMLobj, Optional bKeyPress, Optional bCloseDlg)
                bStatus = ClickElement(HTMLitem)
                DoEvents
                bStatus = Not bStatus
                Exit For
           
            End If
            DoEvents
        Next
    Else
    End If

VB Net

Code:

            HTMLele = WebBrowser1.Document.GetElementById(cID_EXTERNAL_TABS_BAR)
            If (HTMLele IsNot Nothing) Then

                HTMLeleCol = HTMLele.GetElementsByTagName("li")
                If (HTMLeleCol IsNot Nothing) Then

                    For Each ele In HTMLeleCol

                        'Is this object the one we want?
                        If (InStr(UCase(ele.InnerHtml), UCase(strTab)) <> 0) Then
                            ele.InvokeMember("Click")
                            'bStatus = ClickElement(ele)
                            BrowserWait(5)
                            Exit For

                        End If

                    Next
                Else
                    bStatus = False
                    SetAbort(True)
                End If

            Else
                bStatus = False
                SetAbort(True)
            End If

        Catch ex As Exception
            Dim szErr As String
            szErr = ex.Message
            If (GetDebug()) Then
                Debug.Print(szErr)
            End If
            bStatus = False
        End Try

        If (GetDebug()) Then
            Debug.Print("Browser [SelectTab Exit]")
        End If

        Return bStatus

        EPIQ.UpdateRunControls(ENUM_RUN.eRUN_GENERIC_MESSAGE, cMSG_OPERATION_COMPLETE)

    End Function

Below is the HREF I am trying to activate, but under VB I have not had any luck with the same style of code. Any suggestions?

Code:

javascript:openTab('/epiq_prod/reliance?ETQ$CMD=CMD_OPEN_LAST_ACCESSED_VIEW&ETQ$APPLICATION_NAME=COMPLAINTS&ETQ$KEEP_VIEW_STATE=true');

2 classes 1 boolean two different results for each class

$
0
0
I have been pulling my hair out for the last couple of hours over this issue. I have 2 classes, one called Browser and one called EPIQ. I have a get/set for my variables passing between classes. For example:

In the main class EPIQ
Code:

Public Sub SetAbortRun(ByVal bVal As Boolean)
    m_bAbortRun = bVal
End Sub
Public Function GetAbortRun() As Boolean
    GetAbortRun = m_bAbortRun
End Function

The issue is that when I call the GetAbortRun into a boolean variable in the EPIQ class the return states False. However, when I call the same function using another set/get routine the answer is negated.

In the Browser Class
Code:

    Public Function GetAbort() As Boolean
        GetAbort = EPIQ.GetAbortRun()
    End Function

    Public Sub SetAbort(ByVal val As Boolean)
        EPIQ.SetAbortRun(val)
    End Sub

In the following code checking for the state of AbortRun the return is True, however just before I called the class I checked the return variable from a read of the EPIQ class and it read False.

Code:

            If (GetAbort()) Then
                Return True
            End If

Code:

                bStat = GetAbortRun()
Has anyone seen anything like this? I'm wondering if I need to just reboot my computer, but really don't want to do that just yet.

VS 2022 [RESOLVED] VB.NET VS 2022 and MySQL VIII Almost working . . .But

$
0
0
Hi - I have a VB.Net VS2022 program - and it recognizes my DB and connects. I am reading data from CSV files and attempting to load this to MySQL table, I can connect to the database, and get an fatal error from the mySql engine - but cannot decode the error yet - the error text is Fatal error encountered during command execution

The error seemed to occur on the first row insert after the
Code:

ProcessCmdKey.Parameters.AddWithValue("@RGB_Snippet", RGB_ByteArray)
Here is the JPG to ByteArray function

Code:

Public Function ImageToByteArray(ByVal imageIn As Image) As Byte()
    Using ms As New MemoryStream()
        ' Save the image to the MemoryStream in its jpg format
        imageIn.Save(ms, ImageFormat.Jpeg)
        ' Convert the MemoryStream to a byte array
        Return ms.ToArray()
    End Using
End Function

----- I have looked at the size of the ByteArrays and they are about the right size for the small jpg source files

It is called just before the SQL Query - The error in the SQL is "
Quote:

Parameter @RGB_ByteArray must be defined
Code:

Sub processTargets()

    Dim mySQLConnectionString As String = "server=127.0.0.1;port=3306;uid=root;pwd=1212Tyke!;database=pooldata;"

    Dim conn As New MySql.Data.MySqlClient.MySqlConnection(mySQLConnectionString)
    conn.ConnectionString = mySQLConnectionString

    Try
        conn.Open()
        MsgBox("Connected to database")

    Catch ex As Exception 'errorString 'MySql.Data.MySqlClient.MySqlException
        MsgBox("error " & ex.Message & " " & mySQLConnectionString)
    End Try

    Do While Not EOF(InputFileNumber) ' This is the read of the CSV data


        LoopCount = LoopCount + 1

        Call Movedata() 'This moves data from the CSV line To variables


        Dim RGB_ByteArray As Byte()
        RGB_ByteArray = ImageToByteArray(RGB_Snippet)
        Dim CIR_ByteArray As Byte()
        CIR_ByteArray = ImageToByteArray(CIR_Snippet


 Dim Query As String = "INSERT INTO detailpoolList (TargetIDF, FlightID, Comment, TargetRGB_Name, TargetCIR_Name, Target_LAT, Target_LON, Analyst, IR_FileName, RGB_Filename, RGB_Snippet, CIR_Snippet, HouseNo, Street, City, State, Zip) VALUES = (@TargetIDF, @FlightID, @Comment, @TargetRGB_Name, @TargetCIR_Name, @Target_LAT, @Target_LON, @Analyst, @IR_FileName, @RGB_Filename, @RGB_ByteArray, @CIR_ByteArray, @HouseNo, @Street, @City, @State, @Zip)"
 Using ProcessCmdKey As New MySql.Data.MySqlClient.MySqlCommand(Query, conn)
    ProcessCmdKey.Parameters.AddWithValue("@TargetIDF", TargetIDF)
    ProcessCmdKey.Parameters.AddWithValue("@FlightID", FlightID)
    ProcessCmdKey.Parameters.AddWithValue("@Comment", comment)
    ProcessCmdKey.Parameters.AddWithValue("@TargetRGB_Name", TargetRGB_Name)
    ProcessCmdKey.Parameters.AddWithValue("@TargetCIR_Name", TargetCIR_Name)
    ProcessCmdKey.Parameters.AddWithValue("@Target_LAT", Target_LAT)
    ProcessCmdKey.Parameters.AddWithValue("@Target_LON", Target_LON)
    ProcessCmdKey.Parameters.AddWithValue("@Analyst", analyst)
    ProcessCmdKey.Parameters.AddWithValue("@IR_FileName", IR_FileName)
    ProcessCmdKey.Parameters.AddWithValue("@RGB_Filename", RGB_Filename)
    ProcessCmdKey.Parameters.AddWithValue("@RGB_Snippet", RGB_ByteArray)
    ProcessCmdKey.Parameters.AddWithValue("@CIR_Snippet", CIR_ByteArray)
    ProcessCmdKey.Parameters.AddWithValue("@HouseNo", houseNo)
    ProcessCmdKey.Parameters.AddWithValue("@Street", street)
    ProcessCmdKey.Parameters.AddWithValue("@City", city)
    ProcessCmdKey.Parameters.AddWithValue("@State", state)
    ProcessCmdKey.Parameters.AddWithValue("@Zip", zip)
    Try
        ProcessCmdKey.ExecuteNonQuery()
    Catch ex As MySql.Data.MySqlClient.MySqlException
        Dim errorMessage As String = $"MySql Error Number: {ex.Number}{Environment.NewLine}Error Message: {ex.Message}"

        Select Case ex.Number
            Case 1062
                MessageBox.Show("Duplicate entry " & TargetIDF)
            Case Else

                MessageBox.Show("Database error (" & ex.Message)
                MessageBox.Show(ex.InnerException.Message)
        End Select


    End Try
 End Using

I display the path to the jpg images and it is correct and show the jpg in a picturebox

The 2 images are defined as

Code:

Dim RGB_Snippet As Image
Dim CIR_Snippet As Image

VS 2022 [RESOLVED] Open Excel Master File, read from other Excel files and populate data.

$
0
0
I have a master excel file; I want to open it, save as a new name and then populate columns with data from up to 32 other excel files.
Thats the plan. ;)

See "#Master-Shoe-MSA 32.xlsx".
After saving as a new name, read from the 32 other excel files. (Saving doesn't really matter, I can do that manually).
I have attached two sample files.
Shoe Sphere_Pre-Plate_08-11-2025_98783832-MSA-1.xls and Shoe Sphere_Pre-Plate_08-11-2025_98783832-MSA-2.xls. Formatting of these files will always be the same.

Lastly, a copy of my VS sln so users can see what I am attempting to do. I created an interface for file selection and folder selection, then read/write data from the other files. (VS 2022)

What I would like from forum users, How to's, close examples/samples, better concept, anything to help me accomplish this. As always, all help is appreciated.
Attached Images
  
Attached Files



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>