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 :

redim tableau a 2 dimensions


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 97
    Par défaut redim tableau a 2 dimensions
    bonjour j'ai ce code
    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
     
    Dim tableau() As Variant
    nomcherche = "!Px F"
    Set result1 = ActiveSheet.UsedRange.Rows(2).Find(What:="!F", LookIn:=xlValues, LookAt:=xlWhole)
    Set colprix = Range(result1.Offset(1, 0).Address, result1.Offset(ActiveSheet.UsedRange.Rows.Count, 0))
    Set zone = Range("a2", Range("a2").Offset(0, ActiveSheet.UsedRange.Columns.Count))
       For I = 1 To zone.Cells.Count
            If Left(LCase(zone.Cells(I).Value), 5) = LCase(nomcherche) Then
                j = j + 1
                nomcherche1 = zone.Cells(I).Value
                Set plage = Range(zone.Cells(I).Offset(1, 0), zone.Cells(I).Offset(ActiveSheet.UsedRange.Rows.Count, 0))
                ReDim Preserve tableau(0 To j - 1, plage.Rows.Count)
                nb = 0
                For Each c In plage
                    tableau(j - 1, nb) = c.Value
                    nb = nb + 1
                Next c
            End If
        Next I
    je remplie le tableau par raport a certain colonne de la feuille.
    le problème c'est quand j passe à 2 il ya un probleme dans cette ligne de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     ReDim Preserve tableau(0 To j - 1, plage.Rows.Count)
    il me disent error 9,l'indice n'apartient pas à la séléction.quand je mets un evaleur fixe ça marche.
    peur-être quelq'un pourrait m'aider

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Par défaut
    Bonjour
    As tu essayé avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReDim Preserve tableau(j, plage.Rows.Count)
    ?
    Edit : Je viens de trouver ça dans l'aide Excel VBA
    Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner que la dernière dimension du tableau

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 97
    Par défaut
    ça marche pas.mais en faite c'est la même chose,moi je fait j=j+1 avant le redim.

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2009
    Messages
    944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vosges (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2009
    Messages : 944
    Par défaut
    Re
    J'avais rajouté ça à mon Post précédent
    Edit : Je viens de trouver ça dans l'aide Excel VBA

    Citation:
    Si vous utilisez le mot clé Preserve, vous ne pouvez redimensionner que la dernière dimension du tableau

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 054
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 054
    Par défaut
    Bonjour,
    ce qui signifie que tu doit modifier ton tableau par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ReDim Preserve tableau( plage.Rows.Count, 0 To j - 1)
    Et bien entendu adapté ta macro en inversant les paramètres.
    Note que le 0 to n'est pas nécessaire à moins que tu ai mis Option Base 1
    A+

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    97
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 97
    Par défaut
    ok merci,j'ai pas compris la première fois.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 26/11/2005, 19h55
  2. Réponses: 13
    Dernier message: 13/10/2005, 16h03
  3. Tableau a trois dimension!!!
    Par krfa1 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 03/10/2005, 15h52
  4. Réponses: 1
    Dernier message: 30/09/2005, 19h17
  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, 10h27

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