[VBA] Somme de colonne tant que non vide

mmalzert

XLDnaute Occasionnel
Bonjour à tous.
Je compile 4 onglets en un seul avec le code suivant.
Code:
   Me.Cells.Clear
   With Sheets("#1")
      .Range(.[A3], .[A3].SpecialCells(xlCellTypeLastCell)).Copy Destination:=Me.Cells(1, 1)
   End With
   With Sheets("#2")
      .Range(.[A4], .[A4].SpecialCells(xlCellTypeLastCell)).Copy Destination:=Me.Cells(Me.Rows.Count, 1).End(xlUp).Offset(1, 0)
   End With
   With Sheets("#3")
      .Range(.[A4], .[A4].SpecialCells(xlCellTypeLastCell)).Copy Destination:=Me.Cells(Me.Rows.Count, 1).End(xlUp).Offset(1, 0)
   End With
   With Sheets("#4")
      .Range(.[A4], .[A4].SpecialCells(xlCellTypeLastCell)).Copy Destination:=Me.Cells(Me.Rows.Count, 1).End(xlUp).Offset(1, 0)
   End With
   
   With Me.[A1]
      With .CurrentRegion
         .Copy
         .PasteSpecial Paste:=xlPasteValues
      End With
      Application.CutCopyMode = False
      .Select
   End With

Je supprime ensuite les colonnes qui ne m'interessent pas :

Code:
Range("A:A,C:C,J:J,M:M,O:P,R:T").Select
Range("T1").Activate
Selection.Delete Shift:=xlToLeft

Enfin, et c'est ici que j'ai besoin d'aide, je cherche à faire la somme des colonnes H, I, J, K en colonne L à partir de la ligne 2 tant qu'il y a des valeurs dans l'une d'entre elles.
En L1 je veux mettre "Total" avec le même format que la ligne 1.

Merci pour votre aide.
 

Pièces jointes

  • mmalzert.xls
    31.5 KB · Affichages: 74
  • mmalzert.xls
    31.5 KB · Affichages: 79
  • mmalzert.xls
    31.5 KB · Affichages: 81
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : [VBA] Somme de colonne tant que non vide

Bonsoir mmalzert,

Tu peux essayer une ligne du genre :

Code:
Total = Application.Sum(Range("H:K").SpecialCells(xlCellTypeConstants)

Ca devrait marcher à condition que tes colonnes ne contiennent pas de résultas dûs à des formules.

Cordialement.
 

mmalzert

XLDnaute Occasionnel
Re : [VBA] Somme de colonne tant que non vide

Bonjour Papou. Merci pour ton aide.

Les colonnes sont des valeurs.
Par contre, je ne vois pas comment intégrer ton code. J'ai juste copier coller et ça me mets une erreur du coup. Je n'ai pas de variable à définir ?
 

Papou-net

XLDnaute Barbatruc
Re : [VBA] Somme de colonne tant que non vide

Bonjour mmalzert,

Aec ton code en entier sous les yeux ce serait plus facile d'être précis.

Mais après relecture de ton message initial je te propose de placer, à l'endroit qui convient le mieux dans ta macro, les lignes suivantes :

Range("L1") = Application.Sum(Range("H2:K" & Rows.Count).SpecialCells(xlCellTypeConstants))

Pour info : dans ma réponse précédente, j'ai omis de mettre une parenthèse fermante en fin de ligne. Peut-être est-ce la cause de l'erreur que tu as obtenue ?

Quoiqu'il en soit, si tu ne parviens pas à solutionner la question, il serait alors toujours temps de joindre une version allégée de ton fichier, et sans données confidentielles bien entendu.

Cordialement.

PS : je te joins un petit fichier de démo.
 

Pièces jointes

  • mmalzert.xls
    34 KB · Affichages: 75
  • mmalzert.xls
    34 KB · Affichages: 77
  • mmalzert.xls
    34 KB · Affichages: 78

mmalzert

XLDnaute Occasionnel
Re : [VBA] Somme de colonne tant que non vide

Petit up.

Il manque des éléments pour que l'on puisse m'aider ?
Je cherche maintenant à insérer une formule recherchev dans une colonne (D) qui va chercher dans un autre onglet.
Elle doit être appliquée jusqu'à la derniere ligne non vide.

Merci d'avance.

Edit : je me répond à moi même.
J'ai trouvé et adapté le code suivant.
Code:
Sub recherchev()

    Dim lgDebLig As Long
    Dim lgFinLig As Long
    Dim lgLig As Long
   
    ' Première ligne de la colonne D
    lgDebLig = 2    ' A changer en fonction du début de la première ligne de données
    ' Dernière ligne remplie en colonne D
    lgFinLig = Range("E" & Cells.Rows.Count).End(xlUp).Row
   
    For lgLig = lgDebLig To lgFinLig
        ' Mettre la formule dans la colonne désirée
        Range("D" & lgLig).Formula = "=VLOOKUP(C" & lgLig & ",'Table de conversion mois'!$A2:$b12,2,0)"
    Next lgLig

End Sub
 
Dernière édition:

Discussions similaires

Réponses
2
Affichages
117

Statistiques des forums

Discussions
312 215
Messages
2 086 314
Membres
103 176
dernier inscrit
jean.yvesjean.yves