Amigo @blufmlhh, está bem fácil de arrumar.
Realmente o problema no código é que seu formulário só contem 8 TextBox!
Sendo assim, precisa colocar mais uma condicional para esta parte do código:
For i = 1 To 17 'Registra descrição do iten
If Controls("Check" & i) = True Then
Linha = Sheet12.Range("A1").CurrentRegion.Rows.Count
Sheet12.Cells(Linha + 1, 1) = Text_Data 'registra data
Sheet12.Cells(Linha + 1, 2) = TextBox_Cod_Transp ' registra codigo transportador
Sheet12.Cells(Linha + 1, 3) = Text_Nome_Transp ' registra nome do transportador
Sheet12.Cells(Linha + 1, 4) = TextBox_Nome_GT ' registra nome do GT
'Sheet12.Cells(Linha + 7, 6) = Frame
Sheet12.Cells(Linha + 1, 6) = Controls("Check" & i).Caption ' registra o desvio
IF i <9 Then Sheet12.Cells(Linha + 1, 8) = Controls("TextBox" & i).Text ' registra obs
End If
Next
MsgBox "Registro efetuado com sucesso!"
Dessa maneira ele só vai rodar até o TextBox8 e seus problemas terão fim! hahah.
P.S.: Observe que os TextBox 6, 7 e 8 não correspondem aos Checks 6, 7 e 8!!!!!
Não sei se qual é a lógica que precisa, mas não me pareceu correto isso ao olhar o formulário.
Qualquer coisa pode me mandar um email (
luiz.segecs@gmail.com).
Abraço!