Aidez moi SVP

M

MystSith

Guest
Salut,

Je désire créer une fonction qui permettra de faire le tri d'éléments d'une colonne mais en ayant comme contrainte un nombre maximal (à tout ces éléments pris en compte). De plus, ces cellules trièes (leur valeur) devront être affichées sur des lignes inférieures à la cellule où la fonction est appelée.

J'ai écrit la fonction mais comme j'utilise pas souvent VB... il me semble que j'ai fait n'importe quoi, le cacul de la fonction me donnant une erreur "#VALEUR!"

Voici ce que j'ai fait:

*********************************************
Function SOMA(plage As Range, cible As Integer)

Dim i As Integer
Dim lignes As Integer
Dim ciblereste As Integer

ciblereste = (cible * -1) 'pour avoir la valeur absolue
lignes = Range(plage).Rows 'Nombre de ligne de la plage


Do
If Range(plage(i, 0)) <= (cible * -1) Then
ActiveCell.Offset(i, 0).Value = Range(plage(i, 0)).Value
Else: ActiveCell.Offset(i, 0).Value = ciblereste

End If

ciblereste = ciblereste - Range(plage(i, 0)).Value
i = i + 1

Loop Until ciblereste = 0

End Function
***********************************************


Merci d'avance à celui qui pourra m'aider :)
 
J

jean paul

Guest
j'ai deux cellule, une sans motif et l'autre avec un motif couleur. je désire faire une comparaison entre deux cellules ayant le même motif et si elle son identique imposer une condition.

Merci de votre Aide
 
S

svpCok

Guest
c'est pas une fonction qu'il faut c'est une macro exemple (a finir)

Sub SOMA()
cible = 30
i = 1
For Each element In Range("d5:d14")

If element <= cible Then
ActiveCell.Offset(i, 0) = element
End If
i = i + 1
Next
End Sub
 
M

MystSith

Guest
C'est vrai que ma fonction ne renvoie pas de valeur mais je ne sais pas comment incorporer une macro (procédure Sub) à toutes une série de cellules... j'ai pas envie de l'attacher à un bouton où autre... une idée Svp?

La boucle "For Each In Next" est plus facile en effet mais je voulais essayer autre chose pour voir si on pouvait s'en passer...

Par contre pour la syntaxe de "Range(plage(i, 0)).Value" j'ai des doutes?
 

Discussions similaires

Statistiques des forums

Discussions
313 075
Messages
2 095 041
Membres
106 160
dernier inscrit
bingmp