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 :

Comment compter le nombre de ligne dans un Array dynamique?


Sujet :

Macros et VBA Excel

  1. #1
    Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 71
    Points : 47
    Points
    47
    Par défaut Comment compter le nombre de ligne dans un Array dynamique?
    Comment est ce que je peux compter le nombre de lignes que j'obtien dans un tableau dynamique?
    Par exemple, j'ai une liste de noms dans une colonne. J'effectus une recherche en fonction d'un nom (que je nomme valeur). Si une cellule dans la liste est egal à valeur, alors je le stock dans un array...Comment puis je faire pour connaitre le nombre de noms stcoker dans le Array (et donc trouvé dans la liste)???

    Merci d'avance,
    Cordialement,
    NY

  2. #2
    Membre chevronné Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Points : 1 900
    Points
    1 900
    Par défaut
    Bonjour

    à tester :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Msgbox ubound(montablo) +1

  3. #3
    Membre averti
    Inscrit en
    Juillet 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Juillet 2007
    Messages : 239
    Points : 307
    Points
    307
    Par défaut
    Bonjour,

    Par définition les arrays ne sont pas de dimension dynamique.

    On peut faire myarr_ = array ( 1 , 3) et le tableau ne comportera que 2 éléments ( indice 0 et 1) , pas de question de faire dans la suite myarr_ (3) = xxx.

    Si tu fais des array 'dynamique' en faisant myarr_ = array ( 0,0,0,0,0,0,0) et en changeant les valeurs , ça n'a pas d'intérêt.

    Si tu fais des structures du type tabl_ () as ... ensuite tu peux faire des lbound et ubound pour connaitre les bornes et des redim pour augmenter le nombre de valeur.

  4. #4
    Membre du Club
    Inscrit en
    Décembre 2010
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 71
    Points : 47
    Points
    47
    Par défaut
    Hum je vois ce que tu veux dire. En fait, je cherche à compter le nombre de vaeurs comprises car j'aimerais le copier dans un range sur une feuille. 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    Dim i As Integer
    Dim J As Integer
    Dim wsB As Worksheet   'Worksheet Alize
    Dim wsK As Worksheet    'Worksheet Portefeuille
    Dim Valeur As String
    Dim wb As Workbook
    Dim nbre As Double
    Dim nbre2 As Double
    Dim Data As Variant
    Dim ArrayValeur
    
    
    Set wsB = ThisWorkbook.Worksheets("Graph")
    Set wsK = ThisWorkbook.Worksheets("A")
    
    Valeur = wsB.Range("AliResearch").Value
    
    Cb = wsK.Range("Date_de_dénouementA").Column
    nbre = wsK.Cells(Rows.Count, Cb).End(xlUp).Row
    
    If Valeur <> "" Then
        
        ReDim ArrayValeur(nbre, 4) As Variant
        
        For i = wsK.Cells.Find("Date de dénouement", lookat:=xlWhole).Column To nbre
            If wsK.Cells(i, 4).Value = Valeur Then
                ArrayValeur(i, 1) = wsK.Cells(i, 2).Value
                ArrayValeur(i, 2) = wsK.Cells(i, 4).Value
                ArrayValeur(i, 3) = wsK.Cells(i, 5).Value
                ArrayValeur(i, 4) = wsK.Cells(i, 7).Value
            End If
    
    'nbre2 = ArrayValeur().End(xlUp).Row
    
    '''''Je cherche ici a copier les valeur du Array ci desssus dans mon range en dessous, mais je n'arrive pas à déterminer le nombre de valeur que j'obtiens dans mon array"""""
       For J = wsB.Cells.Find("Date Echéancier", lookat:=xlWhole).Row + 1 To nbre2
                wsB.Cells(J, 7).Value = ArrayValeur(i, 1)
                wsB.Cells(J, 8).Value = ArrayValeur(i, 2)
                wsB.Cells(J, 9).Value = ArrayValeur(i, 3)
                wsB.Cells(J, 10).Value = ArrayValeur(i, 4)
        Next J
    Next i
    i = i + 1
    End If

  5. #5
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour.

    Pour copier un tableau dans une feuille, il faut que ce tableau ait 2 dimensions et que l'indiçage commence à 1. SOus cette réserve, pour coller MonTab à partir de la cellule k8 de la feuille "MaFeuille"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thisworkbook.Worksheets("MaFeuille").Range("K8").Resize(ubound(MonTab,1),Ubound(MonTab,2)).Value = MonTab
    Cordialement,

    PGZ

Discussions similaires

  1. [Outils] Comment compter le nombre de lignes ?
    Par ChristopheOce dans le forum EDI/Outils
    Réponses: 3
    Dernier message: 18/04/2011, 12h36
  2. Réponses: 4
    Dernier message: 05/05/2006, 23h52
  3. Réponses: 6
    Dernier message: 11/02/2005, 06h41
  4. Réponses: 2
    Dernier message: 02/03/2004, 19h38

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