Bonjour,
Avec l’aide d’internet et quelques heures à comprendre le rouage, j’ai fait une fonction pour exporter un fichier XSL en ICS pour mon système de calendrier.
Malheureusement, je ne comprend pas l’erreur d’exécution 9 « Indice n’appartient pas à la sélection ».
La ligne d’erreur en en jaune sur l’image ci-joint:
Ci-dessous le script:
Function deux(tps)
deux = Right(« 00 » & tps, 2)
End Function
Sub RDV_ICS()
Dim ICS As String
ligne = ActiveCell.Row
Sheets(« iCal »).Range(« A » & ligne).Select
Dt = Split(ActiveCell.Offset(0, 1).Value, « / ») 'Date du RDV. (Split et « / ») sert à séparer les valeurs
LPEC = ActiveCell.Offset(0, 2).Value 'Lieu PEC
HPEC = ActiveCell.Offset(0, 3).Value 'Heure PEC
CIV = ActiveCell.Offset(0, 4).Value 'Civilité
NP = ActiveCell.Offset(0, 5).Value 'Nom et prénom
Note = ActiveCell.Offset(0, 6).Value 'Note ou remarque avec autre informations utiles
Titre = ActiveCell.Offset(0, 7).Value 'Title ou Summary est un petit résumé du rdv
fichier = ThisWorkbook.Path & « » & « calendrier.ics » 'Le chemin d’enregistrement et le nom à donner
DTSTART = Dt(2) & Dt(1) & Dt(0) & « T » & deux(Hour(HPEC)) & deux(Minute(HPEC)) & « 00 » 'Date et heure de début du PEC
DTEND = Dt(2) & Dt(1) & Dt(0) & « T » & deux(Hour(HPEC)) & deux(Minute(HPEC)) & « 00 » 'Date et heure du transprot (prendre en compte l’heure du RDV)
Set f = CreateObject("ADODB.Stream") 'Le flux d'enregistrement des données
With f
.Charset = "utf-8" 'Permet de prendre les caractères comme les "é,à, etc."
.Open 'Ouverture du flux
.WritText "BEGIN:VCALENDAR" & vbCrLf 'Début de la structure. (vbCrlf) est une fonctione de retour à la ligne
.WritText "VERSION:2.0" & vbCrLf 'La version
.WritText "PRODID:-//PARVESH.C//FR" & vbCrLf 'Par quel logiciel ou personne ça été créé
.WritText "BEGIN:VEVENT" & vbCrLf 'Début des événements
.WritText "DTSTART" & DTSTART & vbCrLf 'Date de l'événement
.WritText "DTEND" & DTEND & vbCrLf 'Date de fin de l'événement
.WritText "SUMMARY" & Dt & "" & Titre & vbCrLf 'Titre de l'événement avec ajout de la date
.WritText "DESCRIPTION" & Note & vbCrLf 'Information compémentaire des remarques ou notes
.WritText "LOCATION" & LPEC & vbCrLf 'Lieu, dans ce cas c'est le lieu de PEC
.WritText "END:VEVENT" & vbCrLf 'Fin des événements
.WritText "END:VCALENDAR" & vbCrLf
.WritText "End:CALENDAR" 'Fin de la structure
.SaveToFile ICS, 2 'Sauvegarde du fichier
.Close 'Fermeture du flux
End With
End Sub
Avez-vous une idée ?
Merci d’avance pour votre aide.