Function RangUnit() As Rangemais comme le nom du mot "fonction" n'est déjà pas le bon, inutile de penser à ce que ça corrige le problème.
Private Sub Worksheet_BeforeRightClick(ByVal Target As Range, Cancel As Boolean) MsgBox UnitsRange.Address End Sub Function UnitsRange() As Range Dim Plage As Range, Cellule As Range, RangeTemp As Range Dim Couleur_de_ref As Integer, Cellule_1 As Integer Dim DebutTemp As Variant Dim FinTemp As Variant Set Plage = Range("A1:A157") Couleur_de_ref = 38 For Each Cellule In Plage.Cells If Cellule.Interior.ColorIndex = 38 Then If DebutTemp = "" Then DebutTemp = Cellule.AddressLocal ElseIf Cellule.Interior.ColorIndex = Cellule_1 Then FinTemp = Cellule.Address ElseIf RangeTemp Is Nothing Then Set RangeTemp = Range(Range(DebutTemp), Range(FinTemp)) MsgBox "La 1ere address: " & RangeTemp.Address DebutTemp = "" FinTemp = "" Else RangeTemp = Union(RangeTemp, Range(DebutTemp, FinTemp)) MsgBox DebutTemp + FinTemp DebutTemp = "" FinTemp = "" End If End If Cellule_1 = Cellule.Interior.ColorIndex 'MsgBox "Debut" & DebutTemp & "Fin" & FinTemp & "cellule-1" & Cellule_1 Next Cellule MsgBox "Le range final:" & RangeTemp.Address Set UnitsRange = RangeTemp Range("H6").Value = RangeTemp.Address End Function
If Not Intersect(Range([B22:B29], [B46:B52]), Target) Is Nothing And Target.Count = 1 Then
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionSi vous pouvez me dire si c'est pas trop mal codé
ElseIf Cellule.Interior.ColorIndex = Cellule_1 Then
Si vous avez des idées pour rendre mon code plus robuste je suis ouvert à toute proposition!