VBA Excel: code pour fonction somme à étendre
Résolu
Amélie
-
Polux31 Messages postés 7219 Statut Membre -
Polux31 Messages postés 7219 Statut Membre -
Bonjour,
Ma feuille Excel comporte un tableau avec en colonne A des noms, en ligne 1 le titre des colonnes et à l'intérieur du tableau, des données numériques.
En ligne 2, j'aimerais faire la somme des données de la colonne (ex: en B2, obtenir la somme de B3 à Bn) et appliquer la formule aux autres colonnes du tableau (C2 pour la somme de la colonne C, D2 pour la somme de la colonne D...) sachant que le nombre de lignes et de colonnes peut varier d'un classeur à l'autre; comment faire?
Merci d'avance pour votre aide!
Ma feuille Excel comporte un tableau avec en colonne A des noms, en ligne 1 le titre des colonnes et à l'intérieur du tableau, des données numériques.
En ligne 2, j'aimerais faire la somme des données de la colonne (ex: en B2, obtenir la somme de B3 à Bn) et appliquer la formule aux autres colonnes du tableau (C2 pour la somme de la colonne C, D2 pour la somme de la colonne D...) sachant que le nombre de lignes et de colonnes peut varier d'un classeur à l'autre; comment faire?
Merci d'avance pour votre aide!
A voir également:
- VBA Excel: code pour fonction somme à étendre
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Excel compter cellule couleur sans vba - Guide
2 réponses
Bonjour,
Peut être avec ça, en l'adaptant pour le classeur et la feuille :
;0)
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Peut être avec ça, en l'adaptant pour le classeur et la feuille :
Sub Totaux()
Dim dercol As Long
Dim derlig As Long
Dim wk As Workbook
Dim ws As Worksheet
Dim i As Long
Dim j As Long
Set wk = ThisWorkbook '--- A adapter
Set ws = wk.Worksheets(1) '--- A adapter
dercol = ws.Range("A1").End(xlToRight).Column
derlig = ws.Range("A" & Rows.Count).End(xlUp).Row
For i = 2 To dercol
For j = 3 To derlig
ws.Cells(2, i).Value = ws.Cells(2, i).Value + ws.Cells(j, i).Value
Next j
Next i
ws.Range(ws.Cells(2, 2), ws.Cells(2, dercol)).Font.Bold = True
Set wk = Nothing
Set ws = Nothing
End Sub
;0)
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Bonjour,
comment faire?
=> En mettant un exemple de ton classeur sur Cjoint.com (sans donnée confidentielle) et mettre le lien dans un poste suivant.
L'idéal serait en feuil1 l'exemple de départ et en Feuil2 le résultat souhaité
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
comment faire?
=> En mettant un exemple de ton classeur sur Cjoint.com (sans donnée confidentielle) et mettre le lien dans un poste suivant.
L'idéal serait en feuil1 l'exemple de départ et en Feuil2 le résultat souhaité
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Note: Je ne répond pas aux MP pour les questions techniques. Et ma boule de cristal est cassée .
Merci Polux31!!!
;0)
Le code a fonctionné lorsque mon classeur ne contenait qu'une feuille.
En revanche, je ne suis pas parvenue à l'utiliser pour une feuille bien précise d'un classeur qui en contient d'autres.
Comment faire pour l'adapter?
Merci
Set ws = wk.Worksheets(1)
Ou alors le nom
Set ws = wk.Worksheets("Toto") ou Set ws = wk.Worksheets("Feuil3") ...