formule et commentaire

  • Initiateur de la discussion roulies
  • Date de début
R

roulies

Guest
Bonjour,

est il possible de faire une formule et de mettre le resultat dans un
commentaire puis faire une somme des commentaires ?

Je m'explique, j'ai un tableau de 340 lignes dans certaine cellules, j'aurais la quantité comandée .. cette quantité doit étre multipliée par la valeur d'une autre cellule de la meme ligne.

J'ai nécessité de n'avoir qu'une colonne pour la quantité, c'est pour cela que je pensait à une macro permettant de faire le calcul dans les cellules ayant une quantité, dans une plage selectionnée.

L'avantage de mettre le resultat dans le commentaire, c'est d'avoir une justification du calcul au cas ou ...

bien entendu il me faut la somme des commentaire pour connaitre la valeur de la commande.

J'espere que vous m'aurez comprise ....

roulies
 
S

sousou

Guest
Bonjour
Voici un petit code qui, je pense, fait ce que tu veux.

Tu sélectionnes les cellules d'une colonne et tu exécutes le code.

A modfifier à volonté !!!

Sub test()
Set Cmt = Worksheets(1).Comments
For Each c In Cmt
c.Delete
Next
For Each i In Selection
If i <> "" Then
cout = i * i.Offset(0, 1)
i.AddComment.Text i & " X " & i.Offset(0, 1) & "= " & cout
End If
Next
End Sub
 
S

sousou

Guest
Dans cet exemple, la macro fonctionne sur les cellules que tu as sélectionnées et pour chacune elle multiplie la valeur par le contenu de la cellule à droite i.offset(0,1)

C'est cette instruction qui fixe la colonne.
objet.offset(déplacementligne,déplacementcolonne)

A toi de donner les valeurs qui vont bien
 
S

sousou

Guest
C'est bien je que j'avais compris,
exemple:

si ta quantité est dans la colonne a ( tu sélectione les cellules de la colonne a) et que ton coût unitaire est dans la colonne b alors, déplacementligne=0 et déplacement colonne=1

autre exemple:
si ta quantité est dans la colonne c (tu sélectionnes les cellules de la colonne c) et que ton coût unitaire est dans la colonne f alors déplacement ligne=0 et déplacement colonne =3
 
R

roulies

Guest
oK je commence à mieux comprendre mais mon hic ...

car il y'a toujour un mais ...

C'est que la premiere fois c'est la colonne C à multipliée par B puis
D par B, E par B ect...

J'espere etre suffisament claire.

merci de ton aide
 
S

sousou

Guest
Si c'est toujours dans b que ce trouve le prix unitaire alors il n'est pas nécessaire d'utiliser offset. mais cells(objet.row,2) ou 2 fixe la colonne du prix unitaire.

J'ai ajouté un controle d'erreur qui permet de n'effacer que les commentaires des cellules sélectionnées.

Sub test()

For Each c In Selection
On Error Resume Next
c.Comment.Delete
suite:
Next
On Error GoTo 0
For Each i In Selection
If i <> "" Then
cout = i * Cells(i.Row, 2)
i.AddComment.Text i & " X " & Cells(i.Row, 2) & "= " & cout
End If
 
R

roulies

Guest
Genial ca marche pour le commentaire ...

As tu la solution miracle pour faire la somme des commentaire d'une colonne ?

Merci

P.S. : sur le nouveau code à la fin il a falut que je rajoute Next End sub cela ne pose pas de probleme a priori ...
 
R

roulies

Guest
Pour le moment cela correspond exactement à ce que j'ai besoin meme en meiux que ce que je pensait.

Il y'a que le total des cout dans une celulle definie style ligne 341 de la selection qui ne fonctionne pas.
 
R

roulies

Guest
Sousou ...

Pour le moment, tout est parfait ...

Mais il est vrai, des que j'essaye de mettre "cells(341,i.column)=cout" cela
ne fonctionne plus car en fait je ne selectionnne pas une colonne mais une plage de celulle.

Par contre si je selectione une colonne, c'est la partie
" cout = i * Cells(i.Row, 2) " qui ne fonctionne plus.

Qu'en pense tu ? ....
 

Discussions similaires

Statistiques des forums

Discussions
314 190
Messages
2 106 988
Membres
109 733
dernier inscrit
chardou