Somme de colonnes

Résolu/Fermé
Lils_Bis Messages postés 57 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 28 décembre 2020 - 11 avril 2016 à 09:05
Lils_Bis Messages postés 57 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 28 décembre 2020 - 12 avril 2016 à 08:55
Bonjour à tous,
Tout d'abord je vais vous présenter mon problème (qui n'est surement pas bien compliqué, mais VBA et moi n'avons jamais fait bon ménage...) :
Alors j'ai X colonnes et je voudrais faire la somme de chacune de celles-ci de manières distinctes. Je pense qu'il faut utiliser une boucle, qui fera tout d'abord la somme de la colonne A, puis la B, etc........
Or, je n'y arrive décidément pas...

Si quelqu'un a ça sous le coude, cela me serait d'une aide immense !

En vous remerciant du temps que vous passerez pour m'aider, je vous souhaite une bonne journée !


1 réponse

Patrice33740 Messages postés 8556 Date d'inscription dimanche 13 juin 2010 Statut Membre Dernière intervention 2 mars 2023 1 779
11 avril 2016 à 09:21
Bonjour,

Pourquoi utiliser du VBA lorsqu'une simple formule semble suffire ?
1
Lils_Bis Messages postés 57 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 28 décembre 2020
11 avril 2016 à 13:56
Bonjour Patrice,
Pour tout dire mon programme est destiné à l'analyse de questionnaire. Ainsi, le nombre de colonne peut varier d'un questionnaire à l'autre. Et c'est pour ça que je souhaite utiliser VBA (autre raison : mon maître de stage veut que je le fasse ainsi ^^).
0
Utilisateur anonyme > Lils_Bis Messages postés 57 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 28 décembre 2020
11 avril 2016 à 15:59
Bonjour Lils_Bis,

Tu as écrit que le nombre de colonnes peut varier d'un questionnaire à l'autre ; peux-tu me dire si pour chacun, la 1ère colonne utilisée est toujours la colonne A ?

============================================================

Tu ne dis rien à propos des lignes !

Quelle est la 1ère ligne de départ ? C'est peut-être la ligne 1, mais pas
forcément : s'il y a une ligne d'en-têtes en ligne 3 (par exemple), alors les données à additionner commenceront en ligne 4.

Est-ce que pour tous les questionnaires la 1ère ligne de départ est toujours la même ? Si oui, ça simplifiera le problème.

Je pense que le nombre de lignes est probablement différent d'un questionnaire à l'autre.

Si tu me dis que c'est toujours le même nombre de lignes, cela aussi simplifiera. Si oui, quel est ce nombre de lignes ?

Si pour chaque questionnaire et pour chaque colonne :
- le 1er nombre à additionner est en ligne 4
- il y a 10 lignes

Alors, pour un nombre variable de colonnes, il faudra toujours additionner les nombres de la ligne 4 à la ligne 13 et le résultat de la colonne sera juste en-dessous, en ligne 14.

============================================================

Tu n'as pas parlé du nombre de feuilles, mais je pense qu'il y a 1 questionnaire par feuille ! Si oui, combien en as-tu en tout ?

Il se peut aussi que pour chaque questionnaire, il y aie
un classeur Excel d'une seule feuille chacun ?

============================================================

Enfin, quel est le format numérique des données à additionner ? Est-ce toujours des nombres entiers ? Ou des nombres avec 2 chiffres après la virgules ? Ou autre ?

Peut-être est-ce variable sur un même questionnaire ? Sauf dans ce cas, ta réponse sera-t-elle valable pour tous les questionnaires ?

Ces questions sur le format numérique sont uniquement pour me permettre de créer un exemple qui se rapproche au plus près de
ce que tu utilises.

Mais si ça n'a pas d'importance, je pourrai mettre des nombres entiers choisis au hasard entre 1 et 100 (on dit que ce sont des nombres aléatoires).

============================================================

Bien sûr, je n'aurais pas besoin de poser autant de questions si j'avais sous les yeux au moins un petit échantillon de tes questionnaires !

Et aussi si je pouvais voir concrètement ton ou tes classeurs Excel, et la façon dont tes données sont placées sur les feuilles de calcul.

Si tu réponds à ces questions, j'essayerai de trouver une solution.
En fait, j'ai déjà une petite idée, mais je ne te promets rien !  😊
 
0
Lils_Bis Messages postés 57 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 28 décembre 2020
Modifié par Lils_Bis le 11/04/2016 à 16:34
Bonjour Albkan, en effet à te lire il doit manquer quelques trucs dans mon explication ^^
Ainsi, je vais reprendre tes questions une par un en y répondant en dessous :)

1 -
Oui, dans tous les cas ça commencera dans la colonne A, 1ère colonne utilisée.

2 -
Ligne 1, j'ai le nom de mes variables et les données à exploiter commence ligne 2. Et oui, c'est toujours la ligne 2 qui commence. Mais en effet, le nombre de lignes va varier d'un questionnaire à l'autre mais commence dans tous les cas à la ligne numéro 2.

3 -
J'ai un questionnaire par classeur.
En faite, j'ai sélectionné des colonnes de ma feuille de départ," Feuil1" que j'ai collé dans une seconde feuille du même classeur appelé "Sum-Mean". Donc je ne m'intéresse pour cette partie qu'à cette feuille nouvellement créée.

4 -
Pour toutes mes colonnes j'ai des notes qui se situe entre 0 et 4 (0, 1, 2, 3, 4)


J'espère que tout cela t'a permis d'y voir plus clair et je te remercie pour ton aide !
0
Utilisateur anonyme > Lils_Bis Messages postés 57 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 28 décembre 2020
11 avril 2016 à 20:30
Bonsoir Lils_Bis,

Merci pour toutes tes réponses.

Mon code ci-dessous est pour le questionnaire de la feuille active,
et devrait marcher pour toutes les autres feuilles.

Il ajoute une ligne de totaux sous la dernière ligne de données :

Pour chaque colonne, la cellule de cette ligne contiendra non pas
la somme sous forme de valeur fixe immuable, mais une formule de
somme qui donnera le bon résultat même si tu changes les données
du questionnaire ultérieurement.

============================================================

ATTENTION, TRÈS IMPORTANT !

1) Je ne veux pas que tu perdes des données ! Alors par précaution,
fais d'abord une sauvegarde de ton classeur avant de l'essayer ;
ou fait une copie de ton classeur et essaye mon code sur la copie.

---------------------------------------------------------------------------------------------------------

2) Cette macro ne doit être exécutée QUE sur une feuille qui N'A PAS
DÉJÀ de ligne pour les Totaux, donc UNE SEULE FOIS pour chaque
feuille-questionnaire ! En voici la raison :

Si tu exécutes cette macro sur une feuille qui a DÉJÀ une ligne de totaux,
cette ligne DÉJÀ présente va être prise comme une ligne supplémentaire
de données, et UNE AUTRE LIGNE DE TOTAUX sera ajoutée dessous !

Donc soit tu es sûre d'arriver à respecter cette condition, soit je te laisse
essayer de mettre un garde-fou (c'est-à-dire ajouter un « test-butée »).

Option Explicit

Sub Essai()
  ActiveSheet.Unprotect
  Dim k As Long: k = [A1].CurrentRegion.Rows.Count
  With Range("A" & k + 1)
    .Formula = "=SUM(A2:A" & k & ")"
    k = [A1].CurrentRegion.Columns.Count - 1
    .AutoFill Range(.Address & ":" & .Offset(, k).Address)
  End With
  ActiveSheet.Protect
End Sub

En espérant que ça te convienne ; n'hésite pas à me demander d'autres renseignements si besoin !  😊
 
0
Lils_Bis Messages postés 57 Date d'inscription lundi 4 avril 2016 Statut Membre Dernière intervention 28 décembre 2020
Modifié par Lils_Bis le 12/04/2016 à 09:31
Bonjour Albkan,
Ca marche impeccab' !
Merci beaucoup à toi, je reviendrais probablement vers toi pour d'autres questions par la suite !
Encore merci, bonne journée :)
0