Erreur Macro ligne çi-dessous
Bonjour le forum et bonnes fêtes de Noël
La ligne ci-dessous coince
Merci pour vos éventuelles réponses
Cel.Offset(, -2).Resize(, 2).Font.Strikethrough = True
Totalité macro ci-dessous
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean)
Dim Indice As Integer
Dim Tb, TbCoul, X, TbFont, Label As String, Cel As Range
Dim Ligne As Integer
If Not Intersect(Target, Range("C4:C" & Range("A" & Rows.Count).End(xlUp).Row + 1)) Is Nothing Then
Application.ScreenUpdating = False
Ligne = Range("A" & Rows.Count).End(xlUp).Row
If (Target.Row = Ligne And Range("A" & Ligne) <> "") Or (Target.Row = Ligne + 1 And Range("A" & Ligne + 1) = "") Then
Application.EnableEvents = False
TbFont = Array(5, 1) 'Ces 3 Lignes en commentaire pour ne pas afficher Non
TbCoul = Array(35, 40)
Tb = Array("", "Oui")
Cancel = True
X = UCase(Trim(Target))
If UBound(Filter(Tb, X, compare:=vbTextCompare)) >= 0 Then
Indice = Application.Match(X, Tb, 0) Mod (1 + UBound(Tb))
Label = Tb(Indice)
Set Cel = Target
If Label = "Oui" Then
If Target.Row = 13 Then ' On clicque sur la dernière ligne 12 ou 13
Range("A3:D12").ClearContents
Range("C3:C12").Interior.ColorIndex = 35
Set Cel = Range("C3")
End If
Cel.Offset(, -2).Resize(, 2).Font.Strikethrough = True
Cel.Offset(, 1).Value = Date
Cel.Offset(, -2) = Application.Proper(Format(Date, "dddd dd mmmm yyyy"))
Cel.Offset(, -1).Value = Sh.Name
Else
Cel.Offset(0, -2).Resize(1, 2).Font.Strikethrough = False
Cel.Offset(, -2).Resize(, 4).ClearContents
Cel.Offset(, 1).Interior.ColorIndex = 36
Cel.Offset(, 2).Interior.ColorIndex = 8
Cel.Offset(, -2).Interior.ColorIndex = 36
Cel.Offset(, -1).Interior.ColorIndex = 35
End If
End If
With Cel
.Value = Label
.Interior.ColorIndex = TbCoul(Indice)
.Font.ColorIndex = TbFont(Indice)
End With
Application.EnableEvents = True
End If
ElseIf Target.Address = "$F$1" Then
Cancel = True
UsfChoix.Show 0
End If
Range("A1").Select
End Sub
bonjour,
Tu ne peux pas redimensionner une plage à zéro ligne (ni zéro colonne)
Ecrire :
Cel.Offset(, -2).Resize(1, 2).Font.Strikethrough = True
A+
Salut,
les incompréhensions de VBA...
Application.EnableEvents = False
Range("A8").Offset(, 2).Select ' // Ca c'est glop
Range("A8").Offset(0, 3).Select ' // Ca c'est glop
Range("A8").Resize(, 3).Select ' // Ca c'est glop
Range("A8").Resize(0, 3).Select ' //Ca par contre c'est pas glop
Application.EnableEvents = True
Bonjour galopin01
Ok merci à toi
Bonnes fêtes
Cordialement
Bon sérieusement,
If Label = "Oui" Then
If Target.Row = 13 Then ' On clicque sur la dernière ligne 12 ou 13
Range("A3:D12").ClearContents
Range("C3:C12").Interior.ColorIndex = 35
Set Cel = Range("C3")
End If
Cel.Offset(, -2).Resize(, 2).Font.Strikethrough = True
Cel.Offset(, 1).Value = Date
Cel.Offset(, -2) = Application.Proper(Format(Date, "dddd dd mmmm yyyy"))
Cel.Offset(, -1).Value = Sh.Name
Else
Cel.Offset(0, -2).Resize(1, 2).Font.Strikethrough = False
Cel.Offset(, -2).Resize(, 4).ClearContents
Cel.Offset(, 1).Interior.ColorIndex = 36
Cel.Offset(, 2).Interior.ColorIndex = 8
Cel.Offset(, -2).Interior.ColorIndex = 36
Cel.Offset(, -1).Interior.ColorIndex = 35
End If
je vois que tu définit plusieurs fois Cel
mets un point d'arrêt sur la ligne et vérifie la variable Cel
, tu est peut-être en dehors des limites de ta feuille.
Bonjour JP,
Je me suis bien laissé piéger j'étais resté sur le
Set Cel = Range("C3")
Mais en fait c'est vraisemblablement quand on sort des limites de la feuille que ça plante...
Il reste que cette écriture est piégeuse :
Autant un offset zéro (ou rien) est compréhensible autant un Resize ( ,2) force VBA à une auto conversion. Dans la réalité il considère cette absence d'info comme une absence de modification (et non comme un zéro)
Ainsi il accepte :
Range("A8:A12").Resize(, 3).Select 'on ne resize que les colonnes...
Dans la pratique je considère ce type de prog comme de la "programmation floue" : On ne sait jamais de quoi on parle.
Dans la mesure du possible je m'efforce de ne jamais employer Resize et Offset.
A+
Bonjour le forum
C'était tout simplement que le fichier était protégé.
Quel C$N!!!
Merci à vous
Bon dimanche