fitzjames
Messages postés55Date d'inscriptionmardi 8 juin 2004StatutMembreDernière intervention27 février 2009
-
17 févr. 2009 à 17:28
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 2010
-
18 févr. 2009 à 03:20
Bonjour,
Je souhaiterai développer une macro qui récupère des données d'un fichier csv et qui les rapatries dans des variables qui sont le pays, le navigateur et le réseau de Type Variant
J'ai trouver le code suivant :
Sub CSV()
'
' CSV Macro
Dim Fichier As Variant
ChDir "C:\Tests\Jeux"
Fichier = Application.GetOpenFilename("Fichier CSV (*.csv), *.csv")
If Fichier <> False Then
LireCSV Fichier
End If
End Sub
Le probleme ici est que je suis obligé de sélectionner le Fichier avec ma souris, comment puis je faire pour qu'il le sélectionne automatiquement ?
'===============================================================
' Lecture du fichier
'===============================================================
Private Sub LireCSV(ByVal NomFichier As String)
Dim Chaine As String
Dim Ar() As String
Dim i As Long
Dim iRow As Long, iCol As Long
Dim NumFichier As Integer
Dim Separateur As String * 1
Open NomFichier For Input As #NumFichier
Do While Not EOF(NumFichier)
iCol = 1
iRow = iRow + 1
Line Input #NumFichier, Chaine
Ar = Split(Chaine, Separateur)
For i = LBound(Ar) To UBound(Ar)
Cells(iRow, iCol) = Ar(i)
iCol = iCol + 1
Next i
Loop
Close #NumFichier
Application.ScreenUpdating = True
End Sub
Le probleme ici est qu'il copie dans des cellules, comment puis je faire pour mettre mes valeurs dans les variables ?
Merci d'avance pour l'aide que vous m'apporterez ?
[?] Estelle[8D]
A voir également:
Importer des données d'un fichier CSV dans des variable
bigfish_le vrai
Messages postés1835Date d'inscriptionvendredi 13 mai 2005StatutMembreDernière intervention20 novembre 201314 17 févr. 2009 à 17:51
Salut,
si ton fichier est toujours au meme endroit et qu'il porte toujours le meme nom tu peux faire comme ceci pour la premiere partie :
C'est pas recommandé mais bon...
Sub CSV()
'
' CSV Macro
Dim Fichier As String, Chemin as String
Chemin = "C:\Tests\Jeux"
Fichier = "MonFichierCSV.csv"
' on verifi que le chemin et/ou le fichier specicifie sont bon
If Not Dir(Chemin&Fichier) = "" Then
Fichier = Chemin&Fichier
LireCSV Fichier
Else
Msgbox "aucun fichier trouvé !", VbExclamation
Exit sub
End If
End Sub
cs_Orohena
Messages postés577Date d'inscriptionvendredi 26 septembre 2008StatutMembreDernière intervention20 novembre 20104 18 févr. 2009 à 03:20
Salut
Pour la 2e question, et sous réserve que la structure de ton fichier csv est bien ;<navigateur>;<réseau>
1) Remplace
Do While Not EOF(NumFichier)
iCol = 1
iRow = iRow + 1
Line Input #NumFichier, Chaine
Ar = Split(Chaine, Separateur)
For i = LBound(Ar) To UBound(Ar)
Cells(iRow, iCol) = Ar(i)
iCol = iCol + 1
Next i
Loop
par
Dim pays()
Dim navigateurs()
Dim reseaux()
Do Until EOF(NumFicher)
Line Input #NumFicher, Chaine
Ar = Split(Chaine, Separateur)
Redim Preserve pays(i)
pays(i) = Ar(0)
Redim Preserve navigateurs(i)
navigateurs(i) = Ar(1)
Redim Preserve reseaux(i)
reseaux(i) = Ar(2)
i = i + 1
Loop
2) Supprime la ligne Dim iRow As Long, iCol As Long devenue inutile.
Cela charge les champs du fichier csv dans des tableaux de variables pays, navigateurs et reseaux de type Variant.