Fonction volatile et tableau ... help :'(

InfoGeo Messages postés 87 Date d'inscription jeudi 2 février 2012 Statut Membre Dernière intervention 17 avril 2013 - 6 août 2012 à 15:36
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 6 août 2012 à 16:18
Salut !

J'avais un probleme avec mes tableaux croisés dynamiques pour sélectionner une plage alors du coup j ai transformé les plages en tableau et j'ai nommé ces tableaux.

ensuite dans la source de données du tableau dynamique, j'ai donc mis ce nom de tableau et ca marche niquel.

CEPENDANT


avant j’avais une fonction qui marchait bien et maintenant c plus le cas j ai fait le test avec la plage sous la forme d un tableau et sous forme "normale", sous forme normale la fonction marche mais quand la plage est sous forme d'un tableau non.

Cette fonction est une fonction volatile

ici:

Public Function compar(m1 As String, m2 As String, Optional k As Integer = 0) As Double

    Dim i As Integer
    Dim j As Integer
    Dim r As Integer
   
    Application.Volatile
   
    j Len(m1): r 0
    If Len(m2) > j Then j = Len(m2)
   
    For i = 1 To j
        If k = 1 Then
            If Mid(m1, i, 1) Mid(m2, i, 1) Then r r + 1
        Else
            If LCase(Mid(m1, i, 1)) LCase(Mid(m2, i, 1)) Then r r + 1
        End If
    Next i
   
    compar = r / j
   
End Function


elle est appelé comme ca:

 For i = 2 To nblignes
        Cells(i, colcomp1) = "=compar(RC[-1],R[-1]C[-1])"
        Cells(i, colcomp1).Value = Cells(i, colcomp1).Value
        If Cells(i, colcomp2 - 1) <> "" And Cells(i - 1, colcomp2 - 1) <> "" Then
            Cells(i, colcomp2) = "=compar(RC[-1],R[-1]C[-1])"
            Cells(i, colcomp2).Value = Cells(i, colcomp2).Value
        End If
    Next i




Et en fait quand elle arrive à "End function" et bien au lieu de quitter la fonction et bien elle recommence ...... elle repart de "Public Function compar"


je ne vois pas pourquoi ..... en fait je ne sais pas exactement quels changement sont effectués quand on passe en mode tableau ....

Donc si vous auriez une idée et bah je suis preneur


Voila j espere que vous répondrez ^^


a+

1 réponse

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
6 août 2012 à 16:18
Bonjour,
Déjà :
Tu ne veux à la fois attribuer une formule et une valeur à une cellule ! C'est soit l'un, soit l'autre !
Evite par ailleurs cette manière d'attribuer une formule. Utilise la propriété Formula

On ne voit enfin pas, dans ton bout de code, ce que valent les variables colcomp1 et colcomp2 ! les réactions que tu dénonces donnet toutefois à penser que leurs valeurs entraîne des références circulaires !
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
0
Rejoignez-nous