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 :

"out of range" error avec ReDim Preserve


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
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Par défaut "out of range" error avec ReDim Preserve
    Bonjour,

    Je n'arrive pas a trouver d'ou vient l'erreur numero 9, "Subscript out of range". La ligne qui pose probleme est celle qui commence par ReDm Preserve.
    Pour info, je cree un tableau VBA qui recupere les valeurs des ventes realisee un jour donne (aujourd'hui), et les reecris dans ma feuille de rapport.

    Voici mon 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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    Sub bidul_truc()
     
    ' creer un tableau qui contient les details journaliers
    ' nombre de lignes pas defini, 8 colonnes, i.e. dimension 2 = 7
    Dim NBlignes, i, j, l As Integer, cellule, cellule2, cellule3 As Range
    Dim jour()
     
    'compter le nombre de deals aujourd'hui pour le nb de lignes du tableau du tableau
    NBlignes = 0
    borne = NomFeuille.Range("Dates").Cells.Count
     
    'remplir le tableau avec les valeurs
        For Each cellule In NomFeuilleRange("Dates")
        j = 0
          If cellule = Date Then
            NBlignes = NBlignes + 1
            ReDim Preserve jour(NBlignes - 1, 7) As Variant
              jour(NBlignes - 1, 0) = cellule
     
           For Each cellule3 In NomFeuille.Range("Daily")
            For Each cellule2 In NomFeuille.Range("Headings")
     
                    If cellule3 = cellule2 Then
                     jour(NBlignes - 1, j) = cellule.Offset(0, cellule2.Column - 3)
                     j = j + 1
                    Exit For
                    End If
                 Next cellule2
                Next cellule3
     
        End If
        Next cellule
    Je suis un peu perdue la dessus, merci d'avance de votre aide.

  2. #2
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour,

    au premier passage dans ton redim, NBlignes vaut 0
    ( Car 0 + 1 - 1 = 0)

    Il aime pas ça le vba.

  3. #3
    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
    On ne redimensionne que la dernière dimension
    change l'ordre de ton tableau
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReDim Preserve jour(0 To 7, 0 To NBlignes - 1)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    91
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Janvier 2008
    Messages : 91
    Par défaut
    D'accord, je comprends le principe, mais je ne vois pas pourquoi VBA ne supporte pas le redimensionnement de 2 dimensions a la fois.

    Merci pour la reponse en tout cas!

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

Discussions similaires

  1. [XL-2010] Probleme avec Redim Preserve
    Par awa123 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/08/2014, 12h31
  2. Réponses: 1
    Dernier message: 23/04/2008, 10h37
  3. test sur nom de sheet => "error 9 out of range"
    Par _debutant dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 09/12/2007, 15h54
  4. BIRT 2.0 Out of memory error avec les graphiques
    Par tiboudchou dans le forum BIRT
    Réponses: 17
    Dernier message: 11/08/2006, 15h04
  5. Out of range avec un Vector
    Par snot224 dans le forum SL & STL
    Réponses: 8
    Dernier message: 05/07/2006, 23h26

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