Rechercher : dans
Par :

Calcul d'une colonne dont la taille varie

Dernière réponse le 13 jun 2008 à 17:15:18 Gigi0001, le 13 jun 2008 à 13:13:05 
 Signaler ce message aux modérateurs

Bonjour!

Je débute en VBA.
Je cherche à calculer des colonnes dont la taille varie quand je reçois une nouvelle feuille excel.
Aujourd'hui, j'aimerai faire la somme de A1:A200
Demain je vais recevoir un nouveau document et je devrais faire la somme de A1:A500
ect...
=> comment puis-je en VBA adapter la taille de la colonne pour calculer sa somme?

voici ce que j'ai fait mais je crois que je suis très loin de la réalité...

Sub SelectionColonneA()
Dim x As Long


x = Range("A65536").End(xlUp).Row
AdresseColonne = Range("B1" & ":" & "B" & x).Select

ActiveCell.FormulaR1C1 = "=SUM(Feuil1!AdresseColonne)"
Range("A2").Select

End Sub

Merci d'avance!

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « Calcul d'une colonne dont la taille varie » dans :
Les variables en C++ VoirLes variables en C++ 1. Les différents types de variables 1.1 bool 1.2 char 1.3 unsigned short int 1.4 short int 1.5 unsigned long int 1.6 long int 1.7 int (16 bits) 1.8 int (32 bits) 1.9 unsigned int (16 bits) 1.10 unsigned int (32...
Tableur - Les feuilles de calcul VoirLa notion de feuille de calcul Un tableur présente les données et les formules sous forme d'un tableau (lignes et colonnes) appelé feuille de calcul. Une feuille de calcul est constitué de lignes (numérotées à l'aide de chiffres) et de colonnes...
Les tableaux en langage C++ VoirType de données complexes Les variables, telles que nous les avons vues, ne permettent de stocker qu'une seule donnée à la fois. Or, pour de nombreuses données, comme cela est souvent le cas, des variables distinctes seraient beaucoup trop lourdes...
Perl - les opérateurs VoirQu'est-ce qu'un opérateur? Les opérateurs sont des symboles qui permettent de manipuler des variables, c'est-à-dire effectuer des opérations, les évaluer, ... On distingue plusieurs types d'opérateurs : les opérateurs de calcul les...

1

yg_be, le 13 jun 2008 à 13:19:07

Qu'est-ce qui te chiffonne dans ton code ?

Si tu veux simplement calculer la somme de toute la colonne A, tu peux utiliser cette formule : =SUM(A:A).

Répondre à yg_be

2

Gigi0001, le 13 jun 2008 à 13:28:08

Salut,

Explication:

J'ai une colonne de A1 jusqu'à A200.
le SUM(A1:A200) est bien sauf que pour les autres feuilles que je recevrais, le nombre d'informations par colonne changera. Ex: A1 jusqu'a A300, et ainsi de suite.
Donc, je cherche à selectionner la colonne (dans lequel il y a quelques cases vides) et calculer la somme de cette colonne dans une autre feuille du classeur.
J'explique bien?

Répondre à Gigi0001

3

yg_be, le 13 jun 2008 à 13:40:20

Pourquoi mentionne-tu SUM(A1:A200) ? Je n'ai lu cela nulle part...

As-tu essayé de mettre la formule suivante dans la cellule où tu voudrais avoir la somme ?
=sum(nomdusheet!A:A)

Répondre à yg_be

4

Gigi0001, le 13 jun 2008 à 13:48:02

La solution que tu offres est idéal quand il ne s'agit que d'une somme. Donc Merci.
Ne voulant pas trop complexifié le problème, j'en ai pas assez dit.
En faite, je veux faire toutes sortes de calcul comme, COUNTIF, AVERAGE,...
Je ne peux pas donc prendre la colonne entière (A:A) mais uniquement la colonne (dans mon cas, la colonne A) du tableau si je veux que les calculs soit juste.
Merci de ton aide.

Répondre à Gigi0001

5

yg_be, le 13 jun 2008 à 13:52:08

Dans ce cas, qu'est-ce qui te chifonne avec le code que tu as proposé au départ ? Il ne fonctionne pas, il ne fait pas ce que tu veux, il est trop compliqué ?

Répondre à yg_be

6

Gigi0001, le 13 jun 2008 à 14:01:01

Voilà ce que je pensais faire:

Dim x As Long
x = Range("A65536").End(xlUp).Row
AdresseColonne = Range("B1" & ":" & "B" & x).Select

=>>>> Pour selectionner la colonne

Dim AdresseColonne As String
ActiveCell.FormulaR1C1 = "=SUM(Feuil1!AdresseColonne)"
Range("A2").Select

=>>>> Pour calculer la selection

Ensuite, si ca marchait je voulais remplacer SUM par COUNTIF, AVERAGE, etc... (mais ca ne marche pas)
Je "chiffonne" comme tu dis mais j'essaie d'apprendre à me débrouiller tout seul... mais sans succès. hum hum

Tu connaitrais la solution?

Répondre à Gigi0001

7

yg_be, le 13 jun 2008 à 14:17:20

Et ceci, qu'est ce que cela dit ?

Dim x As Long
Dim AdresseColonne As String

x = Range("A65536").End(xlUp).Row
AdresseColonne = "Feuil1" + "!" + "B1" & ":" & "B" & cstr(x)

=>>>> Pour selectionner la colonne

Sheets("Feuil2").Range("A2").Select
ActiveCell.FormulaR1C1 = "=SUM(" + adresscolonne + ")"


=>>>> Pour calculer la selection

Répondre à yg_be

8

Gigi0001, le 13 jun 2008 à 14:34:42

Haaa, je comprends comment tu veux faire.
Ca bloque sur ActiveCell.FormulaR1C1 = "=SUM(" + adresscolonne + ")"
Je reflechie (ausssi de mon côté) à la façon de résoudre ce pb...

Répondre à Gigi0001

9

 yg_be, le 13 jun 2008 à 17:15:18

Deux petites erreurs corrigées :

Dim x As Long
Dim AdresseColonne As String

x = Range("A65536").End(xlUp).Row
AdresseColonne = "Feuil1" + "!" + "B1" & ":" & "B" & cstr(x)

=>>>> Pour selectionner la colonne

Sheets("Feuil2").Range("A2").Formula = "=SUM(" + adressecolonne + ")" 'formula, pas formular1c1, et correction ortho


=>>>> Pour calculer la selection

Répondre à yg_be