IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Problème format de cellule après import


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 6
    Points : 7
    Points
    7
    Par défaut Problème format de cellule après import
    Bonjour à toutes et tous,

    Avec ce code, j'importe des données d'un .csv vers une feuille Excel.
    Une fois les données importées, les nombres contenus dans la colonne "E" ne sont plus exploitables.
    Je souhaiterais faire des =moyenne(), =ecartype() et =somme().

    Par contre quand j'importe "manuellement" les données, ça marche nickel, les données sont exploitables.

    J'ai regardé du côté des formats de cellule dans ma feuille Excel d'accueil, mais rien n'y fait.

    Est ce que dans mon code je gère mal les formats ou la copie des données ??

    Merci de votre aide si vous avez une idée.

    A bientôt

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Sub Import_Fichier()
     
    ' importe des fichiers texte en ouvrant une fenêtre
     
    Dim file As FileDialog
    Dim strLigne As String
    Dim str() As String
     
    Dim i As Integer
    Dim Ligne As Long
     
    'Choix du fichier à importer
    Set file = Application.FileDialog(msoFileDialogFilePicker)
    file.Filters.Clear
    file.Filters.Add "Fichier CSV", "*.csv"
    file.Title = "Fichier à importer"
     
    If file.Show = False Then
        Exit Sub
    End If
     
    Ligne = 2
     
    'Ouverture du fichier
    Open file.SelectedItems(1) For Input As #1
     
    'Boucle sur les lignes du fichier
    Do While Not EOF(1)
     
        Line Input #1, strLigne
        str() = Split(strLigne, ";") 'séparateur ;
     
        'Pour chaque colonne
        For i = 0 To UBound(str)
            Cells(Ligne, i + 1).Value = str(i)
        Next i
     
        Ligne = Ligne + 1
     
    Loop
     
    Close #1
     
     
    End Sub

  2. #2
    Membre éprouvé
    Homme Profil pro
    Assistant aux utilisateurs
    Inscrit en
    Septembre 2007
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Assistant aux utilisateurs
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 896
    Points : 984
    Points
    984
    Par défaut
    Bonjour,

    Voici un exemple à adapter selon vos besoins.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Option Explicit 
     
    Sub Tst() 
    Dim Fichier As Variant 
        ChDir ThisWorkbook.Path 
        Fichier = Application.GetOpenFilename("Text Files (*.csv), *.csv" ) 
        If Fichier <> False Then 
            Lire Fichier 
        End If 
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
     
    Sub Lire(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 
     
        '  Séparateur Point Virgule 
        Separateur = ";" 
     
        Cells.Clear 
        Application.ScreenUpdating = False 
        NumFichier = FreeFile 
        iRow = 1 
     
        Open NomFichier For Input As #NumFichier 
            Do While Not EOF(NumFichier) 
                iCol = 1 
                Line Input #NumFichier, Chaine 
                Ar = Split(Chaine, Separateur) 
                For i = LBound(Ar) To UBound(Ar) 
                    Ar(i) = Replace(Ar(i), "M-", "" ) 
                    Cells(iRow, iCol) = Ar(i) 
                    iCol = iCol + 1 
                Next 
     
                Select Case Cells(iRow, 1) 
                    Case Is = Cells(iRow, 2): Cells(iRow, 3) = "Ok" 
                    Case Else: Cells(iRow, 3) = "Bad" 
                End Select 
     
                iRow = iRow + 1 
            Loop 
        Close #NumFichier 
     
        Application.ScreenUpdating = True 
    End Sub
    J’entends et j’oublie,
    Je vois et je me souviens,
    Je fais et je comprends.
    Confucius

Discussions similaires

  1. [XL-2013] Problème de Format de cellules après un QueryTables URL
    Par MhoJiTo dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/03/2015, 21h56
  2. Problème format de cellule heures et minutes
    Par alexandra41120 dans le forum Excel
    Réponses: 2
    Dernier message: 22/06/2012, 08h37
  3. Problème avec LDAP Browser après import fichier ldif
    Par lou87 dans le forum Applications et environnements graphiques
    Réponses: 0
    Dernier message: 10/05/2012, 14h00
  4. [XL-2010] Problème format de cellule après modification via userform
    Par r9titi dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 25/02/2012, 14h34
  5. Problème Format Numérique lors d'import txt
    Par clemasson dans le forum Access
    Réponses: 3
    Dernier message: 11/10/2006, 11h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo