Microsoft 365 Incompatibilité de type

PORCHER

XLDnaute Occasionnel
Bonjour à tous,
Problème de Target dans un tableau structurés.
Ligne If Target.Value = "þ" Then

VB:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim lo As ListObject, lr As ListRow, lRowInTable As Long
 
     If Target.Column = 10 And Target.Count = 1 And Target.Row > 8 Then
        Target = IIf(Target = "þ", "o", "þ")
    End If
  
     If Not ActiveCell.ListObject Is Nothing Then
       lRowInTable = ActiveCell.Row
      [COLOR=rgb(0, 0, 0)] If Target.Value = "þ" Then[/COLOR]
                Range("A" & lRowInTable & ":" & "H" & lRowInTable).Font.Color = RGB(142, 142, 142)
                Range("C" & lRowInTable) = Format(Date, "ddd d mmm")
            Else
                Range("A" & lRowInTable).Font.ColorIndex = 1
                Range("C" & lRowInTable) = ""
            End If
        End If
End Sub
Merci pour votre aide.
 

Dranreb

XLDnaute Barbatruc
Bonjour.
1ère possibilité : Target représente une plage de plusieurs cellules. Dans ce cas sa Value est un tableau dynamique qui ne peut être comparé à une donnée élémentaire. Solution: comparer Target(1, 1).Value.
Autre possibilité: Target contient une valeur d'erreur. Peut se détecter par VarType(Target(1, 1).Value) = vbError
Vous pourriez avoir intérêt à remplacer le tout par Select Case VarType(Target.Value) et prévoir au moins les Case vbArray + vbVariant et Case vbError
 

Discussions similaires

Statistiques des forums

Discussions
312 964
Messages
2 094 010
Membres
105 912
dernier inscrit
willou3869