Fusion cellule VBA
onjour, j'ai réaliser un code pour attribuer des time values à des cellules. Le problème est que je me dois de fusionner ces cellules par groupe de quartes pour la mise en forme de ce fait j'arrive plus à retrouver les time values que j'ai attribuer à ces cellules. Ci joint le code en question.
Sub AssignHiddenTimeValues()
' Definition de la plage cible
Dim targetRange As Range
Set targetRange = Range("C12:CT12")
' Définition des valeurs de temps (en utilisant un tableau unidimensionnel)
Dim timeValues() As Variant
timeValues = Array(TimeValue("04:00"), TimeValue("04:15"), TimeValue("04:30"), TimeValue("04:45"), _
TimeValue("05:00"), TimeValue("05:15"), TimeValue("05:30"), TimeValue("05:45"), _
TimeValue("06:00"), TimeValue("06:15"), TimeValue("06:30"), TimeValue("06:45"), _
TimeValue("07:00"), TimeValue("07:15"), TimeValue("07:30"), TimeValue("07:45"), _
TimeValue("08:00"), TimeValue("08:15"), TimeValue("08:30"), TimeValue("08:45"), _
TimeValue("09:00"), TimeValue("09:15"), TimeValue("09:30"), TimeValue("09:45"), _
TimeValue("10:00"), TimeValue("10:15"), TimeValue("10:30"), TimeValue("10:45"), _
TimeValue("11:00"), TimeValue("11:15"), TimeValue("11:30"), TimeValue("11:45"), _
TimeValue("12:00"), TimeValue("12:15"), TimeValue("12:30"), TimeValue("12:45"), _
TimeValue("13:00"), TimeValue("13:15"), TimeValue("13:30"), TimeValue("13:45"), _
TimeValue("14:00"), TimeValue("14:15"), TimeValue("14:30"), TimeValue("14:45"), _
TimeValue("15:00"), TimeValue("15:15"), TimeValue("15:30"), TimeValue("15:45"), _
TimeValue("16:00"), TimeValue("16:15"), TimeValue("16:30"), TimeValue("16:45"), _
TimeValue("17:00"), TimeValue("17:15"), TimeValue("17:30"), TimeValue("17:45"), _
TimeValue("18:00"), TimeValue("18:15"), TimeValue("18:30"), TimeValue("18:45"), _
TimeValue("19:00"), TimeValue("19:15"), TimeValue("19:30"), TimeValue("19:45"), _
TimeValue("20:00"), TimeValue("20:15"), TimeValue("20:30"), TimeValue("20:45"), _
TimeValue("21:00"), TimeValue("21:15"), TimeValue("21:30"), TimeValue("21:45"), _
TimeValue("22:00"), TimeValue("22:15"), TimeValue("22:30"), TimeValue("22:45"), _
TimeValue("23:00"), TimeValue("23:15"), TimeValue("23:30"), TimeValue("23:45"), _
TimeValue("00:00"), TimeValue("00:15"), TimeValue("00:30"), TimeValue("00:45"), _
TimeValue("01:00"), TimeValue("01:15"), TimeValue("01:30"), TimeValue("01:45"), _
TimeValue("02:00"), TimeValue("02:15"), TimeValue("02:30"), TimeValue("02:45"), _
TimeValue("03:00"), TimeValue("03:15"), TimeValue("03:30"), TimeValue("03:45"))
' Assignation des valeurs de temps à la plage cible
Dim i As Integer
For i = 0 To UBound(timeValues)
targetRange.Cells(1, i + 1).Value = timeValues(i)
Next i
' Format des cellules comme temps (facultatif)
targetRange.NumberFormat = "hh:mm"
End Sub
Est ce que ce serait possible d'avoir votre aide ?
bonjour Fatou Kine BA
je crains que je n'ai pas bien compris la question ....
Sub AssignHiddenTimeValues()
' Definition de la plage cible
Dim targetRange As Range
Set targetRange = Range("C12:CT12")
' Définition des valeurs de temps (en utilisant un tableau unidimensionnel)
Dim timeValues() As Variant
timeValues = Array(TimeValue("04:00"), TimeValue("04:15"), TimeValue("04:30"), TimeValue("04:45"), _
TimeValue("05:00"), TimeValue("05:15"), TimeValue("05:30"), TimeValue("05:45"), _
TimeValue("06:00"), TimeValue("06:15"), TimeValue("06:30"), TimeValue("06:45"), _
TimeValue("07:00"), TimeValue("07:15"), TimeValue("07:30"), TimeValue("07:45"), _
TimeValue("08:00"), TimeValue("08:15"), TimeValue("08:30"), TimeValue("08:45"), _
TimeValue("09:00"), TimeValue("09:15"), TimeValue("09:30"), TimeValue("09:45"), _
TimeValue("10:00"), TimeValue("10:15"), TimeValue("10:30"), TimeValue("10:45"), _
TimeValue("11:00"), TimeValue("11:15"), TimeValue("11:30"), TimeValue("11:45"), _
TimeValue("12:00"), TimeValue("12:15"), TimeValue("12:30"), TimeValue("12:45"), _
TimeValue("13:00"), TimeValue("13:15"), TimeValue("13:30"), TimeValue("13:45"), _
TimeValue("14:00"), TimeValue("14:15"), TimeValue("14:30"), TimeValue("14:45"), _
TimeValue("15:00"), TimeValue("15:15"), TimeValue("15:30"), TimeValue("15:45"), _
TimeValue("16:00"), TimeValue("16:15"), TimeValue("16:30"), TimeValue("16:45"), _
TimeValue("17:00"), TimeValue("17:15"), TimeValue("17:30"), TimeValue("17:45"), _
TimeValue("18:00"), TimeValue("18:15"), TimeValue("18:30"), TimeValue("18:45"), _
TimeValue("19:00"), TimeValue("19:15"), TimeValue("19:30"), TimeValue("19:45"), _
TimeValue("20:00"), TimeValue("20:15"), TimeValue("20:30"), TimeValue("20:45"), _
TimeValue("21:00"), TimeValue("21:15"), TimeValue("21:30"), TimeValue("21:45"), _
TimeValue("22:00"), TimeValue("22:15"), TimeValue("22:30"), TimeValue("22:45"), _
TimeValue("23:00"), TimeValue("23:15"), TimeValue("23:30"), TimeValue("23:45"), _
TimeValue("00:00"), TimeValue("00:15"), TimeValue("00:30"), TimeValue("00:45"), _
TimeValue("01:00"), TimeValue("01:15"), TimeValue("01:30"), TimeValue("01:45"), _
TimeValue("02:00"), TimeValue("02:15"), TimeValue("02:30"), TimeValue("02:45"), _
TimeValue("03:00"), TimeValue("03:15"), TimeValue("03:30"), TimeValue("03:45"))
' Assignation des valeurs de temps à la plage cible
With targetRange
.UnMerge
.Value = timeValues
.NumberFormat = "hh:mm"
Application.DisplayAlerts = False
For i = 1 To .Columns.Count Step 4
.Cells(1, i).Resize(, 4).Merge
Next
Application.DisplayAlerts = True
End With
End Sub
Il me semble que le code de BsAlv répond à la question.
Pour la valeur de D12 c'est normal, lorsque les cellules sont fusionnées la valeur affichée se trouve dans la cellule la plus a gauche, donc pour D12 c'est en réalité C12 qu'il faut regarder. Idem pour N12 c'est K12 qui contient la valeur "06:00".
Puisque toutes vos cellules font 4 colonnes de large, ce ne devrait pas etre trop difficile de corriger vos formules.
Merci le problème est résolu