/ / Excel 2003: les objets calendrier / VBA ne fonctionnent pas lorsque vous cliquez sur les cellules fusionnées - excel, vba, excel-vba, fusion, calendrier

Excel 2003: les objets calendrier / VBA ne fonctionnent pas lorsque vous cliquez sur des cellules fusionnées - excel, vba, excel-vba, fusion, calendrier

J'ai un petit problème pour obtenir le calendrierj’ai inséré dans ma feuille Excel pour fonctionner. J'ai un objet calendrier identique, avec un code identique (à l’exception de la référence de colonne) sur une autre feuille qui fonctionne parfaitement. La seule différence est que dans la feuille A (la feuille les cellules que je sélectionne (là où je veux voir apparaître l'objet calendrier) sont fusionnées et centrées. Cela semble causer un problème. Lorsque je règle la référence dans le code sur l'intégralité de la colonne L, par exemple, l'objet calendrier fonctionnera pour toutes les cellules de cette colonne qui n'ont pas été fusionnées ni centrées. (Pour être clair, les cellules ne sont fusionnées que dans la colonne et pas sur les lignes). Quelqu'un at-il une idée de la façon dont je peux résoudre ce problème? Je dois faire fusionner ces cellules, il n’ya pas moyen de contourner cela. Si quelqu'un a des suggestions à faire, je les apprécie vraiment, cela m’a rendu fou toute la journée! Merci d'avance.

Le code (pas le mien) est en dessous;

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Cells.Count > 1 Then Exit Sub
"Change this to your range of dates
If Not Intersect(Target, Range("L:L")) Is Nothing Then
Calendar2.Top = Target.Top + Target.Height
Calendar2.Left = Target.Left + Target.Width / 2 - Calendar2.Width / 2
Calendar2.Visible = True
Calendar2.Value = Now
ElseIf Calendar2.Visible Then Calendar2.Visible = False
End If
End Sub
Private Sub Calendar2_Click()
ActiveCell.Value = (Calendar2.Value)
ActiveCell.NumberFormat = "dd mmm yy"
End Sub

Réponses:

1 pour la réponse № 1

Si vous sélectionnez une plage de cellules fusionnées, Target.Cells.Count est toujours supérieur à 1. Il y a plusieurs cellules, même si vous ne pouvez pas les "sélectionner individuellement".

Si vous avez uniquement besoin d'autoriser la sélection de cellules uniques ou de plages fusionnées, procédez comme suit:

If Target.Address <> Target.Cells(1, 1).MergeArea.Address Then Exit Sub

Cela fonctionnera avec des cellules simples et avec des cellules fusionnées.