Calcul d'une colonne dont la taille varie

Fermé
Gigi0001 Messages postés 9 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 13 juin 2008 - 13 juin 2008 à 13:13
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 - 13 juin 2008 à 17:15
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!
A voir également:

6 réponses

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
13 juin 2008 à 13:19
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).
0
Gigi0001 Messages postés 9 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 13 juin 2008 2
13 juin 2008 à 13:28
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?
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
13 juin 2008 à 13:40
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)
0
Gigi0001 Messages postés 9 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 13 juin 2008 2
13 juin 2008 à 13:48
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.
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
13 juin 2008 à 13:52
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é ?
0
Gigi0001 Messages postés 9 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 13 juin 2008 2
13 juin 2008 à 14: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?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
13 juin 2008 à 14:17
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
0
Gigi0001 Messages postés 9 Date d'inscription jeudi 12 juin 2008 Statut Membre Dernière intervention 13 juin 2008 2
13 juin 2008 à 14:34
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...
0
yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
13 juin 2008 à 17:15
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
0