Hola a todos!! 
Tengo que rellenar una base de datos, lo cual hago mediante un formulario en el que hay una serie de textbox y botones de comando. 
En los textbox introduzco fechas y otros tipos de datos, mientras que uno de los botones de comando lo que hace es dar de alta esos datos, es decir, inserta un renglón y pone en blanco todos los textbox. 
La secuencia que utilizo es la siguiente: 
Private Sub CommandButton1_Click() 
Rem alta 
Range("A11").Select 
Selection.EntireRow.Insert 
TextBox1 = Empty 
TextBox2 = Empty 
TextBox3 = Empty 
TextBox4 = Empty 
TextBox5 = Empty 
TextBox6 = Empty 
TextBox7 = Empty 
TextBox8 = Empty 
TextBox9 = Empty 
TextBox10 = Empty 
TextBox11 = Empty 
TextBox12 = Empty 
TextBox13 = Empty 
TextBox14 = Empty 
TextBox15 = Empty 
TextBox16 = Empty 
TextBox1.SetFocus 
End Sub 
Private Sub TextBox1_Change() 
Range("B" + Label17).FormulaR1C1 = Val(TextBox1) 
End Sub 
Private Sub TextBox2_Change() 
Range("C" + Label17).FormulaR1C1 = Val(TextBox2) 
End Sub 
Private Sub TextBox3_Change() 
Range("D11").FormulaR1C1 = CDate(TextBox3.Text) 
TextBox10 = CDate(Cells(8, 1).Text) - CDate(TextBox3.Text) 
End Sub 
Private Sub TextBox4_Change() 
Range("F" + Label17).FormulaR1C1 = TextBox4 
End Sub 
Private Sub TextBox5_Change() 
Range("G" + Label17).FormulaR1C1 = Val(TextBox5) 
End Sub 
Private Sub TextBox6_Change() 
Range("H11").FormulaR1C1 = CDate(TextBox6.Text) 
TextBox11 = CDate(TextBox6.Text) - CDate(TextBox3.Text) 
End Sub 
Private Sub TextBox7_Change() 
Range("J" + Label17).FormulaR1C1 = CDate(TextBox7.Text) 
TextBox12 = CDate(Cells(8, 1).Text) - CDate(TextBox7.Text) 
TextBox13 = CDate(TextBox7.Text) - CDate(TextBox3.Text) 
TextBox14 = CDate(TextBox7.Text) + 222 
TextBox15 = CDate(TextBox7.Text) + 282 
End Sub 
Private Sub TextBox8_Change() 
Range("K" + Label17).FormulaR1C1 = TextBox8 
End Sub 
Private Sub TextBox9_Change() 
Range("N" + Label17).FormulaR1C1 = CDate(TextBox9.Text) 
TextBox16 = CDate(TextBox3.Text) - CDate(TextBox9.Text) 
End Sub 
Private Sub TextBox10_Change() 
Range("E" + Label17).FormulaR1C1 = Val(TextBox10) 
End Sub 
Private Sub TextBox11_Change() 
Range("I11").FormulaR1C1 = Val(TextBox11) 
End Sub 
Private Sub TextBox12_Change() 
Range("L" + Label17).FormulaR1C1 = Val(TextBox12) 
End Sub 
Private Sub TextBox13_Change() 
Range("M" + Label17).FormulaR1C1 = Val(TextBox13) 
End Sub 
Private Sub TextBox14_Change() 
Range("O" + Label17).FormulaR1C1 = TextBox14 
End Sub 
Private Sub TextBox15_Change() 
Range("P" + Label17).FormulaR1C1 = TextBox15 
End Sub 
Private Sub TextBox16_Change() 
Range("Q" + Label17).FormulaR1C1 = Val(TextBox16) 
End Sub 
El problema aparece al pulsar el botón, y me da un error '13' en el tiempo de ejecución, no coinciden los tipos. 
El lugar donde aparece el error es: 
Private Sub TextBox3_Change() 
Range("D11").FormulaR1C1 = CDate(TextBox3.Text) 
TextBox10 = CDate(Cells(8, 1).Text) - CDate(TextBox3.Text) 
End Sub 
Saludos, muchas gracias.