Re-
Si tu souhaite vraiment conserver ton code alors modifie le comme cela, et active le partage du classeur avant d'essayer de modifié ta TextBox :
Private Sub TextBox1_Change()
Application.DisplayAlerts = False
ActiveWorkbook.ExclusiveAccess
Application.ScreenUpdating = False
Range("A2:A1000").Interior.ColorIndex = 2
ActiveWindow.ScrollRow = 9
With Me.ListBox1
.Clear
.ColumnCount = 2
.ColumnWidths = "-1;0"
.Height = 60
.Width = 230
End With
If TextBox1 <> "" Then
For ligne = 2 To 1000
If Cells(ligne, 1) Like "*" & TextBox1 & "*" Then
Cells(ligne, 1).Interior.ColorIndex = 43
ListBox1.AddItem Cells(ligne, 1)
Me.ListBox1.List(Me.ListBox1.ListCount - 1, 1) = ligne
End If
Next
End If
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=ActiveWorkbook.FullName, accessMode:=xlShared
Application.DisplayAlerts = False
End Sub
Mais du coup, à chaque saisie dans ton TextBox, le partage va s'enlever et se remettre, ce qui rend l'exécution du code plutôt longue pour écrire deux ~ trois lettres
Pourquoi ne pas simplement utiliser une Mise en Forme conditionnelle ?
Au moins sa ne plante pas à cause du partage.
Restant à ta dispo