C/Message d'erreur dans code VBA
Bonjour,
j'ai fait un calendrier (avec l'aide d'un membre du forum) de RDV avec Microsoft 365. Cela a bien fonctionné. J'ai copié le fichier dans Excel 2010 et le calendrier ne fonctionne pas.
En lançant le programme, un message apparaît : "Erreur compilation - Tableau attendu" ==> M12 = (lft(Application.Caller, 1) = "_")
Et pourtant lft est déclaré.
Sub Clic_Mois (Optional x As Byte)
Dim M12 As Boolean, Tp0 As Single, i As Byte, lft As Single, NomSh As String
Application.ScreenUpdating = False
With ActiveSheet
Tp0 = .Rows(7).Top - 0.5
lft = .Columns(2).left + 2
For i = 1 To 12
With .Shapes("_" & i)
.Height = 20
.Top = Tp0 - .Height
.left = lft
.Width = 50
.Fill.ForeColor.RGB = &H7F7F7F
.Fill.Solid
.TextFrame2.TextRange.Characters.Font.Fill.ForeColor.RGB = &HF0F0F0
lft = lft + .Width + 1.5
End With
Next i
M12 = (lft(Application.Caller, 1) = "_")
If M12 Then NomSh = Application.Caller Else NomSh = "_" & .Range("J6").Value
With .Shapes(NomSh)
.Height = 30
.Top = Tp0 - .Height
.Fill.ForeColor.RGB = &HA7D5B5
.Fill.BackColor.ObjectThemeColor = msoThemeColorAccent6
.Fill.BackColor.TintAndShade = 0.2
.Fill.TwoColorGradient msoGradientHorizontal, 1
.TextFrame2.TextRange.Characters.Font.Fill.ForeColor.RGB = 0
End With
If M12 Then .Range("J6").Value = Replace(Application.Caller, "_", "")
End With
Application.ScreenUpdating = True
Graphe_Planning
End SubQuelqu'un pourra-t-il m'éclaircir sur ce dysfonctionnement, svp?
Juju
Bonjour,
La variable M12 est déclarée booléenne et le message d'erreur indique que le résultat de lft(Application.Caller, 1) est une variable tableau.
Essayez de déclarer M12 en variant. Nb: Le nom de la variable n'est pas heureux, car elle correspond à une référence de cellule.
Sinon, regardez ce que donne les valeurs dans la fenêtre exécution (Ctrl-G) avec des Debug.print avant la ligne qui bugue.
Debug.print lft(Application.Caller, 1)
Debug.print Application.Caller
M12 = (lft(Application.Caller, 1) = "_")
If M12 Then NomSh = Application.Caller Else NomSh = "_" & .Range("J6").ValueBonjour Eric Kergresse,
merci pour la réponse mais après test, sans succès.
Je vais continuer pour trouver la solution.
@+
Juju