Aide sur un planning

Bonjour à tous et bonne année

Je viens vers vous car je rencontre un problème concernant un fichier excel que je souhaite mettre en forme.

ce fichier est un fichier de planning de conducteurs de bus qui sort à l'état brut.

j'ai réussi grâce à l'une de vos macro à créer différents onglets en fonction de la colonne des noms, maintenant j'aimerai reporter les données de chaque nom sur son onglet respectif et la c'est du chinois pour moi

si l'un d'entre vous peut me venir en aide ce serait vraiment trés gentil.

Merci d'avance et encore meilleurs voeux

pascal

ps en piéce jointe le fichier avec en exemple ce que j'aimerai obtenir pour le conducteur 1

Bonsoir Pascal,

Une proposition de code à ajouter à ton excel :

Sub splitAgent()
    Dim oSheetPrincipal As Worksheet, oSheet As Worksheet
    Dim oCellAgent As Range, oRowDates As Range, oColAgents As Range, oRange As Range
    Dim iIncrement As Integer, lRow As Long

    Set oSheetPrincipal = ThisWorkbook.Worksheets("Feuil1")
    Set oRowDates = oSheetPrincipal.UsedRange.Rows(1)
    Set oColAgents = oSheetPrincipal.UsedRange.Columns(1)

    For Each oCellAgent In oColAgents.Cells
        If IsNumeric(oCellAgent.Value) Then
            Set oSheet = ThisWorkbook.Worksheets(Trim(CStr(oCellAgent.Value)))
            'On supprime les données de la feuille agent s'il y en a
            oSheet.UsedRange.EntireRow.Delete

            lRow = 1
            iIncrement = 2
            For iIncrement = 2 To oRowDates.Columns.Count Step 7
                'Recopie des dates d'une semaine
                Set oRange = oRowDates.Range(oRowDates.Cells(1, iIncrement), oRowDates.Cells(1, iIncrement + 6))
                oRange.Copy oSheet.Cells(lRow, 2)
                'Recopie des données de la semaine
                lRow = lRow + 1
                Set oRange = oSheetPrincipal.Range(oSheetPrincipal.Cells(oCellAgent.Row, iIncrement), oSheetPrincipal.Cells(oCellAgent.Row, iIncrement + 6))
                oRange.Copy oSheet.Cells(lRow, 2)
                lRow = lRow + 2
            Next
        End If
    Next

    'On fait le ménage
    Set oColAgents = Nothing
    Set oRowDates = Nothing
    Set oSheet = Nothing
    Set oSheetPrincipal = Nothing

    MsgBox "Ventilation des agents terminée!"
End Sub

Bonsoir Gérard

Je vais essayer et réveils vers vous (toi) , merci d avance en tout cas d avoir pris le temps de regarder

À tout à lheure

Pascal

Re bonsoir Gerard

tout d'abord un grand merci car cela fonctionne parfaitement, j'ai juste une petite requête , j'avais mis des chiffres en lieu et place des noms des conducteurs (question de CNIl lol), est il possible de faire une modification qui en lieu et place de 1,2,3 ect.. je puisse mettre le nom du conducteur à la place ?

quoiqu'il en soit si cela n'est pas possible , j'essaierai de me débrouiller manuellement

Encore mille mercis et bonne soirée

pascal

Oui, Pascal, tu peux remplacer les chiffres par des noms d’agent(attention à la longueurdu nom) , supprimer tous les volets « Agents » , refaire tourner ta macro qui crée les volets sur les noms d’agents et refaire tourner la macro de ventilation agents.

Dis-moi si tu recontres une difficulté.

Re bonsoir Gérard ,

J ai refais tourné la macro, j'ai bien les onglets avec le nom de chaque agents mais lorsque je lance la seconde macro (celle de remplissage) rien de ne se passe si ce n'est le message de fin

je t'ai joins le fichier peut être ai je oublier un parametres ?

Bonjour Gerard et bonjour à tous

Désolé je me suis endormi et n'ai pas vu si tu avais répondu à mon dernier message

Je vois que pas encore mais en tout cas merci de ton temps

à toute à l'heure

pascal

Pascal,

Je te retourne ton classeur avec la macro "splitAgent" modifiée de la façon suivante :

- Le nom d'un onglet EXCEL ne pouvant excéder 31 caractères on récupère les 31 premiers caractères du nom (actuellement dans ton fichier, ce cas ne se présent pas mais sait-on jamais...) et si l'onglet n'existe pas encore, on le crée (tu n'as plus besoin d'exécuter la macro "Creation").

-J'ai enlevé le contrôle sur le numéricité du nom d'onglet.

Bonjour Gerard

Tout d'abord une nouvelle fois merci, j'essaye de la relancer pour voir si elle fonctionne bien,

Pour ma connaissance personnelle peux tu m'expliquer si tu en as le temps et brievement pourquoi lorsque c'etit numérique cela fonctionnait et en alphanumérique pas

Encore un grand merci pour ton aide maintenant je vais essayer de décortiquer pour essayer de comprendre

Encore MERCIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIIII

Dans le code initial, je faisais un test pour ne prendre en compte que les feuilles avec un nom en numérique. Ceci pour éviter de prendre les feuilles "Feuil1" et "Agent" dans le collection de feuilles du classeur.

Rechercher des sujets similaires à "aide planning"