Bonjour,
A mon avis, elle ne s'arrête pas parce que la condition n'est jamais remplie.
Ici, la boucle n'est pas nécessaire donc voici une proposition de modification avec la fonction match (équivalent de EQUIV) :
Private Sub ValiderSaisie_Click()
dim tfeuilles as variant, sname as string, ligne as long
tfeuilles = array("Capital", "Immos", "Stocks", "Tiers", "Treso", "Charges", "Produits", "Spe") '<<< NOMS SIMPLIFIES (ce serait mieux)
sname = tfeuilles(-1 + left(D1.Value, 1)*1) 'racine de compte détermine l'item à renvoyer (! -1 car tfeuilles est en base 0 !)
with sheets(sname) 'avec feuille obtenue
ligne = application.match(D1.value*1, .columns(1), 0) 'ligne = position corresp. D1.value dans colonne 1
.cells(ligne, 2) = MD1.value 'sur cette ligne, en col2, valeur de M1
end with
End Sub
CODE EDITE
Cdlt,