Bonjour Nico
En premier lieu la réponse à ta deuxième question...
Soit tu passe la saisie en Upper Case à l'aide de UCase() soit tu fait ton teste avec UCase(...)
If Application.CountIf(Range("1:1"), UCase(Me.TextBox1.Value)) = 0 Then
...
Pour accéder à la seconde UserForm2 spécifie que c'est sur cette form que tu veux travailler:
With UserForm2
.TextBox2.Value = Cells(2, compteur).Value
.TextBox3.Value = Cells(3, compteur).Value
.TextBox4.Value = Cells(4, compteur).Value
.TextBox5.Value = Cells(5, compteur).Value
.TextBox6.Value = Cells(6, compteur).Value
'cadence
.TextBox7.Value = Cells(2, compteur + 3).Value
'cout d'un produit
If TextBox1.Value = "" Then
.TextBox8.Value = ""
Else
.TextBox8.Value = ((Cells(2, compteur + 1).Value * Cells(2, compteur + 2)) + (Cells(3, compteur + 1).Value * Cells(3, compteur + 2)) + (Cells(4, compteur + 1).Value * Cells(4, compteur + 2)) + (Cells(5, compteur + 1).Value * Cells(5, compteur + 2))) + (Cells(30, 1) / Cells(2, compteur + 3))
End If
End With
En esperant avoir répondu à ta demande
@+ Robert