Conflit macro de recherche et macro coloriage cellule active

Vijk

XLDnaute Nouveau
Bonjour,

J'ai une feuille excel avec une macro de recherche par mots clés, je suis en train d'essayer d'ajouter une macro de coloriage de cellule active :

Public Couleur As Integer
Public Adr As String

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Adr <> "" Then
Range(Adr).Interior.ColorIndex = Couleur
If Not Intersect(Target, Range("o:eek:")) Is Nothing Then Exit Sub
End If
Adr = Target.Address
Couleur = Target.Interior.ColorIndex
Target.Interior.ColorIndex = 28
End Sub


J'ai exclu la colonne O de la macro car cela m'affichait une erreur de type "utilisation incorrecte du Null".
Mais, le problème persiste d'une certaine manière car lorsque je sélectionne uniquement (grâce au tri de haut de colonne O) les résultats de ma recherche et que je sélectionne plusieurs cellules d'une autre colonne, la même erreur s'affiche.

Pour info, voilà le code de ma macro de recherche :

Public Sub Recherche()

'annule la procédure si aucun mot de recherche
Mot = Range("r7").Value
If Mot = "" Then
Exit Sub
End If

'réinitialisation colonne H
Columns("o:eek:").Select
Selection.ClearContents

'recherche sur
With Sheets("Base de donnée ").Columns("c:c")
Set c = .Find(Mot, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Offset(0, 12).Value = "x"
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
'recherche sur
With Sheets("Base de donnée ").Columns("h:h")
Set c = .Find(Mot, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Offset(0, 6).Value = "x"
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
'recherche sur
With Sheets("Base de donnée ").Columns("j:j")
Set c = .Find(Mot, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Offset(0, 5).Value = "x"
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With
'recherche sur
With Sheets("Base de donnée ").Columns("k:k")
Set c = .Find(Mot, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Offset(0, 4).Value = "x"
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With

'recherche sur
With Sheets("Base de donnée ").Columns("l:l")
Set c = .Find(Mot, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Offset(0, 3).Value = "x"
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With

'recherche sur
With Sheets("Base de donnée ").Columns("m:m")
Set c = .Find(Mot, LookIn:=xlValues)
If Not c Is Nothing Then
firstAddress = c.Address
Do
c.Offset(0, 2).Value = "x"
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> firstAddress
End If
End With

End Sub

Donc, si quelqu'un a une solution ou une suggestion, je lui serai très reconnaissant !

Merci d'avance !

PS : Lorsque je quitte mon document et que je le réouvre, la dernière cellule sélectionnée avant la fermeture reste colorée définitivement, comment éviter cela ?
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Conflit macro de recherche et macro coloriage cellule active

Bonjour Vijk, bonjour le forum,

J'ai pas approfondi mais peut-être comme ça :

Code:
If Not Intersect(Target, [B][COLOR=red]Columns("o:o")[/COLOR][/B]) Is Nothing Then Exit Sub
 

Discussions similaires

Réponses
12
Affichages
559
Réponses
12
Affichages
567
Réponses
8
Affichages
475
Réponses
4
Affichages
166

Statistiques des forums

Discussions
312 185
Messages
2 086 010
Membres
103 090
dernier inscrit
Createlier