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 :

importer fichier long


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 24
    Par défaut importer fichier long
    bonsoir à tous

    je voudrais importer un long fichier texte avec 1000 colonnes environ,
    je veux qu'il soit réparti sur plusieurs feuilles !
    j'ai le code suivant mais ca ne marche pas
    Merci bcp pour votre aide

    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
    Sub Fichier_TXT_Volumineux()
    Dim Resultat, Chemin As String
    Dim Lecture As Integer
    Dim Compteur As Variant
    Chemin = Application.GetOpenFilename
    If Chemin = "" Then End
    Lecture = FreeFile()
    Open Chemin For Input As #Lecture
    Application.ScreenUpdating = False
    Compteur = 1
    Do While Seek(Lecture) <= LOF(Lecture)
    Line Input #Lecture, Resultat
    ActiveCell.Value = Resultat
    If ActiveCell.Row = 65536 Or ActiveCell.Column = 256 Then
    ActiveWorkbook.Sheets.Add
    Else
    ActiveCell.Offset(1, 0).Select
    End If
    Compteur = Compteur + 1
    Loop
    Close
    Application.ScreenUpdating = True
    End Sub

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    j'ai le code suivant mais ca ne marche pas
    C'est à dire message d'erreur ? Le résultat n'est pas celui attendu ?

    Merci d'être clair dans vos explications.

    Philippe

  3. #3
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 24
    Par défaut
    oui voila ce n'est pas le résultat attendu
    j'ai un fichier avec 1031 colonnes
    je veux que chaque 256 colonnes soient affiché dans une feuille du même classeur
    pouvez vous m'aider ?

  4. #4
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    d'après ce que je peux voir, ton code copie une ligne de ton fichier texte sur une cellule, la ligne suivante est copiée sur la cellule du dessous, etc...
    ton code ajoute une feuille dès qu'il arrive à la ligne 65536 sur ton fichioer excel

    Aussi, il y a une variable compteur dont l'utilité n'est pas claire...

    il y a t-il un délimiteur de colonnes dans le fichier texte?

    ce que tu dois faire, c'est d'abord découper la ligne par tranche de 256 colonnes( soit en 5 ), copier chaque partie de la ligne sur une feuille distincte. ensuite, seulement passer à la ligne suivante.

    si on dépasse 65536 lignes, recréer 5 feuilles et continuer l'opération sur ces 5 feuilles, jusqu'a la fin du balayage du fichier texte.

    voilà en gros ce que j'ai déduis/compris de ton probleme

    si tu as des questions...

  5. #5
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 24
    Par défaut
    oui effectivement c'est ce que je veux faire mais je suis débutant en vba
    si tu peux m'aider stp ?

  6. #6
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    je peux mais il faut répondre a toutes les questions
    il y a t-il un délimiteur de colonnes dans le fichier texte?

  7. #7
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 24
    Par défaut calcul avec une boucle
    Bonsoir à tous,

    J'ai le code suivant pour faire des calculs dans une feuille, je veux que ma macro me fasse les calculs jusqu'à la ligne 676 dans les deux colonnes A et B, les deux equation ne sont pas fixes je les changerai par la suite

    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
    Sheets("Feuil1").Select
     
    i = 2
        Range("A1").Select
        ActiveCell.FormulaR1C1 = "T"
     
        Range("B1").Select
        ActiveCell.FormulaR1C1 = "Attach Failure Ratio"
     
        Do While ??? ''''''' jusqu'a la ligne 676
        Range("A&i").Select
        ActiveCell.FormulaR1C1 = _
            "=('Données(4)'!R[3]C[113]+'Données(4)'!R[3]C[115]+'Données(4)'!R[3]C[101]+'Données(4)'!R[3]C[103]+'Données(4)'!R[3]C[105]+'Données(4)'!R[3]C[107])"
     
        Range("B&i").Select
        ActiveCell.FormulaR1C1 = _
            "=('Données(4)'!R[3]C[215]+'Données(4)'!R[3]C[212]+'Données(4)'!R[3]C[225]-RC[-1])/('Données(4)'!R[3]C[215]+'Données(4)'!R[3]C[212]+'Données(4)'!R[3]C[195]+'Données(4)'!R[3]C[193])"
        i = i + 1
        Loop

    NB: Le code ne marche pas

  8. #8
    Membre Expert Avatar de mayekeul
    Inscrit en
    Août 2005
    Messages
    1 369
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 1 369
    Par défaut
    bonjour,

    je n'ai pas testé les formules
    mais je pense que ton problemes était la boucle

    j'ai modifié le code en ce sens

    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
    Sub marchepas()
    Dim I
    Dim sh As Worksheet
     
    'définir une référence sur la feuille
    Set sh = Sheets("Feuil1")
     
    'ligne de départ
    I = 2
     
    'attribuer des valeurs
    sh.Range("A1").Value = "T"
    sh.Range("B1").Value = "Attach Failure Ratio"
     
    'départ de la boucle
    Do Until I = 676    'I étant le numéro de ligne, on boucle jusque la 676eme
        sh.Cells(I, 1).FormulaR1C1 = _
            "=('Données(4)'!R[3]C[113]+'Données(4)'!R[3]C[115]+'Données(4)'!R[3]C[101]+'Données(4)'!R[3]C[103]+'Données(4)'!R[3]C[105]+'Données(4)'!R[3]C[107])"
        sh.Cells(I, 2).FormulaR1C1 = _
            "=('Données(4)'!R[3]C[215]+'Données(4)'!R[3]C[212]+'Données(4)'!R[3]C[225]-RC[-1])/('Données(4)'!R[3]C[215]+'Données(4)'!R[3]C[212]+'Données(4)'!R[3]C[195]+'Données(4)'!R[3]C[193])"
        I = I + 1
    Loop
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQLServer]Script import fichier .txt
    Par Jenbi dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 25/08/2006, 16h49
  2. import fichier
    Par chbruno dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/04/2005, 12h26
  3. [IMPORTER] fichier .xls vers postgresql
    Par gloogloo dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 31/03/2005, 11h30
  4. Import fichier ASCII dans une base
    Par pithier dans le forum Bases de données
    Réponses: 3
    Dernier message: 01/02/2005, 19h03
  5. Pb import fichier txt avec lignes de longueurs diverses
    Par zebulon90 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/12/2004, 08h32

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