1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228
| Private Sub valider_lecture_TXT_Click()
'Declaration des variables
Dim XlApp, XlClasseur
Dim derniere_ligne As Long
'répertoire de stockage du fichier excel temporaire
repertoire_temporaire = "c:\test\"
'Récupération du nom d'utilisateur en cours de session
Userlogin = Environ("USERNAME")
'Chemin complet du fichier excel temporaire
fichier_excel_temp = repertoire_temporaire & "tempTXT-" & Userlogin & ".xlsx"
'Création d'un Excel
Set XlApp = CreateObject("Excel.Application")
'teste si un fichier à bien été selectionné, si aucun selectionné quitte la macro
If fichier_TXT.Value = "" Then
GoTo fin
End If
'Ouverture du classeur
Set XlClasseur = XlApp.Workbooks.Add
'Enregistrement du fichier excel temporaire
XlClasseur.SaveAs (fichier_excel_temp)
'On rend le classeur visible
XlApp.Visible = True
Unload formulaire_TXT
'Conversion du fichier texte extrait de TXT en fichier excel
With XlClasseur.Worksheets("Feuil1").QueryTables.Add(Connection:="TEXT;" & fichier_TXT.Value, Destination:=XlClasseur.Worksheets("Feuil1").Range("$A$1"))
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = 1252
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierDoubleQuote
.TextFileConsecutiveDelimiter = False
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = False
.TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 2, 2, 1, 1, 1, 2, 1, 1, _
1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
.TextFileTrailingMinusNumbers = True
.Refresh BackgroundQuery:=False
End With
XlClasseur.Save
XlClasseur.Worksheets("Feuil2").Delete
XlClasseur.Worksheets("Feuil3").Delete
'Recherche de la dernière ligne du tableau
derniere_ligne = XlClasseur.Worksheets("Feuil1").Range("A" & XlClasseur.Worksheets("Feuil1").Rows.Count).End(xlUp).Row
For i = 2 To derniere_ligne
numero_visite = ""
If XlClasseur.Worksheets("Feuil1").Range("A" & i + 1) <> XlClasseur.Worksheets("Feuil1").Range("A" & i) Then
'If XlClasseur.Worksheets("Feuil1").Range("A" & i - 1) <> XlClasseur.Worksheets("Feuil1").Range("A" & i) Then
numero_visite = XlClasseur.Worksheets("Feuil1").Range("A" & i)
raison_sociale = XlClasseur.Worksheets("Feuil1").Range("C" & i)
departement = XlClasseur.Worksheets("Feuil1").Range("L" & i)
adresse1 = XlClasseur.Worksheets("Feuil1").Range("G" & i)
adresse2 = XlClasseur.Worksheets("Feuil1").Range("H" & i)
code_postal = XlClasseur.Worksheets("Feuil1").Range("I" & i)
commune = XlClasseur.Worksheets("Feuil1").Range("J" & i)
responsable = XlClasseur.Worksheets("Feuil1").Range("M" & i)
telephone1 = XlClasseur.Worksheets("Feuil1").Range("N" & i)
telephone2 = XlClasseur.Worksheets("Feuil1").Range("O" & i)
mail = XlClasseur.Worksheets("Feuil1").Range("Q" & i)
date_debut = XlClasseur.Worksheets("Feuil1").Range("AM" & i)
date_debut = CDate(date_debut)
heure_debut_temp = XlClasseur.Worksheets("Feuil1").Range("AO" & i)
heure_debut_temp = CDbl(heure_debut_temp * 24)
heure_debut_temp = Format(heure_debut_temp, "#.00")
Dim D As Single, Resultat, e
'Pour l'exemple
e = CStr(Round((heure_debut_temp - Int(heure_debut_temp)) / 100 * 60, 2)) & "0"
heure_debut = CStr(Int(heure_debut_temp)) & ":" & Mid(e, 3, 2)
If Len(heure_debut) < 4 Then
heure_debut = heure_debut & "00"
End If
temps_prevu_temp = XlClasseur.Worksheets("Feuil1").Range("AJ" & i)
temps_prevu = (temps_prevu_temp * 8) * 60
corps_rdv = "Numéro de visite : " & numero_visite & vbCrLf & vbCrLf 'corps du texte de la réunion
corps_rdv = corps_rdv & "Contact : " & vbCrLf
corps_rdv = corps_rdv & responsable
If telephone1 <> "" Then
corps_rdv = corps_rdv & " " & telephone1
End If
If telephone2 <> "" Then
corps_rdv = corps_rdv & " " & telephone2
End If
If mail <> "" Then
corps_rdv = corps_rdv & " " & mail
End If
corps_rdv = corps_rdv & vbCrLf & vbCrLf
corps_rdv = corps_rdv & "Durée de la visite (j) : " & temps_prevu_temp & vbCrLf & vbCrLf
corps_rdv = corps_rdv & "Contenu de la visite : " & vbCrLf
corps_rdv = corps_rdv & " " & XlClasseur.Worksheets("Feuil1").Range("y" & i)
'End If
Else
'If XlClasseur.Worksheets("Feuil1").Range("A" & i - 1) <> XlClasseur.Worksheets("Feuil1").Range("A" & i) Then
numero_visite = XlClasseur.Worksheets("Feuil1").Range("A" & i)
raison_sociale = XlClasseur.Worksheets("Feuil1").Range("C" & i)
departement = XlClasseur.Worksheets("Feuil1").Range("L" & i)
adresse1 = XlClasseur.Worksheets("Feuil1").Range("G" & i)
adresse2 = XlClasseur.Worksheets("Feuil1").Range("H" & i)
code_postal = XlClasseur.Worksheets("Feuil1").Range("I" & i)
commune = XlClasseur.Worksheets("Feuil1").Range("J" & i)
responsable = XlClasseur.Worksheets("Feuil1").Range("M" & i)
telephone1 = XlClasseur.Worksheets("Feuil1").Range("N" & i)
telephone2 = XlClasseur.Worksheets("Feuil1").Range("O" & i)
mail = XlClasseur.Worksheets("Feuil1").Range("Q" & i)
date_debut = XlClasseur.Worksheets("Feuil1").Range("AM" & i)
date_debut = CDate(date_debut)
heure_debut_temp = XlClasseur.Worksheets("Feuil1").Range("AO" & i)
heure_debut_temp = CDbl(heure_debut_temp * 24)
heure_debut_temp = Format(heure_debut_temp, "#.00")
'Pour l'exemple
e = CStr(Round((heure_debut_temp - Int(heure_debut_temp)) / 100 * 60, 2)) & "0"
heure_debut = CStr(Int(heure_debut_temp)) & ":" & Mid(e, 3, 2)
If Len(heure_debut) < 4 Then
heure_debut = heure_debut & "00"
End If
temps_prevu_temp = XlClasseur.Worksheets("Feuil1").Range("AJ" & i)
temps_prevu = (temps_prevu_temp * 8) * 60
corps_rdv = "Numéro de visite : " & numero_visite & vbCrLf & vbCrLf 'corps du texte de la réunion
corps_rdv = corps_rdv & "Contact : " & vbCrLf
corps_rdv = corps_rdv & responsable
If telephone1 <> "" Then
corps_rdv = corps_rdv & " " & telephone1
End If
If telephone2 <> "" Then
corps_rdv = corps_rdv & " " & telephone2
End If
If mail <> "" Then
corps_rdv = corps_rdv & " " & mail
End If
corps_rdv = corps_rdv & vbCrLf & vbCrLf
corps_rdv = corps_rdv & "Durée de la visite (j) : " & temps_prevu_temp & vbCrLf & vbCrLf
corps_rdv = corps_rdv & "Contenu de la visite : " & vbCrLf
For J = i To derniere_ligne
If XlClasseur.Worksheets("Feuil1").Range("A" & J) = XlClasseur.Worksheets("Feuil1").Range("A" & i) Then
corps_rdv = corps_rdv & " " & XlClasseur.Worksheets("Feuil1").Range("y" & J) & vbCrLf 'corps du texte de la réunion
num_ligne = J
End If
Next
i = num_ligne '- 1
End If
If numero_visite <> "" Then
'Creation du RDV et Ecriture du contenu
Dim olAppt As AppointmentItem
Set olAppt = Application.CreateItem(olAppointmentItem)
With olAppt
.MeetingStatus = olMeeting
'Sujet on récupère l'utilisateur en cours de session
.Subject = "Contrôle : " & raison_sociale & " (" & departement & ")"
.Start = date_debut & " " & heure_debut & ":00"
'.End = date_depart.Value & " " & heure_fin.Value & ":00"
.Duration = temps_prevu 'durée de rdv, en minutes
.Body = corps_rdv
.Location = adresse1 & " " & adresse2 & " " & code_postal & " " & commune 'Lieu du rdv
'on sauvegarde et ferme
.Save
End With
Set olAppt = Nothing
End If
Next
XlClasseur.Close True
'On quitte Excel
XlApp.Quit
'On libère la mémoire des variables
Set XlClasseur = Nothing
Set XlApp = Nothing
fin:
End Sub |
Partager