IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Access Discussion :

Fenetre Action Macro "Executer Code" pour Module


Sujet :

Access

  1. #1
    Provisoirement toléré
    Inscrit en
    Septembre 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 147
    Points : 62
    Points
    62
    Par défaut Fenetre Action Macro "Executer Code" pour Module
    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

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    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 ?
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  3. #3
    Provisoirement toléré
    Inscrit en
    Septembre 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    Non mais ca c'est fait mon module est bien complet :

    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
    Ce que je veux maintenant c'est qu'il soit execute a partir d'une Macro.
    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.

  4. #4
    Invité
    Invité(e)
    Par défaut
    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

  5. #5
    Provisoirement toléré
    Inscrit en
    Septembre 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    Heu je vais ca comment la déclaration??

  6. #6
    Membre régulier

    Inscrit en
    Septembre 2004
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 84
    Points : 81
    Points
    81
    Par défaut
    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)

  7. #7
    Provisoirement toléré
    Inscrit en
    Septembre 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    Assez simple?

    C'est a dire?

  8. #8
    Membre régulier

    Inscrit en
    Septembre 2004
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 84
    Points : 81
    Points
    81
    Par défaut
    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

  9. #9
    Provisoirement toléré
    Inscrit en
    Septembre 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    [code]Dim appXl As Excel.Application&#91;code&#93;

    J'ai une erreur de compilation au niveau de la declaration meme de la variable et je vois pas tout ca vien. &#91;/code&#93;

  10. #10
    Membre régulier

    Inscrit en
    Septembre 2004
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 84
    Points : 81
    Points
    81
    Par défaut
    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

  11. #11
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Ajoute la référence Excel dans les références de ton appli ...
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  12. #12
    Provisoirement toléré
    Inscrit en
    Septembre 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    tjr le meme probleme dsl malgres l'ajout de la librairie.

  13. #13
    Membre régulier

    Inscrit en
    Septembre 2004
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 84
    Points : 81
    Points
    81
    Par défaut
    Et comme ça ?

  14. #14
    Provisoirement toléré
    Inscrit en
    Septembre 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    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"?

  15. #15
    Expert éminent
    Avatar de Lou Pitchoun
    Profil pro
    Inscrit en
    Février 2005
    Messages
    5 038
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Février 2005
    Messages : 5 038
    Points : 8 268
    Points
    8 268
    Par défaut
    Salut
    et remplace Sub par Function

  16. #16
    Provisoirement toléré
    Inscrit en
    Septembre 2005
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Septembre 2005
    Messages : 147
    Points : 62
    Points
    62
    Par défaut
    Merci les gars vous m'avez sauvé.

    Tout tourne c'est de la bombe.

    Encore Merci

  17. #17
    Membre régulier

    Inscrit en
    Septembre 2004
    Messages
    84
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 84
    Points : 81
    Points
    81
    Par défaut
    Tip Top !


+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SQL] magic quotes ou double apostrophes pour échapper apostrophe
    Par zorian dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 13/03/2006, 16h23
  2. Condition sur requete pour Action MAcro
    Par hugo69 dans le forum Access
    Réponses: 4
    Dernier message: 12/10/2005, 12h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo