Bonjour tout le monde,

J'ai crée une fonction qui me permettra (normalement) de transférer les valeurs des cellules de la colonne A (feuille précédente) dans les lignes correspondantes de la feuille suivante.
J'ai essayé d'appliquer cette fonction par l'appel d'une macro avec la fonction Call mais rien ne se produit..
EDIT : J'ai supprimé la fonction call de ma macro c'est pour ça qu'elle n’apparaît pas dans ci-dessous
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
 
'vu que le test 1 a échoué, on cherche à l'aide d'une boucle For de transéférer les valeurs de la colonne A feuille -1 dans les lignes correspondantes dans la colonne A feuille actuelle
Function Previous(ByRef pLigne As Variant)
 
    Dim comm As Variant, ligne As Variant, bln As Boolean, isheet As Variant
    comm = ActiveSheet.Previous.Cells(Rows.Count, 1).End(xlUp).Row
    For ligne = 2 To comm
        MsgBox (ligne)
        If IsEmpty(Cells(ligne, 1)) Then
            For isheet = ActiveSheet.Index + 1 To Worksheets.Count
                bln = False
                'MsgBox ("A" & ligne) 'la macro reconnait les lignes recherchées dans la feuille précédente
                If Not IsError(comm) Then
                    bln = True
                    Exit For
                End If
 
                If ActiveSheet.Cells(pLigne, 2) = ActiveSheet.Previous.Cells(ligne, 2) Then
                    Previous = ActiveSheet.Previous.Cells(ligne, 1).Value
                End If
 
 
            Next isheet
        End If
    Next ligne
End Function
 
 
Sub test()
Dim comm As Variant, ligne As Variant, bln As Boolean, isheet As Variant, x As Variant
Dim newcomm As Variant, newligne As Variant, newbln As Boolean, newisheet As Variant
 
 
comm = ActiveSheet.Cells(Rows.Count, 2).End(xlUp).Row
 
For ligne = 2 To comm
    If IsEmpty(Cells(ligne, 1)) Then
        For isheet = ActiveSheet.Index + 1 To Worksheets.Count
            bln = False
            'MsgBox (ligne)
            If Not IsError(comm) Then
                bln = False
                Exit For
            End If
            ActiveSheet.Cells(ligne, 1).Value = Application.Run("Previous", ligne)
        Next isheet
    End If
Next ligne
 
End Sub
'la  macro permet de "scanner" chaque ligne et à chaque ligne on appel
' à la fonction, qui, va récupérer toutes les valeurs de la feuille précédente
'elle est censé comparer les valeurs entres elles et voir si elles ont
'les mêmes valeurs, si la valeur est la même, alors les données de la colonne A
'sont transmises dans les lignes correspondantes
 
'Je n'arrive pas à appeler une fonction dans la macro , et c'est la fonction citée plus haut
Merci d'avance.

Marc,