Bonjour,
Une Solution :
Sub definirCoeff()
Dim ligne As Long, CodeGc As String, article As String, LigFin As Long 'Vérifier que article est bien un (petit) nombre entier
With Sheets("Conso_Mois")
LigFin = .Cells(.Rows.Count, 8).End(xlUp).Row 'Dernière ligne non vide
For ligne = 2 To LigFin 'Boucle sur les lignes
CodeGc = .Cells(ligne, 5).Value
article = .Cells(ligne, 8).Text
Select Case CodeGc
Case "UIA"
.Cells(ligne, 12) = Application.VLookup(article, Sheets("COEF").Range("A:B"), 2, False)
Case "EST"
.Cells(ligne, 12) = Application.VLookup(article, Sheets("COEF").Range("C:D"), 2, False)
Case "OUEST"
.Cells(ligne, 12) = Application.VLookup(article, Sheets("COEF").Range("E:F"), 2, False)
Case "SUD"
.Cells(ligne, 12) = Application.VLookup(article, Sheets("COEF").Range("G:H"), 2, False)
End Select
If ligne = LigFin Then MsgBox "Coeff terminé. Il y a eu " & ligne - 1 & " coefficients mise à jour."
Next ligne
End With
End Sub
Particuièrement signalés : les points devant :
LigFin = .Cells(.Rows.Count, 8).End(xlUp).Row '. Cells et .RowsCount
'et devant :
.Cells(ligne, 12)
ainsi que article qui ne peut être qu'un String. De plus les string n'ont pas de Value
article = .Cells(ligne, 8).Text
Edit : J'ai viré les " _" qui m'énervent...
A+