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 :

[VB6]Tableau redimensionnable


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 2
    Par défaut [VB6]Tableau redimensionnable
    Bonjour, je suis un petit nouveau et j'essaye de faire pour un programme un tableau à 2 entrées (du type nomdutableau(,)) qui me servirai dans plusieurs forms .J'ai fait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public team(,) As String
    dans mon module mais ça ne marche pas " Compile error: Expected: expression" ,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public team(),() As String
    ne marche pas non plus mais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public team() As String
    si Merci d'avance

  2. #2
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    et alors :

  3. #3
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    je vois, j'ai eu le même problème.

    en fait, il faut déclarer ton tableau comme cela:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dim Montabeau() as string.
    ensuite, si tu veux le redimentionner à plusieurs collones, tu fait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    redim preserve montableau(min to max, min to max)
    voilà.


    salut

  4. #4
    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
    Euh, si je ne me trompe, le Redim ne peut modifier que la dernière dimension...
    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!

  5. #5
    Membre Expert Avatar de edam
    Homme Profil pro
    Développeur Delphi/c++/Omnis
    Inscrit en
    Décembre 2003
    Messages
    1 894
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Delphi/c++/Omnis
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 894
    Par défaut
    essay
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    structur t
       tac() as string
    end structur
    ....
    dim toc() as t
    proc ddd
    redim toc(3)
    for i=0 to 2
       redim toc(i).tac(3)
    next

  6. #6
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    Citation Envoyé par AlainTech
    Euh, si je ne me trompe, le Redim ne peut modifier que la dernière dimension...
    sur un tableau dont les dimentions ne tont pas déclarées ( "()" ) il n'y as pas de problèmes.

  7. #7
    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
    Juste.

    Il manquait un petit quelque chose à ma réponse.
    C'est le Redim Preserve qui ne peut modifier que la dernière dimension.

    Donc,
    Citation Envoyé par méphistopheles
    redim preserve montableau(min to max, min to max)
    avait des raisons de me choquer
    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!

  8. #8
    Xo
    Xo est déconnecté
    Membre Expert
    Avatar de Xo
    Inscrit en
    Janvier 2005
    Messages
    2 701
    Détails du profil
    Informations personnelles :
    Âge : 52

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 701
    "Ce que l'on conçoit bien s'énonce clairement,
    Et les mots pour le dire arrivent aisément." Nicolas Boileau

    "Expliquer empêche de comprendre si cela dispense de chercher"

    Quiz Oracle : venez tester vos connaissances !

    La FAQ Oracle : 138 réponses à vos questions
    Aidez-nous à la compléter

  9. #9
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    Citation Envoyé par AlainTech
    Donc,
    Citation Envoyé par méphistopheles
    redim preserve montableau(min to max, min to max)
    avait des raisons de me choquer
    désolé de t'avoir choqué

    sinon, j'avais en effet oublié que le préserve ne s'apliquait qu'a la derniere dimention.

    au fait, comment fait-on si on veut modifier la première?

    salut

  10. #10
    Expert confirmé
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Par défaut
    Citation Envoyé par méphistopheles
    au fait, comment fait-on si on veut modifier la première?
    on peut pas

  11. #11
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    ça veut dire qu'on dois la copier ailleurs et la remetre apres je suppose...

  12. #12
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    Puis-je très timidement rappeler ici :
    1) qu'il ne convient pas de parler de "dernière" dimension mais de la dimension "la plus grande". De la même façon, on ne parle pas de la "première" dimension mais de la "plus petite" (qui ne peut en effet être diminuée par un "Redim Preserve" pour des raisons évidentes.
    2) que dans le cas de notre ami demandeur, le problème ne se pose pas puisque, à la base, il n'y a encore aucune dimension arrêtée. Un simple Redim fera, dans ce cas de figure et à mon humble avis, tout-à-fait l'affaire (preserve ou pas)

  13. #13
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    je l'avais mis au cas ou il voulait le refaire apres.

    évidement, ça n'a aucuns interet avant remplissage...

  14. #14
    Membre expérimenté Avatar de AdHoc
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 245
    Par défaut
    Bonjour,
    pour redimensionner toutes les dimensions d'un tableau à n dimensions, une solution simple à mettre en en oeuvre, c'est :
    - copier le tableau d'origine dans un tableau de meme format
    - redimensionner l'origine sans preserve
    - boucle sur toutes les dimensions pour copier les éléments du tableau de sauvegarde dans le tableau redimensionné en faisant attention aux limites des 2 tableaux.

    Sinon, ne pas oublier qu'un tableau de n dimension est un tableau de tableau de n-1 dimensions.

  15. #15
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    bis repetita, donc :

    un innocent (en l'occurence moi-même) a écrit (voir plus haut) :
    2) que dans le cas de notre ami demandeur, le problème ne se pose pas puisque, à la base, il n'y a encore aucune dimension arrêtée. Un simple Redim fera, dans ce cas de figure et à mon humble avis, tout-à-fait l'affaire (preserve ou pas)
    faut-il ajuouter : pas de dimensions et pas de données ?

  16. #16
    Expert confirmé

    Profil pro
    Inscrit en
    Mai 2005
    Messages
    3 419
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 3 419
    Par défaut
    Citation Envoyé par jmfmarques
    Puis-je très timidement rappeler ici :
    1) qu'il ne convient pas de parler de "dernière" dimension mais de la dimension "la plus grande". De la même façon, on ne parle pas de la "première" dimension mais de la "plus petite" (qui ne peut en effet être diminuée par un "Redim Preserve" pour des raisons évidentes.
    2) que dans le cas de notre ami demandeur, le problème ne se pose pas puisque, à la base, il n'y a encore aucune dimension arrêtée. Un simple Redim fera, dans ce cas de figure et à mon humble avis, tout-à-fait l'affaire (preserve ou pas)
    Puis-je très timidement rappeler ici qu'il convient bien de parler de dernière dimension
    la preuve


    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
     
    Function tredim() As String
     Dim x() As Integer
     ReDim x(273, 3)
     ReDim Preserve x(273, 4)
    Dim y() As Integer
    ReDim y(3, 665)
    ReDim Preserve y(3, 666)
    ' c'est diabolique
    tredim = "pas de grande  ni de petite"
    On Error GoTo zutalors
    ReDim Preserve y(4, 666)
    zutalors:
    MsgBox ("la dernière dimension")
    End Function

  17. #17
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    Citation Envoyé par random

    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
     
    Function tredim() As String
     Dim x() As Integer
     ReDim x(273, 3)
     ReDim Preserve x(273, 4)
    Dim y() As Integer
    ReDim y(3, 665)
    ReDim Preserve y(3, 666)
    ' c'est diabolique
    tredim = "pas de grande  ni de petite"
    On Error GoTo zutalors
    ReDim Preserve y(4, 666)
    zutalors:
    MsgBox ("la dernière dimension")
    End Function
    remarque: ontombera toujours sur zutalors que le ReDim Preserve y(4, 666) s'execute ou non.

    salut.

    Edit: c'est amusant, on peut égualement diminuer la taille aavec le préserve... bien qu'il ne préserve pas tout. évidement.

  18. #18
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    random a écrit :
    Puis-je très timidement rappeler ici qu'il convient bien de parler de dernière dimension
    la preuve


    Code:

    Function tredim() As String
    Dim x() As Integer
    ReDim x(273, 3)
    ReDim Preserve x(273, 4)
    Dim y() As Integer
    ReDim y(3, 665)
    ReDim Preserve y(3, 666)
    ' c'est diabolique
    tredim = "pas de grande ni de petite"
    On Error GoTo zutalors
    ReDim Preserve y(4, 666)
    zutalors:
    MsgBox ("la dernière dimension")
    End Function
    Je ne vois nulle part que le demandeur a exprimé cela . Peux-tu m'éclairer ?

  19. #19
    Membre Expert
    Avatar de méphistopheles
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    1 551
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 551
    Par défaut
    son code prouve que c'est bien la dérnière dimention qui est redimentionable par le preserve et non la plus grande.

    salut

  20. #20
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Par défaut
    son code prouve que c'est bien la dérnière dimention qui est redimentionable par le preserve et non la plus grande.
    Le code de qui ?

Discussions similaires

  1. [VB6] Code redimensionnant tiré de la FAQ
    Par Jihnn dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 01/08/2006, 13h10
  2. [VB6]tableau bidimentionnel et presse papier
    Par totof39 dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 19/06/2006, 14h52
  3. [VB6] Tableau champ variable
    Par nils56 dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 01/06/2006, 13h44
  4. [VB6]Tableau d'objet withevents
    Par soazig dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 13/02/2004, 19h44
  5. [VB6] [Interface] Redimensionnement automatique
    Par ychalan dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/09/2002, 18h32

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