Formule tranche d'horaire
Bonjour,
Je rencontre un problème sur Excel, Je vais essayer de vous l'expliquer clairement.
J'ai plusieurs ligne d'horaire comme cella :
2:8:00-10:00,2:11:30-14:00,2:17:30-21:30,3:8:00-10:00,3:11:30-14:00,3:17:30-21:30,4:8:00-10:00,4:11:30-14:00,4:17:30-21:30,5:8:00-10:00,5:11:30-14:00,5:17:30-21:30,6:8:00-10:00,6:11:30-14:00,6:17:30-21:30,7:8:00-10:00,7:11:30-14:00,7:17:30-21:30,1:8:00-10:00,1:11:30-14:00,1:17:30-21:30
Le 2: représente le Lundi, le 3: représente le mardi ... Le dimanche est représenté par 7:
J'aurai aimé savoir si il y a une formule ou un moyen rapide de réunir les tranches d'horaires.
Ex : 2: 8:00-10:00,11:30-14:00,17:30-21:30 => Sur une cellule
3: 8:00-10:00,11:30-14:00,17:30-21:30 => Sur une cellule
Merci pour votre aide
Vous trouverez ci joint le fichier complet.
Bonsoir,
si lundi vaut 2 alors dimanche vaut 1 ou bien il vous manque une journée...
@ bientôt
LouReeD
Re bonsoir !
Ci dessous un code VBA :
Sub Extract()
Dim ligne, tablo, Jour, lig, i
lig = 2
For ligne = 2 To 288
tablo = Split(Feuil1.Cells(ligne, 1), ",")
With Feuil2
For i = 0 To UBound(tablo)
Jour = Left(tablo(i), 1)
Select Case Jour
Case 1
.Cells(lig, 1).Value = .Cells(lig, 1).Value & Mid(tablo(i), 3, 99) & ","
Case 2
.Cells(lig, 2).Value = .Cells(lig, 2).Value & Mid(tablo(i), 3, 99) & ","
Case 3
.Cells(lig, 3).Value = .Cells(lig, 3).Value & Mid(tablo(i), 3, 99) & ","
Case 4
.Cells(lig, 4).Value = .Cells(lig, 4).Value & Mid(tablo(i), 3, 99) & ","
Case 5
.Cells(lig, 5).Value = .Cells(lig, 5).Value & Mid(tablo(i), 3, 99) & ","
Case 6
.Cells(lig, 6).Value = .Cells(lig, 6).Value & Mid(tablo(i), 3, 99) & ","
Case 7
.Cells(lig, 7).Value = .Cells(lig, 7).Value & Mid(tablo(i), 3, 99) & ","
End Select
Next i
' suppression de la dernière virgule
For i = 1 To 7
If .Cells(lig, i).Value <> "" Then
.Cells(lig, i).Value = Left(.Cells(lig, i).Value, Len(.Cells(lig, i).Value) - 1)
.Cells(lig, i).Value = i & ":" & .Cells(lig, i).Value
End If
Next i
End With
lig = lig + 1
Next ligne
End Sub
Le principe :
On commence par créer une Feuil2 pour afficher les résultats sans toucher aux données sources.
On prend les données de la feuille 1 ligne par ligne en récupérant les valeurs des cellules en colonne A.
Cette valeur est "splitée" par le caractère "," c'est lui qui sépare les différents horaires.
On boucle sur ce tableau et on regarde sur chaque index la valeur du premier chiffre (de 1 à 7)
Ensuite avec Select on écrit sur la feuille 2 ce que l'on trouve au bon endroit, à savoir :
si ça commence par un 1 alors en colonne 1 etc etc.
Ensuite on supprime la dernière virgule de construction de ces valeurs et on ajoute le numéro adéquate en tête de valeur.
On passe à la ligne 2 etc...
@ bientôt
LouReeD
avec power query et un TCD (mais j'ai l'impression qu'il y a despetites imperfections dans les données d'entrée, qui menent à des choses bizarres au résultat)
Je n'ai pas remplacé le n° de jour par le nom du jour car je n'ai pas compris (si lundi = 2 dimanche ne peut pas etre =7); mais ca n' pas d'importance pour la représentation en TCD
Bonjour Partoo,
Voici ton fichier modifié avec formules dans la feuille Copie.
J'ai fait les premiers exemples pour Lundi, Mardi et la 1ière ligne de Mercredi.
Faire de même pour toutes les autres colonnes en respectant le principe (juste à modifier les valeurs cherchées).
Bons tests, bonne continuation.