Fonction volatile et tableau ... help :'(

Signaler
Messages postés
87
Date d'inscription
jeudi 2 février 2012
Statut
Membre
Dernière intervention
17 avril 2013
-
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
-
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

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
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