Sub Transfer_Enregistrements_vers_Excel()
Dim TheTemporaryArray 'défini un tableau unidmensionel pour la capture des lignes du fichier texte
Dim TheFinalArray() As Variant 'défini un tableau bidmensionel pour l'enregistrement informatique du fichier texte
Dim FileName As Variant 'defini une variable qui contiendra le nom du fichier texte a ouvrir
Dim strRec As String 'defini une variable qui contiendra une ligne du fichier texte
Dim j As Long 'defini une variable qui sera utilisée dans un "compteur" de données
Dim i As Long 'defini une variable qui sera utilisée dans un "compteur" de données
Dim m As Long 'defini une variable qui sera utilisée dans un "compteur" de données
Dim k As Long 'defini une variable qui sera utilisée dans un "compteur" de données
Dim xx As Long 'Defini une variable qui contiendra la limite haute du tableau bidimensionel
'*******************************************************
Dim n As Long
Dim TabTemps() As Variant, TabVmoy() As Variant
'*******************************************************
FileName = Application.GetOpenFilename("Text Files (*.txt),*.txt", , "Select Text Data File") 'Ouvre une fentre de selection de fichier qui permet a l'utilisateur de selectionner le fichier a importer. exclusivement des fichiers texte
If FileName = False Then 'Si l'utilisateur n'a pas sélectionner de fichier
Exit Sub 'alors fin de la procedure
ElseIf FileName <> False Then 'Si l'utilisateur à sélectionner un fichier
Open FileName For Input As #1 'Ouvre le fichier texte
Line Input #1, strRec 'Lit une ligne du fichier et enregistre la ligne
TheTemporaryArray = Split(strRec, Chr(9)) 'Enregistre chaque element de la ligne séparé par un "tab" dans un tableau unidimensionel appellé TheTemporaryArray
ReDim TheFinalArray(UBound(TheTemporaryArray), LBound(TheTemporaryArray)) 'Précise la dimension du tableau.
xx = UBound(TheFinalArray) 'enregistre dans une variable la limite haute du tableau - normalement le nombre de "colonnes" du fichier texte moins 1 car le tableau commence a zero et non pas 1
Close #1 'ferme le fichier texte. Cela est necessaire pour une future redimension du tableau TheFinalArray
i = 1 'donne la valeur 1 a une variable qui servira dans la definition d'un tableau bidimensionel
Open FileName For Input As #1 'Réouvre le fichier texte
'****** l'étape suivante va etre repetée pour chaque ligne du fichier grace à la commande "Do While...Loop" *****
Do While Not EOF(1) 'Faire quelque chose jusqu'à temps que l'on arrive à la fin du fichier texte
Line Input #1, strRec 'Lit une ligne du fichier et enregistre la ligne
TheTemporaryArray = Split(strRec, vbTab) 'Enregistre chaque element de la ligne séparé par un "tab" dans un tableau unidimensionel appellé TheTemporaryArray
For j = LBound(TheTemporaryArray) To UBound(TheTemporaryArray) 'Pour chaque élément du tableau unidimensionel
TheFinalArray(j, i - 1) = TheTemporaryArray(j) 'l'élément du tableau unidimensionel est entré dans un tableau bidimensionel
Next j 'tourne jusqu'à temps qu'il n'y ai plus d'elements dans le tableau unidimensionel
ReDim Preserve TheFinalArray(xx, i) 'Redimensionne le tableau bidimensionel en y ajoutant une "ligne"
i = i + 1 'augmemte la variable comptable qui aide a la redimension du tableau bidimensionel
Loop 'repete les etapes precedente pour chaque "ligne" du ficher texte
Close #1 'Ferme le fichier texte
'**** L'etape suivante transfer les données dans EXCEL ****
'Jusqu'ici toutes les données ont été transferées dans un tableau multidimensionel et non pas diretement dans Excel
Sheets("Import de données radar").Activate 'sélectionne l'onglet où les données seront transcrites
Cells.Select 'selectionne toutes les cellule de l'onglet
Selection.ClearContents 'efface le contenu des cellules seletionnées
Cells(1, 1).Select 'retire la selection de toutes les cellules
For k = 0 To xx 'Pour chaque "colonne" du tableau bidimensionel faire....
For m = 0 To (i - 1) 'Pour chaque "ligne" du tableau bidimentionel faire...
Cells(m + 1, k + 1) = TheFinalArray(k, m) 'un transfer de l'element du tableau bidimensionel vers Excel
Next m 'repeter pour chaque "ligne" du tableau bidimensionel
Next k 'repeter pour chaque "colonne" du tableau bidimensionel
Sheets("Menu").Activate 'reselectionne l'onglet avec le bouton
End If 'ferme la condition d'execution de la procedure liée à la trouvaille du nom de fichier
'*******************************************************************
' Activer la feuille de données
Sheets("Import de données").Activate
' Redimensionner les tableaux
ReDim TabTemps(xx)
ReDim TabVmoy(xx)
'Création du tableau pour les Abscisses
For n = 2 To xx
TabTemps(n) = Cells(n, 1)
Next n
'Création d'un tableau pour les Ordonnées
For n = 2 To xx
'Le tableau est rempli par des valeurs aléatoires pour
'cet exemple
TabVmoy(n) = Cells(2, n)
Next n
'Création graphique
Charts.Add
'Définit la localisation du graphique:
'dans la feuille de calcul Test
ActiveChart.Location _
Where:=xlLocationAsObject, Name:="Test"
'Ajoute une série dans le graphique
With ActiveChart
.SeriesCollection.NewSeries
.SeriesCollection(1).XValues = TabTemps() 'Abscisses
.SeriesCollection(1).Values = TabVmoy() 'Ordonnées
'Définit le type (Courbe)
.ChartType = xlLine
End With
'*******************************************************************
End Sub 'fin de la procedure