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 :

Connaître le nombre d'éléments d'un tableau [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Par défaut Connaître le nombre d'éléments d'un tableau
    Bonjour le Forum,
    En me référant à l'image ci-jointe (http://cjoint.com/?CImhJvDQ3zY), les villes alimentent une variable tableau à deux dimensions via une double boucle imbriquée (voir ci-dessous).
    Question: est-il possible de connaître le nombre d’éléments présents dans le tableau par pays ? Par exemple, pour le premier pays il y a 8 éléments, pour le deuxième, 6 éléments, ...
    D’avance, soyez remerciés pour vos réponses

    Harry

    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
    Dim tab_villes(10, 10)
    Worksheets("Pays").Activate
    Cells(1, 1).Activate
    LastCol = Range(Selection, Selection.End(xlToRight)).Count
    For j = 1 To LastCol
        ActiveCell.Offset(0, 1).Activate
        LastRow = Range(Selection, Selection.End(xlDown)).Count + 2
        For i = 1 To LastRow
            If Len(Worksheets("Pays").Cells(i + 1, j)) <> 0 Then
            tab_villes(i, j) = Worksheets("Pays").Cells(i + 1, j)
            Else
            Exit For
            End If
        Next i
    Next j
    End Sub

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    essaies comme ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    'avec base 0
      For x = 0 To 9
        MsgBox UBound(tab_villes, x)
      Next x
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Par défaut
    Bonjour Casefayere,

    Merci pour la réponse.
    J'avais essayé le code proposé mais il donne les deux dimensions définies dans la déclarative (dim tab_villes(10,10)) et, c'est logique, donne une erreur "subscript out of range" au troisième passage.

    Excellente journée

    Harry

  4. #4
    Membre éclairé
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2008
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2008
    Messages : 225
    Par défaut
    Bonjour à tous,
    Comme je n'ai pas trouvé de fonction pour réponsre à mon problème, j'ai modifié le code de la double boucle en ajoutant un compteur, ci-dessous en rouge.
    Bonne journée

    Harry

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    For j = 1 To LastCol
        ActiveCell.Offset(0, 1).Activate
        LastRow = Range(Selection, Selection.End(xlDown)).Count + 2
        For i = 1 To LastRow
            If Len(Worksheets("Pays").Cells(i + 1, j)) <> 0 Then
            tab_villes(i, j) = Worksheets("Pays").Cells(i + 1, j)
            Else
            ctr_pays(j) = i - 1
            Exit For
            End If
        Next i
    Next j

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

Discussions similaires

  1. Connaître le nombre d'éléments d'un tableau
    Par gege2061 dans le forum Télécharger
    Réponses: 0
    Dernier message: 30/11/2010, 16h39
  2. Compter le nombre d'éléments d'un tableau
    Par Ishizaki dans le forum ASP.NET
    Réponses: 28
    Dernier message: 21/04/2008, 09h08
  3. nombre d'éléments pour un tableau
    Par sakura.haruno dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 10/12/2007, 09h11
  4. Nombre d'élément d'un tableau
    Par barok dans le forum Flash
    Réponses: 3
    Dernier message: 10/10/2005, 20h02
  5. Compter le nombre d'élément dans un tableau
    Par cryptorchild dans le forum Langage
    Réponses: 6
    Dernier message: 08/07/2005, 13h01

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