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 dynamique hors limite


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 74
    Par défaut Tableau dynamique hors limite
    Bonjour,

    J'ai un soucis avec un tableau dynamique:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    If matchName = False Then  'une erreur est détecté, alors il entre ici pour stocker le nom qui pause problème
     
       c = c + 1
       ReDim tableNomOrphelin(1 To c, 1 To 2)
     
       tableNomOrphelin(c, 1) = tableNom(a) 'il passe le nom 
       tableNomOrphelin(c, 2) = WS1.Cells(i, X2).Address 'et son adresse
    End If
    En deux mots, si la condition est remplie, il entre dans le IF, il prends le nom de la tableNom et le passe dans la tableNomOrphelin etc...
    C'est c'est OK avec une seul entrée, la première.
    S'il doit revenir dans cette partie du code, il va y avoir un problème de redimensionnement, j'ai une erreur 9, problème de dimension (hors dimension).

    Qu'en pensez-vous???

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Tu as une boucle et tu ne peux redimensionner que la 2ème dimension
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    If matchName = False Then  'une erreur est détecté, alors il entre ici pour stocker le nom qui pause problème
       c = c + 1
       ReDim Preserve tableNomOrphelin(1 To 2, 1 To c)
       tableNomOrphelin(1, c) = tableNom(a) 'il passe le nom
       tableNomOrphelin(2, c) = WS1.Cells(i, X2).Address 'et son adresse
    End If

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 74
    Par défaut
    Bonjour mercatog,

    Ok, j'ai fait comme tu as fais et ça fonctionne, génial.

    En revanche, ce que je ne comprends pas, c'est que si tu fais une table dans le sens horizontale, comme dans ton cas, cela fonctionne, X colonne pour 2 rangée mais, si tu le fais en horizontale, 2 colonnes pour x rangée, il plante !!!

    Le truc drôle, c'est que si tu ne mets pas "Preserve" comme dans mon premier cas cela fonctionne. Sauf que les données sont effacées à chaque passage...

    Une dernière question???
    Quel est la commande pour récupérer le nombre d'info dans un table

  4. #4
    Membre Expert
    Homme Profil pro
    Retraité
    Inscrit en
    Avril 2011
    Messages
    1 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 858
    Par défaut
    Bonjour,

    Je crains que tu n’aies pas bien saisi ce que t’a indiqué mercatog.
    Avec ReDim Preserve tu ne peux pas modifier la taille de la première dimension de ton tableau.
    Seule la dernière dimension du tableau peut être modifiée.

    http://silkyroad.developpez.com/vba/tableaux/

    Cordialement.

  5. #5
    Membre émérite Avatar de issoram
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2009
    Messages
    665
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 665
    Par défaut
    Bonjour,

    Tu te sers d'un tableau dont (seule) la deuxième dimension est dynamique. Puis avec: tu retombes sur ce que tu veux

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2007
    Messages : 74
    Par défaut
    oups, vous avez répondu plus vite que moi ;-)

    Oui, j'ai compris mais un peu tard

    Donc, pour conclure, seul la dernière dimension d'une table peut être dynamique, je crois que c'est clair maintenant.

    Et je vais essayer le "transpose" juste pour le fun

    Merci à vous

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 19/03/2015, 18h31
  2. Tableau Dynamique : Valeur hors indice
    Par Miistik dans le forum VBScript
    Réponses: 0
    Dernier message: 10/04/2013, 15h43
  3. AFFICHER UN TABLEAU DYNAMIQUE
    Par ghassenus dans le forum Langage
    Réponses: 2
    Dernier message: 28/12/2002, 14h19
  4. [Kylix] tableau dynamique
    Par sdoura2 dans le forum EDI
    Réponses: 1
    Dernier message: 31/10/2002, 08h57
  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