Re H2so4,
Si je mets
For Each x In Range("N6:N" & derniereLigne)
Alors j'ai l'erreur d'exécution '1004': Erreur définie par l'application ou par l'objet.
M12,
Merci pour l'info, je l'ai fait.
En fait, j'ai l'impression que le code est trop "lourd" ... quand je le lance, Excel mouline puis plante ...
Du coup j'ai pensé quand le découpant cela l'aiderai ..., ce qui donne ceci :
dans la feuille :
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Rng As Range
If Target.Address = "$P$2" Then
Call Module2.Minuscule
Call Module2.minuscule2
Call Module1.Recherche
End If
End Sub
les 3 modules :
Sub Minuscule()
Dim cellule As Range
derniereLigne = Cells(Rows.Count, "N").End(xlUp).Row
Application.ScreenUpdating = False
' Version 1
' For Each x In Range("N6:N" & derniereLigne)
' x.Value = LCase(x.Value)
' Next
'Version 2
For Each cellule In Range("N6", "N" & derniereLigne)
cellule = LCase(cellule)
Next
Application.ScreenUpdating = True
End Sub
Sub minuscule2()
Dim cellule As Range
' derniereLigne = Cells(Rows.Count, "N").End(xlUp).Row + 1
Application.ScreenUpdating = False
' Version 1
For Each y In Range("P2")
y.Value = LCase(y.Value)
Next
' Version 2
'For Each cellule In Range("P2")
'cellule = LCase(cellule)
'Next
Application.ScreenUpdating = True
End Sub
Sub Recherche()
Dim Var As String, valeur As String
Dim i As Integer
With ActiveSheet
For i = 6 To .Range("N" & Rows.Count).End(xlUp).Row
If Cells(i, "N") Like "*" & "*" & Cells(2, "P") & "*" & "*" Then
If valeur = "" Then
valeur = "''" & Cells(2, "P") & "''" & " a été trouvé sur la ligne : " & vbCrLf & vbCrLf & i
Else:
valeur = valeur & vbCrLf & i
End If
End If
Next i
End With
If valeur <> vbNullString Then MsgBox valeur, , "Résultat de la recherche"
If valeur = vbNullString Then
MsgBox ("''" & Cells(2, "P") & "''" & " introuvable ou incorrect"), , "Résultat de la recherche"
End If
End Sub
Si je ne lance que le premier module, pas de souci ça fonctionne mais l'appel des 3 modules me fait planter le fichier.