Bonjour,

Je me permets de poster sur ce forum pour demander de l'aide. Un point de contexte, j'ai appris le codage VBA "sur le tas" dans le cadre de mon emploi afin de faciliter le traitement de certaine tâche.

Aujourd'hui j'essaye de déployer un "outil" Excel chez un collègue mais je rencontre des difficultés car lors de l'exécution, une erreur de type 28 - Espace pile insuffisant apparait sur son ordinateur. Je précise bien son ordinateur car je ne rencontre aucune difficulté sur le mien.

La seule différence que j'ai trouvé entre nos deux machines est un Excel en 32 bits (chez moi) et 64 bits (chez lui). Est-ce que le problème serait issu de cette différence de version ? Mes connaissances en VBA ne sont pas assez poussées et je trouve que ma macro est assez "simple". Peut être ai-je omis des configurations importantes qui empêchent le portage ? Auriez-vous un avis sur la question ?

Je vous laisse la macro ci-dessous si vous trouvez quelque chose de flagrant à modifier :

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
    Dim MaVar1
    Dim MaVar2
    Dim MaVar3
    Dim MaVar4
    Dim MaVar5
    Dim MaVar6
    Dim MaVar7
    Dim MaVar8
 
 
 
 
Sub MacroIntégration()
'
'Macro intégration macro
    Sheets("Extraction WC").Select
    Range("J2").Select
    Call MacroInsertion
End Sub
 
Sub MacroInsertion()
 
Dim X
X = Selection.Value
 
        MaVar1 = ActiveCell.Offset(0, -9)
        MaVar2 = ActiveCell.Offset(0, -8)
        MaVar3 = ActiveCell.Offset(0, -7)
        MaVar4 = ActiveCell.Offset(0, -6)
        MaVar5 = ActiveCell.Offset(0, -5)
        MaVar6 = ActiveCell.Offset(0, -4)
        MaVar7 = ActiveCell.Offset(0, -2)
        MaVar8 = ActiveCell.Offset(0, -1)
 
If X = "x" Then 'si la valeur n'est pas présente dans le tableau synthèse
 
 
        Sheets("Tableau 1").Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 'insertion cellule en bas
        Sheets("Tableau 1").Cells(2, 2) = MaVar1
        Sheets("Tableau 1").Cells(2, 3) = MaVar2
        Sheets("Tableau 1").Cells(2, 4) = MaVar3
        Sheets("Tableau 1").Cells(2, 10) = MaVar4
        Sheets("Tableau 1").Cells(2, 11) = MaVar5
        Sheets("Tableau 1").Cells(2, 12) = MaVar6
        Sheets("Tableau 1").Cells(2, 13) = MaVar7
        Sheets("Tableau 1").Cells(2, 14) = MaVar8
 
        ActiveCell.Offset(1, 0).Range("A1").Select 'Décalagae vers le bas
        Call MacroInsertion
 
ElseIf Selection.Value > 0 Then
 
 
 
        MaVarRésultat = ActiveCell.Offset(0, 1) 'sauvegarde montant
        Sheets("Tableau 1").Cells(2, 2) = MaVar1
        Sheets("Tableau 1").Cells(2, 3) = MaVar2
        Sheets("Tableau 1").Cells(2, 4) = MaVar3
        Sheets("Tableau 1").Cells(2, 10) = MaVar4
        Sheets("Tableau 1").Cells(2, 11) = MaVar5
        Sheets("Tableau 1").Cells(2, 12) = MaVar6
        Sheets("Tableau 1").Cells(2, 13) = MaVar7
        Sheets("Tableau 1").Cells(2, 14) = MaVar8
 
    ActiveCell.Offset(1, 0).Range("A1").Select 'Décalagae vers le bas
    Call MacroInsertion
 
 
ElseIf Selection.Value = "" Then
 
        MsgBox ("traitement complété")
 
End If
 
End Sub
J'ai cherché de mon côté avant de poster mais je me trouve un peu désemparé soit par la complexité des informations que je trouve soit parce que je ne pense pas que ce soit pertinent.

Merci par avance pour tout aide ou avis.

Bien cordialement,