Pour le fun : Nb de lignes

Bonsoir @ tous,

J'ai rien à faire ce Week-End alors pourquoi pas jouer avec mes amis ??

Sur une plage nommée Zone d'une hauteur de 10.000 de lignes et 10 colonnes de largeur, compter le nombre de lignes dont la valeur minimale est supérieure à 3. (Sans aucune colonne intermédiaire)

Qui vont être rapide est-ce les formules ou les codes???

J'ai prévu 1.000.000 de lignes mais le fichier a fait 47Mo...

Donc on peut donner un exemple de 10.000 lignes et vous pouvez faire les tests chez vous sur une base de 1.000.000 de lignes si vous voulez.

@ + +

25pour-le-fun.zip (239.03 Ko)

Re,

2 propositions par macro pour 10 000 lignes... la 2e proposition, est la plus rapide.

35pour-le-fun.rar (231.46 Ko)

Bonjour@ tous,

Salut Game Over,

Bien joué...

Merci pour ton retour

@ + +

Dans la même veine :

Dim res As Long, iCol As Integer
    Dim cpt As Long, i As Long
    Dim d As Double, f As Double
    Const valObj = 3

    d = Timer

    With ThisWorkbook.Worksheets(1)
        dernLigne = ThisWorkbook.Worksheets(1).Range("A" & Rows.Count).End(xlUp).Row
        tbl = ThisWorkbook.Worksheets(1).Range("A2:J" & dernLigne).Value
    End With

    j = UBound(tbl)

    iCol = 1
    cpt = 0
    iMin = False
    res = 4

    For i = 1 To j

        Do While res >= valObj
            res = tbl(i, iCol)

            If res <= valObj  Then
                cpt = cpt + 1
                res = 4
                Exit Do
            Else
                iCol = iCol + 1
                If iCol > 10 Then Exit Do
            End If

        Loop

        iCol = 1

    Next

    f = Timer

    MsgBox ("Timer : " & f - d & "    Cpt : " & j - cpt)

Bonjour @ tous,

Salut geeib,

J'ai pas pu faire fonctionner ta macro, merci de bien vouloir la joindre sur un fichier...

@ + +

Voilà.

23pour-le-fun.zip (246.53 Ko)

Bonjour,

Merci pour ton retour...

Je vais essayer de donner une formule plus rapide, je pense que tu peux tester le temps de calcul d'une formule via un code VBA...

@ + +

Bonjour,

La plage qui contient les valeurs est déjà nommée Zone sur mon fichier.

Alors une formule à tester :

=NB(1/(SOUS.TOTAL(5;DECALER(Zone;LIGNE(INDIRECT("1:"&LIGNES(Zone)))-1;;1))>3))

@ valider par Ctrl+Maj+Entree

@ + +

Rechercher des sujets similaires à "fun lignes"