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 :

tableau a 2 dimensions [XL-2003]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut tableau a 2 dimensions
    Bonjour,

    je voudrais créer un tableau à deux dimensions. Le problème est que la taille du tableau n'est pas fixe. C'est facile me direz vous, il suffit de faire un tableau dynamique.

    le problème c'est que voilà, j'ai des données qui change en fonction d'un bouton option:
    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
    If (OptionButton_lot.Value = True) Then
            montant_ht = "lot 1 : " + TextBox_ht + "€"
        ElseIf (OptionButton_bon_commande.Value = True) Then
            montant_ht = "min : " + TextBox_ht + "€"
        Else
            montant_ht = TextBox_ht
        End If
    ------------------------------------------------
     
    If (OptionButton_lot.Value = True) Then
            montant_ht_max = "lot 2 : " + TextBox_ht_max + "€"
        ElseIf (OptionButton_bon_commande.Value = True) Then
            montant_ht_max = "max : " + TextBox_ht_max + "€"
        End If
     
    -----------------------------------------------------
     
    montant_lot_3 = "lot 3 : " + TextBox_lot_3 + "€"
     
    ------------------------------------------------------
     
    montant_lot_4 = "lot 4 : " + TextBox_lot_4 + "€"
    Normalement que j'ai 1, 2, 3 ou 4 montant je devrais afficher les 4(ou les 2, ou les 3 selon les cas les une en dessous des autres avec ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    montant = IIf(montant_ht <> vbNullString, montant_ht & Chr(10), vbNullString) & _
          IIf(montant_ht_max <> vbNullString, montant_ht_max & Chr(10), vbNullString) & _
          IIf(montant_lot_3 <> vbNullString, montant_lot_3 & Chr(10), vbNullString) & _
          IIf(montant_lot_4 <> vbNullString, montant_lot_4 & Chr(10), vbNullString)
    Cela me permettait en plus de les mettre en forme comme je le souhaite mais cela ne fonctionne pas.

    D'où le post et la question comment faire un tableau à deux dimension qui me permettrait de faire ça? J'ai bien pensé à faire une ou quatre fonctions avec chaque fois un tableau mais n'étant pas un cador je souhaiterais avoir un (des) avis sur la solutions à employer.

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 207
    Par défaut
    Je n'ai pas exactement compris ce que tu veux.

    Toujours est-il que tu peux effectivement utiliser un tableau dynamique à plusieurs dimensions et que tu peux garder le contenu lorsque tu le redimensionnes avec 'Preserve' (mais je ne dois rien t'apprendre)...quel est donc ton problème?

  3. #3
    Membre Expert Avatar de hunteshiva
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Février 2010
    Messages
    1 069
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2010
    Messages : 1 069
    Par défaut
    Bonjour,

    je ne vois pas le contenue de ton tableau 2D...
    si ton tabealu s'arréte a 4-5 valeurs tu peux sans probléme créer un tableau de dimensions 10*10

    c'est qu'a partir de plusieurs centaines voir miliers de lignes qu'on va essayer de faire attention à la taille d'un tableau, l'appli risque de saturer

    voial ça c'est la méthode bourin

    aprés tu a effectivement la possibilité de faire ça proprement mais c'est pplus long

    Si la première déclaration est :
    Dim MonTableau(10,10)

    On peut redimensionner le tableau et en gardant les données stockés par :
    Dim Preserve MonTableau(10,50)

    Par contre, on ne peut pas faire :
    Dim Preserve MonTableau(50,50)
    Pour un tableau 1 dimension c'est plus simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim MonTableau() As String
     
    'On dimensionne le nombre d'élément
    ReDim MonTableau(50)
     
    'Puis on redimensionne à 100 éléments en gardant les anciennes
    ReDim Preserve MonTableau(100)

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    Effectivement mon tableau ne fait pas une taille de (10000*10000).

    En fait, je rempli un maximum de 4 textbox avec un montant du style 123.00 ou 123.59 ou encore 158.50.

    Le fait est que si j'en ai qu'un pas besoin de tableau, mais à partir de deux (ou quatre selon l'option choisie) la dénomination du premier se fait et apparait ainsi que la valeur qu'il contient mais pas les autres. D'où le tableau.

    Donc dans mon tableau d'un coté je vais me retrouve avec min (ou lot 1 selon l'option),max (ou lot2), lot3, lot 4. et de l'autre coté une valeur numérique correspondant à un prix et en cherchant un peu le symbole monétaire €.

    J'espère avoir été plus clair.

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Novembre 2008
    Messages
    207
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2008
    Messages : 207
    Par défaut
    Toujours pas compris ...j'ai du mal à comprendre le lien entre ton tableau et les TextBox.

    Mais je rejoins hunteshiva...pour un tableau de dimension au plus 4, pas besoin de se prendre la tête, fais un tableau statique.

  6. #6
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2004
    Messages
    239
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 239
    Par défaut
    Juste pour l'explication. J'ai plusieurs texbox qui doivent afficher ce qu'elle contiennent dans une seule cellule de ma feuille ( 4textbox au max dans une seule cellule)

    Comme ce que j'ai fait ne fonctionne pas, je vais passer mes données dans un tableau puis mettre mon tableau dans un string et affiché mon string dans ma cellule.

    Si je merde pas dans ce que je fais je devrais avoir mes données les unes sous les autres avec en faces de chaque valeur un intitulé du style
    max: valeur €
    min: valeur €...

    A y être autant mettre ceci pour voir si cela marcherait ou pas (juste une verif sur le code)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub min_max()
     
        Dim tableau1(1, 1) As String, montant As String
     
        tableau1(0, 0) = "min : "
        tableau1(0, 1) = montant_ht + " €"
        tableau1(1, 0) = "max : "
        tableau1(1, 1) = montant_ht_max + " €"
        montant = tableau1() 'je suis pas sur ici
    End Sub

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/11/2005, 20h55
  2. Réponses: 13
    Dernier message: 13/10/2005, 17h03
  3. Tableau a trois dimension!!!
    Par krfa1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/10/2005, 16h52
  4. Réponses: 1
    Dernier message: 30/09/2005, 20h17
  5. [Tableau]comment connaitre la taille d'un tableau à 2 dimensions
    Par Kyti dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 22/04/2005, 11h27

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