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 :

Fonction Split et For [XL-2007]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Fonction Split et For
    Bonjour j'aimerai étendre mon code afin que cela sélectionne la ligne suivante une fois que cela est fait.
    Malheureusement cela ne fonctionne pas :

    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
    Sub dab()
     
    Dim Tab1() As String
    Dim Tab2(1,43) As String
    Dim i As Integer
     
    i = 4
    For j = 3 To 47
     
        Tab1 = Split(Cells(i,j).Value, " - ")
        Tab2(0 ,j-3) = Tab1(0)
        Tab2(1, j-3) = Tab1(1)
     
    Next j
     
    End Sub
    Si j'ai bien compris c'est du à la dimension du tableau (dynamique pour le split et de taille fixe pour le for) ?

    Mais comment faire ?

    Merci d'avance.

  2. #2
    Membre confirmé Avatar de Bear the french
    Homme Profil pro
    Inscrit en
    Mai 2012
    Messages
    353
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations forums :
    Inscription : Mai 2012
    Messages : 353
    Points : 633
    Points
    633
    Par défaut
    Bonjour Guillaumus,

    Il y a une erreur dans ton code, une erreur de conception : de la colonne 3 à la colonne 47 --> cela donne 44 d'indice et non 43.

    Pour ta problématique : Tu peux ajouter une dimension à ton tableau pour indiquer ton numéro de ligne. Quand tu redimensionnes un tableau VBA multidimensionnel, seul le dernier indice peut être utilisé avec le "Redim preserve".

    Je t'ai écrit ça :

    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 dab()
    Dim Tab1() As String
    Dim Tab2() As String
    Dim i, j As Integer
     
    'De la ligne 4 à la ligne 100 pour l'exemple
    For i = 4 To 100
    'Je redimensionne à chaque nouvelle ligne
    ReDim Preserve Tab2(2, 44, i - 3)
        'De la colonne 3 à la colonne 47
        For j = 3 To 47
            'Je teste le contenu pour savoir si le séparateur est présent
            If InStr(Cells(i, j).Value, " - ") > 0 Then
                Tab1 = Split(Cells(i, j).Value, " - ")
                Tab2(0, j - 3, i - 3) = Tab1(0)
                Tab2(1, j - 3, i - 3) = Tab1(1)
            Else
                Tab2(0, j - 3, i - 3) = ""
                Tab2(1, j - 3, i - 3) = ""
            End If
        Next j
    Next i
     
    End Sub
    Bertrand

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juillet 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2012
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup c'est nickel !

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

Discussions similaires

  1. [AC-2003] Fonction Split et boucle For next
    Par jmde dans le forum VBA Access
    Réponses: 10
    Dernier message: 01/08/2013, 19h45
  2. Réponses: 5
    Dernier message: 13/10/2005, 12h46
  3. [String] fonction split
    Par tck-lt dans le forum Langage
    Réponses: 2
    Dernier message: 19/07/2005, 17h45
  4. procedure stockée et fonction "split"
    Par wehtam dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 18/07/2005, 16h21
  5. [Fortran 90] Fonction Split()
    Par gchazelle dans le forum Fortran
    Réponses: 2
    Dernier message: 02/03/2005, 10h16

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