Bonjour à toutes et à tous,

J'ai réussi à créer une macro qui me permet de convertir mes données via conversion et matcher les valeurs sur les bonnes lignes.
Cependant, j'aimerais automatiser ma macro sans devoir passer par visual basic , et pour cela j'aimerais que ma macro se déclenche au moment où on colle les données sur la cellule A1

Voici ma macro :
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
58
59
60
61
'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) As Variant 'pLigne fait référence au ligne de la feuille précédente
    Dim comm As Variant, ligne As Variant, i As Integer, var As Variant, trouver As Boolean, InRange As Range, Arg As Range
    comm = ActiveSheet.Previous.Cells(Rows.Count, 1).End(xlUp).Row
    For ligne = 2 To comm
        'MsgBox (ligne)
            For i = ActiveSheet.Previous.Index + 1 To Worksheets.Count
            'MsgBox (i)
                trouver = False
                If ActiveSheet.Cells(pLigne, i).Value = ActiveSheet.Previous.Cells(ligne, i).Value Then
                    Previous = ActiveSheet.Previous.Cells(ligne, 1).Value
                Else
                    Exit For
                End If
            Next i
    Next ligne
End Function
 
Sub CONVERTIR_DONNE_BRUTES_transfertCOMMENTAIRES()
'
' on converti les données pour aligner les valeurs
 
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(Array(1, 1), Array(2, 1), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1), _
        Array(7, 1), Array(8, 1), Array(9, 1), Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1 _
        ), Array(14, 1), Array(15, 1), Array(16, 1), Array(17, 1), Array(18, 1), Array(19, 1), Array _
        (20, 1), Array(21, 1)), TrailingMinusNumbers:=True
 
        Columns(1).Clear
 
 
 
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
        ActiveSheet.Cells(ligne, 1).Value = Previous(ligne)
        'MsgBox (ligne)
    End If
Next ligne
 
End Sub
'30/02 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
 
'28/04 la macro appelle enfin la fonction, les valeurs de la colonne A feuille 1 match avec les valeurs des lignes correspondantes !
'il reste à modifier quelques lignes pour l'appliquer au véritable tableau des suspens de l'entreprise , et automatiser la macro en passant par un private sub !
Cordialement,

Marc