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 :

[VBA_E] Séparation Colonne


Sujet :

Macros et VBA Excel

  1. #1
    Inactif Avatar de franck.automaticien
    Inscrit en
    Février 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Février 2004
    Messages : 238
    Par défaut [VBA_E] Séparation Colonne
    Bonjour

    je voudrais Séparer en colonne un texte qui est dans une même cellule

    cellule A1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Sb20 AT %I2.0 : EBOOL (*Mise en service (pupitre principal)*);
    Je souhaiterais avoir le resultat suivant

    A_______________B_____________C
    sb20__________%I2.0__________BOOL


    Merci d'avance
    Cordialement
    Franck

  2. #2
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    Bonjour Franck

    Tes lignes ont'elles la meme structure à chaque fois ?

    @ te lire

  3. #3
    Inactif Avatar de franck.automaticien
    Inscrit en
    Février 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Février 2004
    Messages : 238
    Par défaut
    Cela peut etre de cette façon la:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    AT %I2.13 : EBOOL (*Libre*);
    cela deonnerai sa

    A_______________B_____________C______________D
    [VIDE]__________%I2.13__________BOOL________Libre

    oups pardon j'avais oublier ceux ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Sb20 AT %I2.0 : EBOOL (*Mise en service (pupitre principal)*);
    A_______________B_____________C_________________D
    sb20__________%I2.0__________BOOL____________Mise en service (pupitre principal)

    Merci

  4. #4
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    voici un fichier en formule

    si tu veux en Vba fais un signe

    @ te lire

  5. #5
    Inactif Avatar de franck.automaticien
    Inscrit en
    Février 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Février 2004
    Messages : 238
    Par défaut
    en faite en ce moment je modifie une macro en vba!

    Donc je veux bien vba

    Merci de ton aide
    ++

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    NoLigne = 1
    LeTableau = Split(Range("A" & NoLigne).value, " ")
    For i = 0 to Ubound(LeTableau)
         Cells(NoLigne, i+1).value = LeTableau(i)
    Next
    Tu dis
    A+

  7. #7
    Inactif Avatar de franck.automaticien
    Inscrit en
    Février 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Février 2004
    Messages : 238
    Par défaut
    merci

    Mais cela decoupe le commentaire en colonne
    _______a_______b_____c____d_______e__________f
    : EBOOL (*Mise hors service (pupitre principal)*);

    je voudrais juste recupérer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Mise hors service (pupitre principal)
    dans une colonne
    merci d'avance
    ++

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Voui, j'avais oublié le pb de ta phrase mais il peut se régler si... tes phrases commencent toujours par "(*"
    Est-ce le cas ?
    A+

  9. #9
    Inactif Avatar de franck.automaticien
    Inscrit en
    Février 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Février 2004
    Messages : 238
    Par défaut
    oui c'est le cas... hiii

  10. #10
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    je reprends en cours, un ptit boulot

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mid(chaine,instr(chaine,"(*")+2, instr(chaine,"*)") - instr(chaine,"*(") -2
    j'ai pas testé, à ajuster le -2 en rouge

    salutations

  11. #11
    Inactif Avatar de franck.automaticien
    Inscrit en
    Février 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Février 2004
    Messages : 238
    Par défaut
    J'ai pas trop compris... desoler..??

  12. #12
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    je voudrais juste recupérer

    Code :
    Mise hors service (pupitre principal)
    dans une colonne
    excuse moi, je suis allé trop vite

    voici une fonction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function extraire(chaine As String) As String
     extraire = Mid(chaine, InStr(chaine, "(*") + 2, InStr(chaine, "*)") - (InStr(chaine, "(*") + 2))
    End Function
    Chaine et la chaine de caracteres à traiter

    @ plus

  13. #13
    Inactif Avatar de franck.automaticien
    Inscrit en
    Février 2004
    Messages
    238
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Février 2004
    Messages : 238
    Par défaut
    Citation Envoyé par wilfried_42
    re:

    voici un fichier en formule

    si tu veux en Vba fais un signe

    @ te lire
    Tu as regardé a en VBA?
    sa serait super sympa merci....
    Cordialement

  14. #14
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    re:

    desolé je pensais que ouskel'nor avait donné la reponse

    Nous allons conidérer les 3 occurences en colonne A, B, C.
    la variable chaine contient la chaine de caractere à traiter


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    if instr(chaine,"AT")<2 then 
             range("A1") = "" ' Il n'y a pas de 1ère occurence)
    else
             range("A1") = trim(left(chaine,instr(chaine,"AT")-1))
    end if
    2eme occurence
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    range("B1") = trim(mid(chaine,instr(chaine,"%"),(instr(chaine,":")-1)-instr(chaine,"%")))
    3eme occurence

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    range("C1") = trim(mid(chaine,instr(chaine,":")+3,(instr(chaine,"(")-1)-(instr(chaine,":")+3)))
    Bonne journée
    @ +

  15. #15
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Citation Envoyé par ouskel'n'or
    Voui, j'avais oublié le pb de ta phrase mais il peut se régler si... tes phrases commencent toujours par "(*"
    Est-ce le cas ?
    A+
    Citation Envoyé par franck.automaticien
    oui c'est le cas... hiii
    Youpi, alors si je reprends ta ligne, tu peux utiliser
    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
    Sub separerLesMots()
    Dim LeTableau As Variant, LaChaîne As String
    Dim NoLigne As Long, NoCol As Byte
        NoLigne = 1
        If InStr(Range("A" & NoLigne).Value, "(*") <> 0 then _
            LaChaîne = Right(Range("A" & NoLigne).Value, Len(Range("A" & NoLigne).Value) _
                     - InStr(Range("A" & NoLigne).Value, "(*") + 1)
        LeTableau = Split(Left(Range("A" & NoLigne).Value, _
                    InStr(Range("A" & NoLigne).Value, "(*") - 2), " ")
        ReDim Preserve LeTableau(UBound(LeTableau) + 1)
        LeTableau(UBound(LeTableau)) = LaChaîne
        For NoCol = 0 To UBound(LeTableau)
             Cells(NoLigne + 1, NoCol + 1).Value = LeTableau(NoCol)
        Next
    End Sub
    Tu dis
    A+

  16. #16
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Je n'ai pas testé la solution d'ouskel'n'or (salut ousk) mais le problème m'amusait.
    Alors voici le résultat de mon amusement:
    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
    Sub Separation()
      Dim rCell As Range
      Dim rRange As Range
      Dim t1() As String
      Dim t2() As String
      Set rRange = Range([A1], Cells(Cells.SpecialCells(xlLastCell).Row, 1))
      For Each rCell In rRange
        t1 = Split(rCell, "AT")
        t2 = Split(t1(1), ":")
        rCell.Offset(0, 1) = Trim(t1(0))
        rCell.Offset(0, 2) = Trim(t2(0))
        rCell.Offset(0, 3) = Left(Trim(t2(1)), InStr(1, Trim(t2(1)), " "))
        rCell.Offset(0, 4) = Trim(Mid(Trim(t2(1)), InStr(1, Trim(t2(1)), " ")))
      Next rCell
    End Sub
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

Discussions similaires

  1. SQL séparation 1 colonne en plusieurs colonnes
    Par flo123456 dans le forum Langage SQL
    Réponses: 4
    Dernier message: 09/04/2008, 15h32
  2. Réponses: 8
    Dernier message: 17/03/2008, 21h44
  3. faire des colonnes de séparation dans un datagrid
    Par hokidoki dans le forum ASP.NET
    Réponses: 7
    Dernier message: 22/06/2007, 12h15
  4. VBA_E : Selection des 5 plus grandes valeurs d'une colonne..
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 15/09/2006, 18h39
  5. [VBA_E]Problème Balayage plage de colonnes
    Par baptbapt dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 29/08/2006, 17h14

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