Bonjour,
Je veux bien vous croire mais, le code d'origine tient compte des valeurs de la colonne A, si elle est vide , aucune donnée ne remontera, par contre si elle est remplie, les données sont bien rapatriées. Exemple avec la vidéo, ci-dessous, dans un premier temps la colonne A de lal feuille "Réglage" est vide, après lancement de la macro, rien ne se passe, puis dans un second temps, elle est remplie avec une valeur incrémentée, après lancement de la macro , les valeurs sont importées dans la feuille "Etats de Service".
Votre code réorganisé:
Sub Mise_en_Forme_Colonnes_AB()
Dim f1 As Worksheet, f2 As Worksheet
Dim Trouve As Long, i As Long, NbCar As Long, DerLig_f2 As Long
Application.ScreenUpdating = False
Set f1 = Sheets("Etats de Service")
Set f2 = Sheets("Réglage")
With f1.Columns("A:B").Font
.Name = "Arial"
.FontStyle = "Normal"
.Size = 10
.Bold = False
.ThemeColor = xlThemeColorLight1
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
DerLig_f2 = f2.Range("A" & Rows.Count).End(xlUp).Row
Range(f1.Cells(2, "A"), f1.Cells(DerLig_f2, "A")).FormulaR1C1 = "=IF(ISNUMBER(VLOOKUP(" & f2.Name & "!RC1," & f2.Name & "!C6:C7,1,FALSE)),VLOOKUP(" & f2.Name & "!RC1," & f2.Name & "!C6:C7,2,FALSE),"""")"
Range(f1.Cells(2, "B"), f1.Cells(DerLig_f2, "B")).FormulaR1C1 = "=IF(ISNUMBER(VLOOKUP(" & f2.Name & "!RC1," & f2.Name & "!C6:C7,1,FALSE)),VLOOKUP(" & f2.Name & "!RC1," & f2.Name & "!C6:C8,3,FALSE),"""")"
Range(f1.Cells(2, "B"), f1.Cells(DerLig_f2, "A")).Value = Range(f1.Cells(2, "A"), f1.Cells(DerLig_f2, "B")).Value
For i = 2 To DerLig_f2
Trouve = InStr(1, f1.Cells(i, "A"), "er service")
NbCar = 2
If Trouve = 0 Then
Trouve = InStr(1, f1.Cells(i, "A"), "ème service")
NbCar = 3
End If
f1.Cells(i, "A").Characters(Start:=Trouve, Length:=NbCar).Font.Superscript = True
Next i
f1.Columns(2).Font.Bold = False
For i = 2 To DerLig_f2
PosDerRetCar = InStrRev(f1.Cells(i, "B"), Chr(10), -1) 'Position du dernier renvoi à la ligne
f1.Cells(i, "B").Characters(Start:=1, Length:=PosDerRetCar - 1).Font.Bold = True
Next i
End Sub
Cdlt