Bjr
Je possède un Module en VBA.
Je connais maintenant l'action "Executer Code" mais dans la fenetre "Fonction" qd je tape le nom de mon Module (module 3) ca ne fonctionne pas.
Je dois ecrire quoi dans cette fenetre pour que cela fontionne??
Merci








Bjr
Je possède un Module en VBA.
Je connais maintenant l'action "Executer Code" mais dans la fenetre "Fonction" qd je tape le nom de mon Module (module 3) ca ne fonctionne pas.
Je dois ecrire quoi dans cette fenetre pour que cela fontionne??
Merci
Hello,
un module n'est pas en soi exécutable ... il faut bien que tu pointes sur une Sub (Procédure) ou une Function (Fonction) pour le lancer.
Que fait donc cet étrange module ?








Non mais ca c'est fait mon module est bien complet :
Ce que je veux maintenant c'est qu'il soit execute a partir d'une 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
62 Sub Macro1() ' ' Macro1 Macro ' Macro enregistrée le 20/10/2005 par pommbe01 ' Dim c As Range, compte As Integer compte = 0 ' Range("A1:B1").Select Selection.Font.Bold = True Columns("A:A").EntireColumn.AutoFit Columns("B:B").EntireColumn.AutoFit Range("A2").CurrentRegion.Select Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom For Each c In Range("A2", Range("A2").End(xlDown).Address) c.Select 'faire le calcul If c.Offset(-1, 0) = c Then compte = c.Offset(-1, 1) + c.Offset(0, 1) c.Offset(0, 3) = compte Else c.Offset(0, 3) = c.Offset(0, 1) compte = 0 End If Next 'nettoyer les résultats superflus For Each c In Range("A2", Range("A2").End(xlDown).Address) If c.Offset(1, 0) = c Then c.Offset(0, 3) = "" End If Next 'effacer les lignes Range("A2").End(xlDown).Select go: If Selection.Address <> "$A$2" Then If Selection.Offset(-1, 0) = Selection Then Selection.Offset(-1, 0).EntireRow.Delete End If Selection.Offset(-1, 0).Select GoTo go End If Range("B1").Select Selection.Copy Range("D1").Select ActiveSheet.Paste Columns("B:B").Select Application.CutCopyMode = False Selection.Delete Shift:=xlToLeft Columns("C:C").Select Selection.Cut Columns("B:B").Select ActiveSheet.Paste End Sub
J'ai donc créé une macro avec une Action ExecuterCode mais je ne sais pas quoi mettre dans la partie "Nom Fonction".
Merci de me repondre la j'ai tout essayé ca ne fonctionne pas.

Salut,
Il me semble qu 'execute code demande un fonction et non une routine (sub), essaye de remplacer Sub par Function de plus ta fonction doit être déclaré en Private ou Public
Starec








Heu je vais ca comment la déclaration??









C'est pas du codez Excel ça ?
Mais je me trompe peut-être...
Si c'est le cas, si tu fais un copier /coller d'une macro Excel dans Access ça marche pas directement, il faut adapter (assez simple en fait)








Assez simple?
C'est a dire?









Voici ton code modifié pour fonctionner sous Access :
(je garantie pas car je peux pas l'essayer)
En tout cas j'ai appliqué ce que je fais habituellement.
Dis moi si ca marche.
Attention à modifier la ligne qui ouvre le fichier xls
appXl.Workbooks.Open Filename:="C:\temp\MonFichier.xls"
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
76
77
78
79
80
81
82 Sub Macro1() ' ' Macro1 Macro ' Macro enregistrée le 20/10/2005 par pommbe01 ' Dim appXl As Excel.Application Set appXl = CreateObject("Excel.Application") 'Pour ne pas avoir d'avertissement si le fichier est déjà créé appXl.DisplayAlerts = False 'Affiche (True) ou pas (False) la fenêtre Excel appXl.Visible = True appXl.AskToUpdateLinks = False appXl.Workbooks.Open Filename:="C:\temp\MonFichier.xls" Dim c As appXl.Range, compte As Integer compte = 0 ' appXl.Range("A1:B1").Select appXl.Selection.Font.Bold = True appXl.Columns("A:A").EntireColumn.AutoFit appXl.Columns("B:B").EntireColumn.AutoFit appXl.Range("A2").CurrentRegion.Select appXl.Selection.Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom For Each c In Range("A2", appXl.Range("A2").End(xlDown).Address) c.Select 'faire le calcul If c.Offset(-1, 0) = c Then compte = c.Offset(-1, 1) + c.Offset(0, 1) c.Offset(0, 3) = compte Else c.Offset(0, 3) = c.Offset(0, 1) compte = 0 End If Next 'nettoyer les résultats superflus For Each c In Range("A2", Range("A2").End(xlDown).Address) If c.Offset(1, 0) = c Then c.Offset(0, 3) = "" End If Next 'effacer les lignes appXl.Range("A2").End(xlDown).Select go: If appXl.Selection.Address <> "$A$2" Then If appXl.Selection.Offset(-1, 0) = appXl.Selection Then appXl.Selection.Offset(-1, 0).EntireRow.Delete End If appXl.Selection.Offset(-1, 0).Select GoTo go End If appXl.Range("B1").Select appXl.Selection.Copy appXl.Range("D1").Select appXl.ActiveSheet.Paste appXl.Columns("B:B").Select appXl.Application.CutCopyMode = False appXl.Selection.Delete Shift:=xlToLeft appXl.Columns("C:C").Select appXl.Selection.Cut appXl.Columns("B:B").Select appXl.ActiveSheet.Paste appXl.ActiveWorkbook.Save appXl.ActiveWindow.Close Set appXl = Nothing End Sub








[code]Dim appXl As Excel.Application[code]
J'ai une erreur de compilation au niveau de la declaration meme de la variable et je vois pas tout ca vien.[/code]









Ah ben voui, j'ai oublié !!!!!
Mea Culpa !!!
Dans Outils \ Références \
Ajouter Microsoft Excel 11 Object Library
11 pour Excel 2003
Sinon, c'est un autre numéro!
Voilà ça devrait faire un bug plus bas maintenant![]()
Ajoute la référence Excel dans les références de ton appli ...








tjr le meme probleme dsl malgres l'ajout de la librairie.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim c As appXl.Range









Et comme ça ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part Dim c As Range








Super les Gars ca fonctionne.
Par contre comment je fais maintenant pour lancer ce Module a Partir d'une Macro.
Je sais Executer Module mais je met quoi dans la partie "Nom Fonction"?
Salut
et remplace Sub par Function
Code : Sélectionner tout - Visualiser dans une fenêtre à part =Macro1()








Merci les gars vous m'avez sauvé.
Tout tourne c'est de la bombe.
Encore Merci![]()









Tip Top !
![]()
Partager