Horaire scolaire.xls --> .csv (+quest. macro !)

Bonjour a tous,

après quelques heures de recherches sur le net, je décide de me tourner vers un forum spécialiser car je ne trouve réponse a mes questions nulle part.

J'ai cependant appris pas mal de chose.... Je m'explique

Je reçois régulièrement un horaire de l'école sous format BRUT.

J'aimerais, importer cet horaire sur mes appareils iOS et mon Mac donc, via l'application calendrier d'Apple, iCal.

Etant dans le groupe Be en BAC 1 et déjà dispensé de quelques cours, a l'école, je filtre mon horaire.

j'ai cru comprendre qu'il fallait transformer ce fichier .xls en .csv , l'importer dans Google calendar, et ensuite récupérer l'agenda google sur ses appareils iOS et Mac

(question intermédiaire : est il possible de supprimer l'étape Google calendar et directement passer a iCal d'Apple (ou iCloud??) ?)

Je rencontre néant moins plusieurs problème ...

Tout d'abord, l'heure des cours: le format envoyé par l'école est le suivant -> une colonne "heure" avec les valeurs "xxhxx - xxhxx" ou

est il possible de créer une macro, transformant cette unique colonne en 2 colonnes ou les valeurs "xxhxx" deviennent xx:xx et sont chacune dans 2 colonnes différentes ? (heure de début et heure de fin)

De plus, j'ai quand meme réussi a importer un fichier .csv (écrit manuellement et d'une seule ligne pour un test) dans google agenda.

Google agenda ne prends en compte que les virgules et non les point virgule (j'ai donc du modifier tout les point virgules par des virgules) OR ma version d'excel sur mon mac (2011, 10.3.8 ) ne me permet que de faire des fichiers .csv en point virgules

Donc, pour récapituler ; 2 questions

  • la macro transformant l'unique colonne heure en 2 colonnes séparées et modifiant le format xxhxx par xx:xx
  • la transformation d'un fichier .xls en .csv (séparation par virgules) à la place de .csv (séparation par point virgules)

Merci d'avance à tout ceux qui me liront !

Bonsoir,

une proposition de macro sur base de ce que j'ai compris. Comme tu ne nous as pas dit ce que devait contenir le fichier csv, j'y ai tout mis.

Sub genagendacsv()
    Dim hor As Variant
' nom du fichier csv à créer
    Open "e:\agenda.csv" For Output As #1
    ' on travaille avec la feuille nommée horaire
    With Worksheets("horaire")
        ' dernière ligne de l'horaire
        dl = .Range("b" & Rows.Count).End(xlUp).Row
        'on ajoute 2 colonnes et leur entête
        .Cells(1, 9) = "Heure debut"
        .Cells(1, 10) = "Heure fin"
        ' fc contient la liste des cellules visibles de A (après filtrage)
        Set fc = .Range("A1:a" & dl).SpecialCells(xlCellTypeVisible)
        ' pour chaque cellule visible de la colonne A
        For Each c In fc
            ' i numero de ligne de la cellule
            i = c.Row
            ' r= cellule en colonne 7 sur la ligne i
            r = .Cells(i, 7)
            ' si r contient quelque chose
            If r <> "" Then
                If i > 1 Then ' et que ce n'est pas la ligne titre
                    r = Replace(UCase(r), "H", ":") ' replacer "h" par ":"
                    hor = Split(r, "-") ' couper la cellule en 2
                    .Cells(i, 9) = hor(0) ' et mettre première partie en colonne 9
                    .Cells(i, 10) = hor(1) ' et Deuxième partie en colonne 10
                End If
                ' on écrit la ligne dans le fichier csv
                sep = ""
                For j = 1 To 10
                    If j > 8 Then ' format special pour les heures de début et de fin
                        Print #1, sep & Format(.Cells(i, j), "hh:mm");
                    Else
                        Print #1, sep & .Cells(i, j);
                    End If
                    If sep = "" Then sep = ","
                Next j
                Print #1, ""
            End If
        Next
    End With
    Close #1
End Sub
Rechercher des sujets similaires à "horaire scolaire xls csv quest macro"