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 :

VBA Matrice nombre de lignes [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 20
    Par défaut VBA Matrice nombre de lignes
    Bonjour,

    Merci d'avance pour votre aide.

    J'ai une matrice de taille (1 to 270 , 1 to 15). Elle est composée de données mais chaque colonne ne détient pas forcément le même nombre de données. Exemple colonne 1 j'ai 270 données, colonne 2 145, colonne 3 240 ainsi de suite. Quand il n'y a pas de donnée, c'est considéré comme vide.

    Je souhaite déterminer pour chaque colonne le nombre de ligne qui contient des données.

    Pouvez-vous me donner une ou plusieurs pistes de réflexion. J'ai pensé à Xldown ou à faire une boucle à l'aide de IsEmpty mais je ne vois pas comment l'appliquer à une matrice.

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Salut,

    sous quelle forme souhaiterais tu avoir ton resultat ?

    un tableau d'entier ? une chaine de caracteres (concatenation) ?
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  3. #3
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 20
    Par défaut
    Je souhaite avoir cette info pour chaque colonne à un instant t et pas forcément stocké.

    Mon but étant d'appliquer à chaque colonne un calcul mais j'ai besoin de déterminer à quel moment je n'ai pas les données pour dire à ma macro de stopper et ne pas avoir "l'indice n'appartient pas à la sélection"

    Exemple :

    une matrice de taille (1 to 270 , 1 to 15).

    J'ai une bloucle, i = 1 to 15 correspondant au nombres de colonne et x = 1 to 270 au nombre de lignes de ma matrice qui exécute un calcul

    Sauf que dans ma première colonne, je dispose uniquement de 240 données et dans ce cas précis j'aimerais dire que SI on arrive à la dernière ligne de la colonne 1 la macro passe à la prochaine colonne ainsi de suite.

    Merci Jean-Philippe André

  4. #4
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Tu n'as pas exactement repondu a ma question, mais je me contenterai pour l'instant de cela.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim i As Integer
    For i=1 To 15
        msgbox "Colonne " & i & " " & Cells(270,i).End(xlup).Row
    Next i
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

  5. #5
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 20
    Par défaut
    Désolé, je ne souhaite pas afficher le résultat trouvé mais juste avoir cette info à un instant T.

    Un exemple de code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Dim PriceRange(1 to 270, 1 to 15), x As integrer, i As integrer, DlyRet (1 to 270, 1 to 15), N as integrer, V as integrer
     
    'PriceRange() des données sont récupérées à partir d'un fichier ou autre source
     
    N = UBound(PriceRange, 1) 'Nombre de lignes ici 270
    V = UBound(PriceRange, 2) 'Nombre de colonne ici 15
     
    For i = 2 To V
        For x = 2 To N           
            DlyRet(x, i) = Log(PriceRange(x, i) / PriceRange(x + 1, i))               
        Next x    
    Next i
    Dans la boucle, je souhaite déterminer à quel moment j'arrive à la dernière ligne en fonction de la colonne présente dans la matrice. Afin de ne pas avoir "l'indice n'appartient pas à la sélection" étant donné que pour chaque colonne je ne dispose pas du même nombre de données.

    J'espère avoir été assez clair. Merci encore pour ton aide.

  6. #6
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    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 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    il s'agit aussi de savoir comment sont remplies tes deux tableaux

    car si ça provient d'une plage, même des cellules vides génèrent un indice dans le tableau
    si ça provient d'une saisie réalisée par une procédure, c'est dans celle-ci qu'il est préférable de collecter les bornes de chaque colonnes, en passer par une variable tableau publique ou en transmettant ceci au titre d'argument d'un nouveau paramètre à créer

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

Discussions similaires

  1. Filtre VBA avec nombre de lignes variable
    Par hugohours1993 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 26/01/2016, 21h23
  2. Réponses: 2
    Dernier message: 24/01/2008, 16h08
  3. Réponses: 4
    Dernier message: 18/04/2007, 19h20
  4. [VBA-E] Recuperer le nombre de lignes filtrées avec SubTotal
    Par AliochaBada dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 02/09/2006, 23h53
  5. [VBA-E] connaitre le nombre de ligne dans un tableau excel
    Par bigbarbe dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 13/04/2006, 10h03

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