Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

edferlic

XLDnaute Nouveau
Bonjour à tous,
j'ai besoin une nouvelle fois de votre aide.
J'ai besoin de faire un planning sur Excel suite à une extraction d'une application.
J'ai plusieurs problématiques,
la première est que pour une plage horaire d'une seule personne j'ai deux lignes (première ligne avant la pause et la seconde après la pause).
La seconde est que sur l'extraction, sur la colonne horaire je n'ai pas que des heures mais aussi des caractères.
J'ai conscience que ce n'est pas forcément claire, c'est pour cela que j'ai mis sur le fichier une partie de l'extraction brute et une partie ce que j'aimerai avoir pour travailler dessus.
Merci pour votre aide et vos retours.
 

Pièces jointes

Salut, voici une suggestion:

VB:
Sub Horaires()

    Dim ws As Worksheet
    Dim rng As Range
    Dim i As Long, lastRow As Long, firstRow As Long
    Dim startTime As String, endTime As String, breakTime As String
    Dim employeeName As String
   
    Set ws = ThisWorkbook.Sheets("Feuil1")
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row ' Dernière ligne en colonne A
    firstRow = lastRow + 3
   
   Application.ScreenUpdating = False

    'Entêtes horaires
    ws.Cells(firstRow, "C").Value = "Horaires Début"
    ws.Cells(firstRow, "D").Value = "Horaires Fin"
    ws.Cells(firstRow, "E").Value = "Pauses"

    ' Commence à la ligne 8 et saute une ligne à chaque fois
    ' pour passer à l'employé suivant
    For i = 8 To lastRow Step 2
        employeeName = ws.Cells(i, "A").Value ' Nom de l'employé
        startTime = Left(ws.Cells(i, "C").Value, 5) ' Heure de début
        breakTime = Mid(ws.Cells(i, "C").Value, 7, 5) ' Heure de pause
        endTime = Mid(ws.Cells(i + 1, "C").Value, 7, 5) ' Heure de fin
       
        ' Écrit les données horaires
        firstRow = firstRow + 1
        ws.Cells(firstRow, "A").Value = employeeName
        ws.Cells(firstRow, "C").Value = startTime
        ws.Cells(firstRow, "D").Value = endTime
        ws.Cells(firstRow, "E").Value = breakTime
    Next i

   Application.ScreenUpdating = True
   
End Sub
 
Dernière édition:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
4
Affichages
211
  • Résolu(e)
Microsoft 365 transposer
Réponses
6
Affichages
139
Réponses
17
Affichages
476
Réponses
5
Affichages
186
Réponses
7
Affichages
980
Réponses
0
Affichages
128
Réponses
6
Affichages
280
Retour