MACRO VBA / comptage cellule non vide ligne par ligne

Bonjour,

je possède UNE BD,

je cherche ( par macro absolument) à compter les cellules non vides, ligne après ligne uniquement pour les lignes non vides de ma BD

Puis diviser pour chaque ligne le total d'un prix qui est déjà affiché automatiquement, et renvoyer la valeur de la division pour chaque ligne dans la colonne correspondante

Exemple

Ligne 1 compter cellule non vide de colonne A à L, (le faire ensuite pour chaque ligne non vide)

renvoyer le résultat en colonne M (donc pour la ligne 1 : M1) et le faire pour chaque ligne non vide

Enfin , diviser un

16classeur-test.xlsx (9.93 Ko)

prix déja existant en colonne N ( dans cet exemple N1) par valeur renvoyée en M ( dans l'exemple M1) et affecter le résultat en O1

le faire pour chaque ligne non vide .

Si quelqu'un peut m'y aider ..... je serai comptant.... !

Une proposition :

18classeur-test.xlsm (18.27 Ko)
Sub Macro1()
    Dim nL As Long, wS As Worksheet
    Dim i As Byte, j As Long, nb As Byte

    Set wS = Sheets("BD")
    nL = wS.UsedRange.Rows.Count
    For j = 2 To nL
        nb = 0
        For i = 1 To 12
            If wS.Cells(j, i) <> "" Then nb = nb + 1
        Next i
        wS.Cells(j, 13) = nb
        ' Calcul des moyennes
        If wS.Cells(j, 14) <> "" Then wS.Cells(j, 15) = wS.Cells(j, 14) / wS.Cells(j, 13)
    Next j
End Sub

Merci beaucoup ! ça fonctionne parfaitement !

une réponse on ne peut plus rapide et efficace !

Bonjour,
Une alternative.
Cdlt.

Public Sub AverageCosts()
'avec bouton dans feuille active
Dim lastRow As Long, lRow As Long, n As Double
    With ActiveSheet
        lastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        For lRow = 2 To lastRow
            n = WorksheetFunction.CountA(.Cells(lRow, 1).Resize(, 12))
            If n > 0 Then .Cells(lRow, 15).Value = .Cells(lRow, 14).Value / n
        Next lRow
    End With

End Sub

Merci beaucoup Jean Eric pour cette reponse alternative.

Rechercher des sujets similaires à "macro vba comptage vide ligne"