Ya lo he solucionado.
Pongo el código aquí por si a alguien le sirve de ayuda.
Código vba excel:
Ver originalPublic conn As New ADODB.Connection
Public rst As New ADODB.Recordset
Public cmd As New ADODB.Command
Private Sub Guardar_Click()
' Leer datos de las celdas necesarias de la hoja Empleados hydro
Dim fila, columna, cont As Integer
Dim codEmpleado, operario, codSeccionRRHH, di, linea, sublinea, seccion, seccionDes As String
Dim sqlstr1, sqlstr2 As String
fila = Cells(Rows.Count, 4).End(xlUp).Row 'cuenta la cantidad de filas que tiene el excel
conn.Open "DSN=horas"
If conn.State = 1 Then
'Eliminar todos los datos que hay introducidos en la tabla horas.operario
sqlstr1 = "DELETE FROM horas.operario"
conn.Execute sqlstr1
For cont = 4 To fila
codEmpleado = Cells(cont, 4).Value
operario = Cells(cont, 5).Value
codSeccionRRHH = Cells(cont, 6).Value
di = Cells(cont, 8).Value
linea = Cells(cont, 9).Value
sublinea = Cells(cont, 10).Value
seccion = Cells(cont, 11).Value
seccionDes = Cells(cont, 12).Value
sqlstr2 = "INSERT INTO horas.operario(CodEmpleado, Operario, CodSeccionRRHH, DI, Linea, SubLinea, Seccion, SeccionDes)" & _
" VALUES(' " & codEmpleado & " ',' " & operario & " ',' " & codSeccionRRHH & " ',' " & di & " ',' " & linea & " '" & _
",' " & sublinea & " ',' " & seccion & " ',' " & seccionDes & " ')"
conn.Execute sqlstr2
Next cont
MsgBox "Datos introducidos"
' Close connections
On Error Resume Next
rst.Close
Set rst = Nothing
conn.Close
Set conn = Nothing
On Error GoTo 0
Else
MsgBox "error en la conexion"
End If
End Sub
Saludos,