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

VB 6 et antérieur Discussion :

Tableau


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 26
    Par défaut Tableau
    Bonjour,

    J'essaye de créer un tableau à 2 dimensions.
    Dans l'exemple, je vois qu'on le dimensionne à 10 (ReDim monTableau(9, 9))

    Cependant, comment peut on le dimensionner vraiment dynamiquement?
    En fait, le nombre d'enregistrements dans mon tableau dépend d'un chiffre variable.

    J'essayais de faire quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim Nbre = mvar.count
    Dim MonTableau (Nbre ,Nbre )
    Ca n'a pa l'air possible.
    Le message que j'obtiens : "Constante requise"

  2. #2
    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
    Ca devrait marcher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim Nbre
    Dim MonTableau()
    Nbre = mvar.Count
    ReDim MonTableau(Nbre, Nbre)
    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!

  3. #3
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    et si tu veux conserver les données déjà entrées dans le tableau tu ajoutes Preserve entre Redim et le nom de ton tableau.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReDim Preserve MonTableau(Nbre, Nbre)

  4. #4
    Membre averti
    Inscrit en
    Janvier 2005
    Messages
    26
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 26
    Par défaut
    Super!
    Ca fonctionne!

    En fait, il semblerait que le typage que j'essayais de mettre générait l'erreur.

    Merci

  5. #5
    Membre Expert
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Par défaut
    Une astuce que j'utilise pour ajouter un indice à la fois, la fonction UBound (pour les tableaux à une dimensions, ça marche bien en tout cas...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Dim unTableau() As String ' He! oui! on peut le typer
     
    Private Sub cmdAjouter_Click()
        Dim i As Integer
        i = Ubound(unTableau)
        unTableau(i) = InputBox("Votre nom, s'il vous plaît", "Identification", "invité")
    End Sub

  6. #6
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    zazaraignée, ton astuce me plait, avec un tableau à plusieurs dimensions, c'est possible aussi, je m'en suis servi cette semaine

    Dim A(1 To 100, 0 To 3, -3 To 4)

    Instruction Valeur renvoyée
    UBound(A, 1) 100
    UBound(A, 2) 3
    UBound(A, 3) 4
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  7. #7
    Membre Expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 71
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Par défaut
    Seul bémol, le redim ne fonctionne que sur le dernier indice

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

Discussions similaires

  1. trier un tableau et compter des elements du tableau
    Par remi51 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 17/06/2002, 16h51
  2. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  3. verification de doublons dans un tableau
    Par bohemianvirtual dans le forum C
    Réponses: 11
    Dernier message: 25/05/2002, 12h21
  4. transmision de tableau en parametre
    Par Horus dans le forum C++Builder
    Réponses: 3
    Dernier message: 16/05/2002, 11h15
  5. Réponses: 4
    Dernier message: 13/05/2002, 16h43

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