Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Microsoft 365 Ecriture de formules dans VBA sur cellules non vides

ShuarS

XLDnaute Occasionnel
Bonjour à tous,

Meilleurs Vœux 2021 !

Je n’ai pas fait de VBA depuis un moment et je coince sur l’écriture du code.

Je joins un fichier pour modèle.
La seule particularité est le nombre de cellules non vides en colonne B.
Ces cellules peuvent être variables en quantité et en ligne.
C.-à-d., non vide en B3 et B5 dans mon exemple, mais dans un autre fichier ce pourrait être B12 et B20.

L’idée est donc dans un premier temps d’identifier les cellules non vides de la colonne B.
Ensuite j’aimerais en D1 ; E1 ; F1 écrire au lancement de la macro une formule de SOMME sur les ces colonnes et lignes non vides.
Pour finir en colonne H, j’aimerais écrire une SOMME des lignes non vides.

J’espère avoir été clair,
Merci pour votre aide.

Shu
 

Pièces jointes

  • TEST_LP.xlsx
    9 KB · Affichages: 24
Solution
@ShuarS, le fil,

ton fichier en retour ; même utilisation : Ctrl e

VB:
Option Explicit

Sub Essai()
  Dim dlg&: dlg = Cells(Rows.Count, 2).End(3).Row: If dlg < 3 Then Exit Sub
  Dim Tbl, T(5), lig&, col%: dlg = dlg - 2: Tbl = [B3].Resize(dlg, 17)
  For lig = 1 To dlg
    If Tbl(lig, 1) <> "" Then
      T(0) = 0
      For col = 3 To 7
        T(0) = T(0) + Tbl(lig, col)
        T(col - 2) = T(col - 2) + Tbl(lig, col)
      Next col
      Tbl(lig, 17) = T(0)
    End If
  Next lig
  Application.ScreenUpdating = 0: Columns(18).ClearContents
  For col = 4 To 8
    Cells(2, col) = T(col - 3)
  Next col
  [R3].Resize(dlg) = Application.Index(Tbl, Evaluate("Row(" & "1:" & dlg & ")"), 17)
End Sub

effectivement...

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…