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 :

Comment couper une variable tableau en deux?


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Technicien dessinateur industriel
    Inscrit en
    Janvier 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien dessinateur industriel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 17
    Par défaut Comment couper une variable tableau en deux?
    Bonjour,
    Je voudrais savoir s'il existe une fonction pour couper une variable tableau en deux?

    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
     
    Dim sVariableOriginale( 1 to 4 , 1 to 3 ) As String
     
    Sub Test01
        sVariableOriginale( 1 , 1 ) = "Pare-choc"
        sVariableOriginale( 1 , 2 ) = "Noir"
        sVariableOriginale( 1 , 3 ) = "Plastique"
     
        sVariableOriginale( 2 , 1 ) = "Mur"
        sVariableOriginale( 2 , 2 ) = "Rouge"
        sVariableOriginale( 2 , 3 ) = "Brique"
     
        sVariableOriginale( 3 , 1 ) = "Guitare"
        sVariableOriginale( 3 , 2 ) = "Marron"
        sVariableOriginale( 3 , 3 ) = "Bois"
     
        sVariableOriginale( 4 , 1 ) = "Balle"
        sVariableOriginale( 4 , 2 ) = "Blanche"
        sVariableOriginale( 4 , 3 ) = "Cuir"
     
    '    Application de la fonction recherchée et on obtient :
     
    End Sub
    sVariable1( 1 , 1 ) = "Pare-choc"
    sVariable1( 1 , 2 ) = "Noir"
    sVariable1( 1 , 3 ) = "Plastique"

    sVariable1( 2 , 1 ) = "Mur"
    sVariable1( 2 , 2 ) = "Rouge"
    sVariable1( 2 , 3 ) = "Brique"

    et

    sVariable2( 1 , 1 ) = "Guitare"
    sVariable2( 1 , 2 ) = "Marron"
    sVariable2( 1 , 3 ) = "Bois"

    sVariable2( 2 , 1 ) = "Balle"
    sVariable2( 2 , 2 ) = "Blanche"
    sVariable2( 2 , 3 ) = "Cuir"


    Merci d'avance,
    Christophe.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    97
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 97
    Par défaut
    Salut Chyps,

    Je ne crois pas qu'il existe une telle fonction. Par contre, tu peux en créer une.

  3. #3
    Membre averti
    Homme Profil pro
    Technicien dessinateur industriel
    Inscrit en
    Janvier 2010
    Messages
    17
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Technicien dessinateur industriel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Janvier 2010
    Messages : 17
    Par défaut
    Merci de ta réponse,
    On m'a parlé d'une fonction similaire dans un autre langage alors j'ai espéré la retrouver sous VBA.
    Tant pis, je vais me la créer alors.

  4. #4
    Expert confirmé
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Par défaut
    Bonjour,

    Une idée de départ à adapter :
    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
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
     
    Sub DiviserTableau()
     
        Dim sVariableOriginale(1 To 4, 1 To 3) As String
        Dim Tbl1() As String
        Dim Tbl2() As String
        Dim n As Integer
        Dim I As Integer
        Dim J As Integer
     
        sVariableOriginale(1, 1) = "Pare-choc"
        sVariableOriginale(1, 2) = "Noir"
        sVariableOriginale(1, 3) = "Plastique"
     
        sVariableOriginale(2, 1) = "Mur"
        sVariableOriginale(2, 2) = "Rouge"
        sVariableOriginale(2, 3) = "Brique"
     
        sVariableOriginale(3, 1) = "Guitare"
        sVariableOriginale(3, 2) = "Marron"
        sVariableOriginale(3, 3) = "Bois"
     
        sVariableOriginale(4, 1) = "Balle"
        sVariableOriginale(4, 2) = "Blanche"
        sVariableOriginale(4, 3) = "Cuir"
     
        'divise en 2 la 1ère dimension (1 To 4)
        'si le nombre est imper les tableaux seront forcément
        'différents et le second aura une dim de plus
        n = Int(UBound(sVariableOriginale, 1) / 2)
     
        'dimensionne le tableau 1
        ReDim Tbl1(1 To n, 1 To UBound(sVariableOriginale, 2))
     
        'rempli le tableau 1 avec la première partie du tableau à diviser
        For I = 1 To n
            J = J + 1
            For J = 1 To UBound(sVariableOriginale, 2)
                Tbl1(I, J) = sVariableOriginale(I, J)
            Next J
        Next I
     
        J = 0
     
        'dimensionne le tableau 2
        ReDim Tbl2(1 To UBound(sVariableOriginale, 1) - n, 1 To UBound(sVariableOriginale, 2))
     
        'rempli le tableau 2 avec la seconde partie du tableau à diviser
        For I = 1 To UBound(sVariableOriginale, 1) - n
            J = J + 1
            For J = 1 To UBound(sVariableOriginale, 2)
                Tbl2(I, J) = sVariableOriginale(I + n, J)
            Next J
        Next I
     
        'affichage des résultats dans la fenêtre d'exécution
        Debug.Print "---TABLEAU 1---"
     
        For I = 1 To UBound(Tbl1, 1)
     
            Debug.Print Tbl1(I, 1)
            Debug.Print Tbl1(I, 2)
            Debug.Print Tbl1(I, 3)
            Debug.Print "-"
     
        Next I
     
        Debug.Print "---TABLEAU 2---"
     
        For I = 1 To UBound(Tbl2, 1)
     
            Debug.Print Tbl2(I, 1)
            Debug.Print Tbl2(I, 2)
            Debug.Print Tbl2(I, 3)
            Debug.Print "-"
     
        Next I
     
    End Sub
    Hervé.

Discussions similaires

  1. Php couper une variable en deux
    Par m0h4m3d dans le forum Langage
    Réponses: 2
    Dernier message: 04/12/2014, 14h15
  2. Réponses: 4
    Dernier message: 22/05/2008, 13h58
  3. Comment insérer les valeurs d'une requete dans une variable tableau
    Par uptoditime dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/12/2007, 12h03
  4. [VBA-E] Comment accéder à une variable tableau située dans un autre module
    Par jeanpierreco dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 17/02/2007, 13h15
  5. comment recuperer une variable dans flash
    Par krépuscul dans le forum Flash
    Réponses: 30
    Dernier message: 16/10/2003, 09h40

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