Aide macro excel

cs_docgeo Messages postés 7 Date d'inscription jeudi 10 juin 2004 Statut Membre Dernière intervention 10 novembre 2006 - 15 juin 2004 à 11:26
HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 - 17 juin 2004 à 14:04
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

HFanny Messages postés 699 Date d'inscription mercredi 19 février 2003 Statut Membre Dernière intervention 13 mai 2011 20
17 juin 2004 à 14:04
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
0