Private Sub Worksheet_Change(ByVal Target As Range)
Dim nouveauNomRepertoire As String
'si ce n'est pas la colonne I qui a été modifiée, quitter la macro
If Target.Column <> 9 Then Exit Sub
'si la cellule de la même ligne, colonne A à le texte rouge, alors
If Range("A" & Target.Row).Font.ColorIndex = 3 Then
'demander la saisie du nouveau "Nom Répertoires" (tant que > à 15 caractères)
Do
nouveauNomRepertoire = Application.InputBox("Saisir un nouveau ""Nom Répertoires"" (15 caractères max.) :", "Saisie", , , , , , 2)
NettoyerString nouveauNomRepertoire
Loop Until Len(nouveauNomRepertoire) <= 15
'saisir la nouvelle valeur en colonne B
Range("B" & Target.Row).Value = nouveauNomRepertoire
End If
End Sub
Sub NettoyerString(leString As String)
Dim interdits, i As Integer
interdits = Array(" ", "é", "è", "ù", "à", "â", "ô", "î", "ï", "ë", "ê")
For i = LBound(interdits) To UBound(interdits)
leString = Replace(leString, interdits(i), vbNullString)
Next i
End Sub