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

Excel Discussion :

Probleme pour scinder une chaine de caracteres [Toutes versions]


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Probleme pour scinder une chaine de caracteres
    Bonjour à tous,
    je dois realiser un Report en Control de Gestion. J ai pour idee de "charger" 6 mois de donnees, dans 6 feuilles excels. Les 6 mois de donnees sont en .text .(sur 6 documents.txt)
    j ai realisé un petit code pour importer une feuille (Le mois N ici comme exemple)
    Cependant, le fichier .text, pour etre lu correctement dans Excel, doit etre ouvert en "semi-colomn"
    en somme, il me copie toutes les informations dans la meme colone
    Que dois je faire pour les separer, et copier les 11 infos de cette chaine dans les 11 premieres colonnes de ma feuille ?
    Puis je repeter l operation 5 autres fois sans trop alourdir la procedure?

    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
    Sub Update_Report()
     
    Dim srce As Workbook
    Dim shsrce As String
     
     
    ThisWorkbook.Activate
    Worksheets(1).Cells.Clear
    Worksheets(2).Cells.Clear
    Worksheets(3).Cells.Clear
    Worksheets(4).Cells.Clear
    Worksheets(5).Cells.Clear
    Worksheets(6).Cells.Clear
    Worksheets(7).Cells.Clear
    Worksheets(8).Cells.Clear
    Worksheets(9).Cells.Clear
    Worksheets(10).Cells.Clear
    Worksheets(11).Cells.Clear
     
        'importation des donnees
        MsgBox "Please select extracts for the N,N-1,...,N-5 Month", vbOKOnly + vbInformation, "Warning"
        MsgBox "Please select for the N Month", vbOKOnly + vbInformation, "Warning"
     
        shsrce = Application.GetOpenFilename("text files (*.txt), *.txt")
        Set srce = Workbooks.Open(Filename:=shsrce)
        ActiveSheet.Range("A:P").Select
        Selection.Copy
        srce.Close
        'on ferme le classeur source
        ThisWorkbook.Activate
        ThisWorkbook.Worksheets(5).Activate
        Range("A1").Activate
        ActiveCell.PasteSpecial
    En precisant que le format des fichiers .txt est (ici l exemple de la colone A1) :
    Mobilephone;"MOB_CODE";"User";"USR_CODE";"Department";"CCR_CODE";"Division";"DIV_CODE";"User Aux. 1";"Mobile aux. 1";"Mobile Aux.


    J ai essayer la fonction split (apres pas mal de recherches infructueuses) mais etant debutant je galere un peu !

    Bonne journee à tous.

    Kevin

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 99
    Points : 141
    Points
    141
    Par défaut
    Bonjour Samanosuke le forum
    tu importes ton fichier .txt avec comme délimiteur ";" et ok et voilà
    a+
    papou

  3. #3
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Bonjour,

    Ci dessous un exemple
    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
    Dim Fichier As String
    Dim Ligne As String
    Dim Tableau() As String
    Dim i As Long
    Dim c As Integer
     
    Fichier = Application.GetOpenFilename("text files (*.txt), *.txt")
     
    'ouverture du fichier
    Open Fichier For Input As #1
     
    Do While Not EOF(1)
        Line Input #1, Ligne
        'Séparation des colonnes avec séparateur ;
        Tableau = Split(Ligne, ";")
     
        i = i + 1
        'Ajout des données ligne dans la feuille
        For c = 0 To UBound(Tableau)
            With Sheets("Feuil1")
                .Cells(i, c + 1).Value = Tableau(c)
            End With
        Next c
     
    Loop
     
    Close #1

  4. #4
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Bonjour jfontaine et Paritec,

    j ai adapté vore exemple et ca marche nickel,
    par contre, toute les sous chaine, sont entre "",
    Serait il possible de les enlever ?

    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    Option Explicit
     
    Sub Update_Report()
     
    Dim srce As Workbook
    Dim shsrce As String
    Dim cel As Variant
    Dim c As Variant
    Dim Données As Variant
    Dim Fichier As String
    Dim Ligne As String
    Dim Tableau() As String
    Dim i As Long
    Dim j As Integer
     
     
    ThisWorkbook.Activate
    Worksheets(1).Cells.Clear
    Worksheets(2).Cells.Clear
    Worksheets(3).Cells.Clear
    Worksheets(4).Cells.Clear
    Worksheets(5).Cells.Clear
    Worksheets(6).Cells.Clear
    Worksheets(7).Cells.Clear
    Worksheets(8).Cells.Clear
    Worksheets(9).Cells.Clear
    Worksheets(10).Cells.Clear
    Worksheets(11).Cells.Clear
     
    'importation des donnees
    MsgBox "Please select extracts for the N,N-1,...,N-5 Month", vbOKOnly + vbInformation, "Warning"
    MsgBox "Please select for the N Month", vbOKOnly + vbInformation, "Warning"
     
    Fichier = Application.GetOpenFilename("text files (*.txt), *.txt")
     
    'ouverture du fichier
    Open Fichier For Input As #1
     
    Do While Not EOF(1)
        Line Input #1, Ligne
        'Séparation des colonnes avec séparateur ;
        Tableau = Split(Ligne, ";")
     
        i = i + 1
        'Ajout des données ligne dans la feuille
        For j = 0 To UBound(Tableau)
            With Sheet5
                .Cells(i, j + 1).Value = Tableau(j)
            End With
        Next j
     
    Loop
     
    Close #1
     
    End Sub
    me donne un resultat du genre :
    "Mobile phone" "MOB_CODE" "User" "USR_CODE" etc ...
    Si je pouvais enlever les "", ca serait super!

    En attendant, je vais me renseigner sur le Forum,

    Merci encore pour votre aide,

    Kevin

  5. #5
    Expert éminent Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 754
    Points : 9 396
    Points
    9 396
    Par défaut
    Comme cela

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .Cells(i, j + 1).Value = replace(Tableau(j),"""","")

  6. #6
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2012
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    un grand MERCI, cela marche magnifiquement bien !
    a bientot,

    Kévin

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

Discussions similaires

  1. pb pour recuperer une chaine de caractere
    Par seb221 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 18/07/2008, 14h40
  2. Scinder une chaine de caractere
    Par kobalt02 dans le forum Débuter
    Réponses: 5
    Dernier message: 18/07/2008, 13h06
  3. [RegEx] Très léger problème pour scinder une chaine
    Par joboy84 dans le forum Langage
    Réponses: 2
    Dernier message: 25/06/2008, 22h33
  4. Réponses: 10
    Dernier message: 05/01/2008, 11h59
  5. problem de calculer une chaine de caractere
    Par NapsterVB dans le forum Delphi
    Réponses: 9
    Dernier message: 19/04/2007, 16h21

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