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

Macros et VBA Excel Discussion :

Création, modification de table Access avec critère date


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Par défaut Création, modification de table Access avec critère date
    Bonjour à tous,

    me revoilà avec une question sur lesquelles je bug.
    je ne sais pas trop sous quelle sous-forum la mettre et le titre ne parrait pas top, mais je bugs vraiment sur tout aujourd'hui

    je m'explique :
    je dois quotidiennement mettre à jour des fichiers contenant les résultats de ventes.

    => je reçois tout les jours 4 fichiers bruts sous format excel qui contiennent les données du mois en cours (jusque hier) et que j'importe en access via une macro access au départ d'excel.
    Avec ma macro access je vais d'abord supprimer les données du mois en cours avant de réimporter les nouvelles données.
    Mes tables de base en access contiennent donc toutes les ventes depuis le 01/01

    Ensuite (toujours via macro access) un formulaire s'ouvre afin de choisir le mois pour lequel je veux avoir les résultats (merci LedZeppII)
    sur base de ma sélection le reste ce met en route : création des tables du mois en cours et requêtes pour extraire toutes les infos et les transférer vers des fichiers excel bruts.

    Je sort de access et continue mon travail en excel, toujours avec des macros.
    Celles-ci vont pour chaque fichiers que je dois mettre à jour prendre les infos dans les fichiers excel bruts qui ont été créer par access.

    Dans les fichiers que je dois mettre à jour, j'ai :
    un contenant les données quotidiennes et mensuelles avec 12 feuilles (masquées) représentants les 12 mois de l'année
    un contenant les données trimestrielles 4 feuilles (masquées) représentants les 4 trimestres
    Actuellement j’utilise un code qui va afficher la feuille du mois et trimestre en cours

    Alors, voila (enfin) ma question :
    1. je voudrais avoir la possibilité d’introduire quelque part, et ce avant l’import vers access, le mois pour lequel je veux mettre mes résultats de ventes à jour.
    Ce mois serait ensuite utilisé autant dans mes requêtes access (suppréssion, création de nouvelles tables) que pour sélectionner le mois et trimestre dans mes fichiers excel

    Je me dis que en saisissant, via un formulaire, le mois dans excel (mais comment ???) il doit y avoir moyen, mais je ne sais pas trop comment access peut prendre en compte cette info

    Enfin voila, je me rends compte que c’est presque un roman, mais j’espère avoir été assez compréhensible

    Merci à ceux qui pourront encore me filer un petit coup de pouce pour que mon travail devienne plus facile !

  2. #2
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    A quel moment veux-tu saisir la date ? A l'ouverture du fichier ? Où veux-tu la placer ?
    Ne peux-tu pas utiliser un simple InputBox ?
    A+

  3. #3
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Voilà de quoi remplir une listbox avec un choix parmi les douze mois de l'année

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub Command1_Click()
     For i = 0 To 11
       Listbox1.AddItem Format(DateSerial(0, i + 1, 1), "mmmm")
     Next
    End Sub
     
    'puis, au choix  :
     
    Private Sub ListBox1_Click()
      MsgBox Listbox1.List(Listbox1.ListIndex)
      MsgBox Listbox1.ListIndex + 1
      MsgBox Format(Listbox1.ListIndex + 1, "00")
    End Sub

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Par défaut
    la, je sèche !
    Pour répondre à la question de ouskel'n'or:
    tout le travail commence en xls où je lance une macro qui va :
    1 supprimer les données en access du mois introduit ou sélectionné
    2 importer les nouvelles données en access
    3 création des tables du mois introduit ou sélectionné
    4 différentes requêtes
    5 copy/paste des résultats des requêtes dans des fichiers xls, dont certains doivent se rapporter au mois introduit ou sélectionné

    je souhaite donc que au début de ma macro en xls, une procédure if ce met en route :

    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
     
    Dim Msg, Style, Title, Response
    Dim Month As String
       Msg = "Do you want to import new Files and create a Monthly Report?"                            
            Style = vbYesNo + vbExclamation + vbDefaultButton2
            Title = "Import & Create"
            Response = MsgBox(Msg, Style, Title)
            If Response = vbYes Then    
                    Month = InputBox("Enter The Month here: ")
                    DoCmd.RunMacro "1 supprimer les données en access du mois introduit ou sélectionné"
                    DoCmd.RunMacro "2 importer les nouvelles données en access"
                    DoCmd.RunMacro "3 création des tables du mois introduit ou sélectionné"
                    DoCmd.RunMacro "4 différentes requêtes"
                    5 copy/paste des résultats des requêtes dans des fichiers xls
    'la question "select the month" est posée et ce mois est utilisé pour toutes les étapes ou c'est nécessaire en access et en xls
    Else
                    Month = InputBox("Enter The Month here: ")
                    DoCmd.RunMacro "3 création des tables du mois introduit ou sélectionné"
                    DoCmd.RunMacro "4 différentes requêtes"
                    5 copy/paste des résultats des requêtes dans des fichiers xls      
    'la question "select the month" est posée et ce mois est également utilisé pour toutes les étapes ou c'est nécessaire Sauf que les étapes 1 et 2 ne sont pas pris en compte
    je n'ai pas vraiment l'habitude d'utiliser des inputbox ou des listbox.
    je ne sais pas comment ensuite introduire ce résultat dans mes requêtes access (supprimer, création de tables) et comment en tenir compte dans mes code xls

    merci d'avance por l'aide

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Par défaut
    Bonjour à tous,

    N'ayant plus eu de réactions à mon dernier post, j'ai continué mes recherches.

    voici ce que j'ai fait pour le moment :
    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
    Public MyMonth As String
    Sub CreateReports()
     
    Dim Msg, Style, Title, Response
    Dim MyMonth As Date
    Dim acApp As New Access.Application
    Dim ReqSQL1 As String
     
    acApp.OpenCurrentDatabase ("C:\2008\SALES RESULTS\Data Files\Results_2008.mdb")
     
     
     
    Msg = "Do you want to import a new File ?"
            Style = vbYesNo + vbExclamation + vbDefaultButton2
            Title = "Import File"
            Response = MsgBox(Msg, Style, Title)
            If Response = vbYes Then
                MyMonth = InputBox("For witch month do you want to Import a file and create the Results ?")
            ' l'utilisateur tape le mois en question, quel format ???
     
    ReqSQL1 = "DELETE * FROM AA_Results_Mercator WHERE Date =  # " & MyMonth & "#"
     
    acApp.DoCmd.RunSQL (ReqSQL1)
     
            End If
     
    End Sub
    je ne vous demande pas de faire le code à ma place, mais juste de me dire si je suis sur la bonne voie ?
    et éventuellement me corriger.

    d'avance merci

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonsoir Stéphanie

    Je m'immisce dans la discussion (un peu difficile à suivre, tu en conviendras...)

    1. Dans quel module se trouve que tu utilises? Un module "standard" ou un module attaché à une feuille de calcul?

    2. Pour le lien avec Access, ton problème est-il réglé?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Remplace le nom de ta variable MyMonth ou de ta sub mymonth. Vba ne sait plus où il en est et s'il doit prendre la sub ou la sheet. Je serais de l'avis d'AlainTech : Tu as un pb avec tes variables

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2007
    Messages : 40
    Par défaut
    j'ai moi-même difficile à m'y retrouver

    je recap :
    ma variable mymonth me sert à introduire un mois (sous forme de chiffre de 1 à 12) dans un inputbox.
    cette variable est d'abord utilisée pour mes requetes en access => ça c'est OK
    ensuite elle doit être utilisée pour afficher les feuilles du mois correspondant dans d'autres classeurs ces classeurs je les ouvre au préalable dans mes procédures
    je n'ai pas de sub avec le même nom que ma variable.
    j'ai déclaré ma variable 1 seul fois en Public
    ma variable se trouve dans un module standard
    j'ai déjà renommé ma variable mais le problème reste le même.
    la variable fonctionne lorsque je reste dans le même module avec une nouvelle procedure.

    pfff, je suis vraiment pas doué ...
    dès que j'ia fini ceci, je prends le temps de m'informer un peu plus sur les variables...
    dès qu'elle passe dans un autre module j'ai le message d'erreur

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Si tu as un message Nom ambigu détecté, c'est que ta variable entre en collision avec un autre objet d'un même nom dans le même module. Cet autre objet n'est pas forcément une variable... Cela devrait donc être assez facile à détecter...

    Maintenant, il serait intéressant que tu précises exactement ce qui ne fonctionne pas.

    As-tu toujours le message Nom ambigu détecté?

    Tu parles que tu manipules une feuille d'un autre classeur. Cette manipulation se fait-elle à partir du code du classeur dans lequel tu as déclaré MyMonth ou bien via du code dans le classeur de la feuille manipulée?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

Discussions similaires

  1. Création, modification de table Access avec critère date
    Par stephanies_1977 dans le forum Général VBA
    Réponses: 5
    Dernier message: 10/03/2008, 20h31
  2. Requêtes sur enregistrements avec critères dates
    Par Aliveli dans le forum Access
    Réponses: 10
    Dernier message: 05/06/2006, 13h41
  3. Exploiter une table Access avec Ametis(étiquettes)
    Par Badboy62cfp dans le forum Access
    Réponses: 2
    Dernier message: 24/05/2006, 14h04
  4. Exploiter une table (Access) avec Ametis...
    Par Badboy62cfp dans le forum Access
    Réponses: 16
    Dernier message: 16/05/2006, 16h53
  5. detecter une modification de table access
    Par nonodev12 dans le forum Access
    Réponses: 2
    Dernier message: 20/01/2006, 07h37

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