Aide macro excel

Signaler
Messages postés
7
Date d'inscription
jeudi 10 juin 2004
Statut
Membre
Dernière intervention
10 novembre 2006
-
Messages postés
699
Date d'inscription
mercredi 19 février 2003
Statut
Membre
Dernière intervention
13 mai 2011
-
Geo

Bonjour!!

Mon problème est le suivant :

Je possède deux colonnes dans une feuille excel. La première correspond aux coûts et la deuxième aux pourcentages. A coté de ces deux colonnes j'ai utilisé une cellule pour faire la somme de la première colonne. Maintenant je dois calculer dans la 2ème colonne le pourcentage de chaque ligne par rapport au total. C'est à dire que dans la deuxième colonne je dois faire une formule :
Exemple pour la 1ère de la 2ème colonne :
=1ère ligne de la 1ère colonne/total 1ère colonne.
Je dois faire cela jusqu'a la dernière valeur de la 1ère colonne. Je sais faire la formule mais cela doit être fait dans une macro. Ceci n'est pas le problème. Le problème est que le nombre de ligne de la 1ère colonne varie. Ainsi il me faut une fonction qui me disent : faire le calcul précédent jusqu'à la dernière ligne pleine de la 1ère colonne. Je ne dois pas sélectionner de plage car le nombre de ligne varie dans la 1ère colonne. Aidez moi à résoudre ce problème.

Merci d'avance pour vos réponses.

1 réponse

Messages postés
699
Date d'inscription
mercredi 19 février 2003
Statut
Membre
Dernière intervention
13 mai 2011
19
Bonjour,

tu as posté sur le mauvais forum ;) .
Si tu as des questions sur le VBA il faut les poser sur l'autre site :
vbfrance

Sinon, pour répondre à ta question :
J'imagine que la colonne A dès la ligne 1 contient les valeurs, que dans la colonne B dès la ligne 1 tu veux mettre en correspondance le pourcentage.
Je suppose aussi que dans C1 tu as le total de la colonne A.

D'après cela :

'ici on se prend une variable cellule qu'on initialise en A1
Dim cellule As Range
Set cellule = Worksheets("Feuil1").Range("A1")

'on boucle jusqu'à la première cellule vide en A
While Not IsEmpty(cellule)
'on insère dans la colonne B cellule / total
cellule.Offset(0,1).Value = cellule.Value / Range("C1").Value
'on descend d'une ligne
Set cellule = cellule.Offset(1,0)
Wend



Autre chose, si par le code tu veux forcer le format de la colonne B en pourcentage :
Columns("B:B").Select
Selection.NumberFormat = "0.00%"


J'espère que ça te convient.
Et pour ton prochain problème en VB, va sur le bon site :)

Fanny