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 :

Probleme sur Fonction Split [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 35
    Points
    35
    Par défaut Probleme sur Fonction Split
    Bonjour,

    J'ai une colonne A comportant plusieurs valeurs dans la meme cellule
    "01280180 01280128 02180410"

    J'ai donc mis en execution le code ci dessous afin qu il me permette de découper mes cellules afin d'avoir une seule valeur pas cellule comme ceci :

    01280180
    01280128
    02180410

    Mon probleme c'est que le code tourne sans erreur mais rien ne se passe, pourtant ca m'a l'air correct, mais je ne comprends pas, auriez vous une idée
    Merci


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub AligneEnColonne()
    Sheets("multi2").Range("a1").Select
        Dim Cellule As Range
        Dim i As Integer
        For Each Cellule In Range("a1:a" & Range("a6536").End(xlUp).Row)
            For i = 0 To UBound(Split(Cellule, " "))
                Debug.Print Split(Cellule, " ")(i)
            Next i
        Next Cellule
        Call supprimeDoublons
    End Sub

  2. #2
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 921
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 921
    Points : 28 907
    Points
    28 907
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Ce code ci conviendrait mieux mais où dois-tu écrire le résultat
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim myTab As Variant
     For Each Cellule In Range("a1:a" & Range("a6536").End(xlUp).Row)
      myTab = Split(Cellule, " ")
      For i = 0 To UBound(myTab)
       Debug.Print myTab(i)
      Next i
     Next Cellule

  3. #3
    Nouveau membre du Club
    Inscrit en
    Novembre 2007
    Messages
    54
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 54
    Points : 35
    Points
    35
    Par défaut
    Bonjour,

    Merci beaucoup de ton aide j ai ajouté une ligne pour écrire mon résultat



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Sub AligneEnColonne()
    Dim myTab As Variant
     For Each Cellule In Range("a1:a" & Range("a6536").End(xlUp).Row)
    ' If Cellule = "" Then
      myTab = Split(Cellule, " ")
      For i = 0 To UBound(myTab)
       Debug.Print myTab(i)
       Sheets("multi2").Range("B65536").End(xlUp).Offset(1, 0).Value = myTab(i)
      Next i
    '  End If
     Next Cellule

  4. #4
    Expert éminent sénior Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Points : 31 877
    Points
    31 877
    Par défaut
    Bonjour
    Tu peux gagner une boucle (et du temps) ainsi:
    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
    Sub AligneEnColonne()
    Dim LastLig As Long
    Dim myTab As Variant
    Dim c As Range
     
    Application.ScreenUpdating = False
    With Sheets("Feuil6") ' à adapter
        LastLig = .Cells(.Rows.Count, "A").End(xlUp).Row
        For Each c In Range("A1:A" & LastLig)
            If c.Value <> "" Then
                myTab = Split(c.Value)
                With Sheets("multi2")
                    .Cells(.Rows.Count, "B").End(xlUp)(2).Resize(UBound(myTab) + 1, 1) = IIf(UBound(myTab) = 0, myTab, Application.Transpose(myTab))
                End With
                Erase myTab
            End If
        Next c
    End With
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    myTab = Split(c.Value)
    myTab = Split(c.Value, " ")
    Si le séparateur est l'espace, tu peux t'en passer dans split

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

Discussions similaires

  1. Probleme sur fonction TRANSLATE
    Par chonch dans le forum PL/SQL
    Réponses: 3
    Dernier message: 21/05/2010, 15h04
  2. probleme sur fonction fwrite
    Par gijy dans le forum Bibliothèque standard
    Réponses: 32
    Dernier message: 13/01/2008, 07h28
  3. probleme utilisation fonction split
    Par Lnmex dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/07/2006, 16h40
  4. Probleme sur fonction strcmp
    Par Invité dans le forum C
    Réponses: 8
    Dernier message: 10/01/2006, 00h02
  5. Réponses: 5
    Dernier message: 13/10/2005, 12h46

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