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 :

Connaitre le nombre de ligne et colonne d'une matrice [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 110
    Points : 61
    Points
    61
    Par défaut Connaitre le nombre de ligne et colonne d'une matrice
    Bonjour,

    j'ai un tableau à partir d'une requête SQL

    Comment pourrais-je savoir le nombre de ligne et colonne contient le tableau

    merci d'avance
    Devellopeur logiciel d'imagerie medicale

  2. #2
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    S'il s'agit de cellules contenant des valeurs, tu peux utiliser la propriété End pour connaitre la dernière cellule (en ligne ou en colonne) contenant une donnée.
    En y accolant la propriété Row ou Column, on peut respectivement en avoir le numéro de ligne ou de colonne.
    Si tes données commencent en A1, ça te donnera la taille du tableau.
    https://msdn.microsoft.com/fr-fr/lib.../ff839539.aspx

    Tu peux aussi utiliser UsedRange avec Rows.Count et Columns.Count.
    https://msdn.microsoft.com/fr-fr/lib.../ff840732.aspx

    Il y a certainement plusieurs autres méthodes.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 110
    Points : 61
    Points
    61
    Par défaut
    Bonjour Menhir

    Non non ce n'est pas des cellules,
    c'est un tableau de variable en mémoire du genre
    soucis je connais pas le nombre de ligne, ni de colonne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Tab(1,0)= var1
    Tab(1,1)= var2
    Devellopeur logiciel d'imagerie medicale

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 764
    Points : 28 622
    Points
    28 622
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    c'est un tableau de variable en mémoire du genre
    soucis je connais pas le nombre de ligne, ni de colonne
    La lecture de ce tutoriel t'apportera la réponse Utiliser les variables tableaux en VBA Excel
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    intéresse toi plus particulièrement à UBound() et LBound() afin d'interroger les bornes supérieurs et inférieure d'un tableau interne

  6. #6
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Bonjour,

    On pourrait représenté ça de façon imagée ou la première dimension représente les lignes, la seconde dimension, les colonnes et la troisième dimension les feuilles empilées les unes sur les autres, après trois dimensions, ça devient ingérable (c'est déjà pas simple en ajoutant la troisième) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub Test()
     
        Dim Tbl(1 To 12, 1 To 45, 1 To 3)
     
        MsgBox "Nombre de lignes : " & UBound(Tbl, 1) & _
               vbCrLf & _
               "Nombre de colonnes : " & UBound(Tbl, 2) & _
               vbCrLf & _
               "Nombre de feuilles : " & UBound(Tbl, 3)
     
    End Sub
    Qu'il est possible de vérifier avec ce petit test mais seulement sur les lignes et colonnes (pour la dimension z c'est plus compliqué, il faut passer par une boucle) :
    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
     
    Sub Test2()
     
        Dim Tbl(1 To 12, 1 To 45)
        Dim I As Integer
        Dim J As Integer
        Dim K As Integer
     
        For I = 1 To 12: For J = 1 To 45
     
                Tbl(I, J) = "I : " & I & " J : " & J
     
        Next J, I
     
       Range(Cells(1, 1), Cells(UBound(Tbl, 1), UBound(Tbl, 2))).Value = Tbl
     
    End Sub

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 110
    Points : 61
    Points
    61
    Par défaut
    Salut joe.levrai

    Excuse moi
    mais sauf erreur de ma part UBound() et LBound() renvois la valeur la plus grande et la valeur la plus petit dans un colonne
    ce que je cherche c'est comptabiliser le nbr de ligne et de colonne
    Devellopeur logiciel d'imagerie medicale

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 764
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 764
    Points : 28 622
    Points
    28 622
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    mais sauf erreur de ma part UBound() et LBound() renvois la valeur la plus grande et la valeur la plus petit dans un colonne
    ce que je cherche c'est comptabiliser le nbr de ligne et de colonne
    La réponse de Joe que je salue au passage est exacte. Prends la peine de lire le tutoriel que je t'ai conseillé et tu pourras le constater par toi même.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  9. #9
    Expert éminent
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    3 453
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 3 453
    Points : 6 871
    Points
    6 871
    Par défaut
    Un exemple avec Ubound() et Lbound() pour que tu saisisses mieux :
    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
     
    Sub Test2()
     
        Dim Tbl(3 To 12, 10 To 45)
        Dim I As Integer
        Dim J As Integer
     
        For I = LBound(Tbl, 1) To UBound(Tbl, 1): For J = LBound(Tbl, 2) To UBound(Tbl, 2)
     
                Tbl(I, J) = "I : " & I & " J : " & J
     
        Next J, I
     
       Range(Cells(1, 1), Cells(UBound(Tbl, 1) - LBound(Tbl, 1) + 1, UBound(Tbl, 2) - LBound(Tbl, 2) + 1)).Value = Tbl
     
    End Sub

  10. #10
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par mlww Voir le message
    mais sauf erreur de ma part...
    Bin... sans doute as-tu omis que ces deux fonctions ont DEUX paramètres :
    https://msdn.microsoft.com/fr-fr/VBA...bound-function
    https://msdn.microsoft.com/fr-fr/VBA...bound-function
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juillet 2002
    Messages : 110
    Points : 61
    Points
    61
    Par défaut
    Bonjour Messiers,

    Autant pour moi
    j'ai beugué et mal lut en plus, désolé
    merci a vous tous, et aussi pour le bout code
    bonne journée
    Devellopeur logiciel d'imagerie medicale

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 01/04/2014, 13h10
  2. Supprimer ligne et colonne d'une matrice
    Par programeur dans le forum Débuter
    Réponses: 2
    Dernier message: 06/03/2013, 15h51
  3. [Débutant] conserver dans un vecter des indices de lignes et colonnes d'une matrice
    Par membreComplexe12 dans le forum MATLAB
    Réponses: 4
    Dernier message: 09/03/2010, 19h57
  4. Connaitre le nombre de lignes imprimees
    Par Gremlins13 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 12/01/2006, 18h31
  5. Connaitre le nombre de lignes imprimees
    Par Gremlins13 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 20/01/2005, 14h38

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