I've been working on this project for a while, and I just can't seem to get it working consistently. It was started by someone else, I've been trying to get it working, but data will get duplicated or not transferred at all. Here's the summary:

We have a series of about 20 workbooks, one for each of our machines, where the operators log various hourly data points. Each sheet has a row for each hour, each row has between 14-24 columns depending on the machine. When the operators are done filling out their data for an hour, they click a checkbox at the end, which launches a sub to transfer the data to a second workbook. The second workbook groups machine types together and permanently stores the data; so for example, we have three Automation Machines, AM1, AM2 & AM3. Each has it's own log workbook, where the user logs the daily data, then the data is cleared at the end of the day. There will be a separate Automation Machine data sheet with three tabs, one for each machine, and every hour, the operators transfer their data from the individual hourly logs to the grouped data workbooks.

So the method I'm using to transfer the data works...mostly. I get double-posted data occasionally, and completely skipped data sometimes. I know part of the issue is our network, it sometimes has little 'hiccups', so I've tried adding checks after the data transfer, and I'm. This is what I use (roughly, trying to simplify as much as I can):

Sub DataEnter(ckBox As MSForms.CheckBox, cmBox As MSForms.ComboBox)
Dim endDataRow As Integer
Dim hrcount As Integer
Dim rowcount As Integer
Dim inc As Integer
Dim Wkbk As New Workbook
Dim WkShtData As New Worksheet
Dim R As Range, S As Range 'CHECK DATA - R is the value to look for, S is the range to look into
Call GlobalVars.GlobalInit 'This stores the values for location and filename

Application.ScreenUpdating = False

'CHECK DATA - Get record identifier from column "O"
Set R = Range("O" & ActiveCell.row)

Set Wkbk = Workbooks.Open(location & fileName, , , , , 1234)
Set WkShtData = Wkbk.Sheets("AM1")

'Initialize variables
inc = 0
hrcount = DataEntry.MultiRowCount(cmBox)
rowcount = ComboCount(cmBox) + 3
endDataRow = WkShtData.UsedRange.Rows.count + 1 'Finds the last row entered in the sheet

'CHECK DATA - Search for identifier in target workbook; the code is in column P of target data sheet.
Set S = WkShtData.Columns("P").Find(R.Value, LookIn:=xlValues, LookAt:=xlWhole)

'CHECK DATA - If-Then statement to handle whether the data was found or not; if not, sub continues as normal
If Not S Is Nothing Then
    Exit Sub 'Duplicate found, data transfer not needed
Else
End If 'No duplicates found, continue to write data

'Write Data
    Dim inc As Integer
    
    WkShtData.Unprotect (1234)
        
    'Automatically Time Stamps column A; enters username in column I of current sheet prior to transfer
    Sheet1.Unprotect (1234)
    For i = (rowcount - hrcount + 1) To rowcount
        Sheet1.Cells(i, "A").Value = Format(Now(), "mm/dd/yyyy hh:mm:ss AMPM")
        Sheet1.Cells(i, "I").Value = Environ("USERNAME")
        
        'CheckBox1 is at row 4, checkbox2 is at row 5 and so on.... Add 3 to get from combobox # to row #
        WkShtData.Cells(endDataRow + inc, "A") = Format(Sheet1.Cells(1, "C"), "mm/dd/yyyy") 'Date at C1 of each worksheet
        WkShtData.Cells(endDataRow + inc, "B") = Format(Sheet1.Cells(i, "A"), "mm/dd/yyyy hh:mm:ss AMPM")
        WkShtData.Cells(endDataRow + inc, "C") = Sheet1.Cells(i, "B")
        WkShtData.Cells(endDataRow + inc, "D") = Sheet1.Cells(i, "C")
        'Code - unique code for each record
        WkShtData.Cells(endDataRow + inc, "E") = Sheet1.Cells(i, "D")
        
        inc = inc + 1
        
    Next i

End Sub
I actually have the write data portion in a separate sub, and it has to enter a bunch more columns of data, but this is the gist of it; I write from a cell in the current sheet to one in the target workbook. I also have error handlers to detect missing data, to detect if the target sheets are in use, and other things such as that. At the end of this code, I repeat the Check Data lines, as a test to make sure the data did transfer. We thought that sometimes the target sheet was not saving properly, so I started closing the target sheet, then reopening it again before doing the Data Check. I still have problems getting it to work. So any thoughts, corrections, or alternate methods would REALLY be appreciated. Thanks!