Macro a changer

Bonjour à tous,

J'ai une macro et j'aimerais la transformer en formule ou au moins que le résultat apparaisse dans une cellule pour pouvoir exploiter ce résultat.

Sub Macro4()
' Macro4 Macro
' Macro enregistrée le 3/06/2008
For i = 2 To Cells(2, 3).End(xlDown).Row
    If Cells(i, 3) = 1 Then
        Cells(i, 3).Select
        For j = Cells(i, 3).Row + 1 To Cells(i, 3).Row + Cells(2, 1) + 1
            'Cells(j, 3).Select
            If Cells(j, 3) = 1 Then s = s + 1: Exit For
        Next j
    End If
Next i
MsgBox "Cette valeur est apparue " & s & " fois avant la moyenne"
End Sub

Elle sert à vérifier si une valeur apparait avant une moyenne constatée.

Est ce que quelqu'un a une idée de la formule a utiliser ? Parce que en macro je ne suis pas fort du tout

(je préfère les manger "les maquereaux")

Si qqun peut m'aider ?

Merci d'avance et bon dimanche

Bonjour

Je n'ai pas bien compris ce que fais ta macro, mais pour répondre à ta question

Tu peux faire apparaitre le résultat de ta macro dans une cellule, simplement

en remplaçant la ligne msgbox

par une ligne du style

Cells(Ligne, Colonne) = s

(Ligne et colonne sont les coordonnées de la cellule résultat)

Une fonction s'écrit comme une macro, mis à part que la procédure n'est pas encadrée par

Sub .... End Sub

mais par

Function ... End Function

Exemple de fonction :

Function Cube(Nombre As Currency) As Currency
Cube = Nombre * Nombre * Nombre
End Function

(Calcul le cube d'un nombre)

Dans une cellule écrire =Cube(xxxx)

xxx est le nombre fournit comme argument.

J'espère que ces quelques explications pourront t'aider.

Cordialement

Bonjour Demeb

Le code que tu m'as donné ne fonctionne pas;

Il me donne comme erreur: Erreur de syntaxe

j'ai bien essayé de changer mais mon niveau de vba n'est pas assez bon

voila ce que j'ai fait:

Sub Macro4() 
' Macro4 Macro 
' Macro enregistrée le 3/06/2008 
For i = 2 To Cells(2, 3).End(xlDown).Row 
    If Cells(i, 3) = 1 Then 
        Cells(i, 3).Select 
        For j = Cells(i, 3).Row + 1 To Cells(i, 3).Row + Cells(2, 1) + 1 
            'Cells(j, 3).Select 
            If Cells(j, 3) = 1 Then s = s + 1: Exit For 
        Next j 
    End If 
Next i 
Cells(Ligne, Colonne) = s
Function Cube(Nombre As Currency) As Currency 
Cube = Nombre * Nombre * Nombre 
End Function

Mai voila ça ne va pas

Que faire ? suis vraiment perdu

Si quelqu'un a une idée ?

merci d'avance

Bonjour,

J'aimerais bien t'aider, mais je suis perdue... dans ta question.

Peux-tu nous donner un exemple chiffré des données de départ, et du résultat que tu obtiens avec ta macro, et préciser ce que tu voudrais obtenir ?

Cordialement,

Bonjour V elbie

Le but de cette macro, est de vérifier si une valeur (qui a une certaine moyenne) Apparait justement avant cette moyenne.

ce n'est pas très compliqué mai mon niveau en vba est très bas

tu prends une colonne de 200 cellules ( que des 0 et des 1 quand la valeur apparait)

donc facile de faire une moyenne voila.

je ne peux pas envoyer de fichier en ce moment je ne suis pas chez moi.

Merci de ton aide

Bonjour à tous

ça y est, j'ai trouvé la solution:

 remplacer msgBox par :
Cells( 3, 6).value = s 

Et elle fonctionne

Bonne journée

Rechercher des sujets similaires à "macro changer"