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 :

recuperer donnes access sur excel


Sujet :

Macros et VBA Excel

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 83
    Points : 47
    Points
    47
    Par défaut recuperer donnes access sur excel
    Bonjour à tous !

    je vous expose mon problème :

    je suis débutant en vba et je ne connais pas grand chose au macro pourtant je dois rélaiser la chose suivante :

    1) à l'aide d'une macro je dois pouvoir recuperer une partie des données de la table "tarif" qui se trouve dans la base "base de tarif.mbd"

    La table "Tarif" contient le champ "Reçu le" qui est de la forme 01/01/07.
    Je veux afficher dans ma feuille excel toutes les données de la table "Tarif" pour lesquelles "Reçu le " fini par 06 ou 07 à l'aide d'une macro.

    Est ce possible ? si oui pouvez m'indiquer comment faire
    Je vous remercie par avance.

    2) Si j'arrive à réaliser l'étape 1, je serai deja ravi :
    Le deuxième point délicat est le suivant :

    La table contient entre autre le champ "recu le ", "effectif a" et "effectif b"

    Je souhaiterai toujours à l'aide d'une macro insérer automatiquement 4 colonnes avec un nombre de lignes égale à la taille de la feuille excel.
    Je voudrais inserer le champ "mois" qui correspondrait au mois du champ "Reçu le". De la même manière je voudrais inserer le champ "année".
    Je voudrais egalement rajouter le champ effectif qui correspondrait a la somme des champ "effectif a " et "effectif b" et enfin mettre un dernier champ "classification" qui correspond à la, chose suivante :

    si effectif < 300 alors 1
    si effectif compris entre 300 et 1000 alors 2
    sinon 3

    Si quelqu'un peut m'aider, je le remercie par avance car je suis dans la m...

  2. #2
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    Un exemple en utilisant la bibliothèque DAO
    (vérifie le nom du champ date [Reçu Le ] avant de lancer la procédure)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub importDonnees_DAO()
        Dim Db As DAO.Database
        Dim Rs As DAO.Recordset
        Dim strSQL As String
     
        Set Db = DAO.OpenDatabase("C:\dossier\base de tarif.mbd", False, False)
        strSQL = "SELECT * FROM [Tarif] WHERE [Reçu Le ] BETWEEN #01/01/06# AND #31/12/07#"
        Set Rs = Db.OpenRecordset(strSQL, DAO.dbOpenSnapshot)
     
        Range("A1").CopyFromRecordset Rs
     
        Db.Close
    End Sub


    bonne soirée
    michel

  3. #3
    Débutant
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 83
    Points : 47
    Points
    47
    Par défaut
    Je vous remercie monsieur.

    Pouvez m'expliquer en deux lignes le principe du DAO si cela ne vous dérange pas


    Concernant la deuxième partie de mon problème, j'ai le code suivant :

    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
    Sub Macro2()
    '
    ' Macro2 Macro
    ' testtt
    '
     
    '
        Selection.Insert Shift:=xlToRight
        Columns("F:F").Select
        Selection.Insert Shift:=xlToRight
        Range("E1").Select
        ActiveCell.FormulaR1C1 = "Mois"
        Range("F1").Select
        ActiveCell.FormulaR1C1 = "Annee"
        Range("E2").Select
        ActiveCell.FormulaR1C1 = "=MONTH(RC[-1])"
        Range("E2").Select
        Selection.NumberFormat = "0.00"
        Selection.AutoFill Destination:=Range("E2:E4")
        Range("E2:E4").Select
        Range("F2").Select
        ActiveCell.FormulaR1C1 = "=YEAR(RC[-2])"
        Range("F2").Select
        Selection.NumberFormat = "0.00"
        Selection.AutoFill Destination:=Range("F2:F4")
        Range("F2:F4").Select
        Selection.Style = "Comma"
        Selection.Style = "Comma"
        Selection.NumberFormat = "_(* #,##0_);_(* (#,##0);_(* ""-""_);_(@_)"
        Range("E2:E4").Select
    End Sub

    Le problème est que ce code ne marche pas dans tous les cas.
    Ici, j'avais 3 lignes après l'utilisation de la première requete. J'ai donc manuellement créer 3 lignes puis calculer le mois et l'annee en fonction du champ "Reçu le".
    Comment puis je faire, pour que cette opération soit automatique et qu'elle m'insère le bon nombre de lignes ?

    (dans mon cas si je rajoute un enregistrement dans ma base de donnees et que je lance la macro sous excel, je vais faire l'import correctement mais ensuite j'aurais seulement l'annee et le mois qui seront rempli pour les 3 premières lignes et pas la dernière


    Encore merci pour votre aide

    J'ai egalement une question concernant le code que vous m'avez envoyé.
    Est ce possible de faire egalement afficher le nom des champs et pas seulement les valeurs des champs ?

    Vraiment merci

    Bonne fêtes

    Yoann

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour

    En complément de la réponse de Silkyroad, je te conseille la lecture de cet article : http://warin.developpez.com/access/dao/

    Et d'aller faire de temps en temps un tour sur le forum Access, dans la rubrique VBA où tu trouveras de nombreux exemples sur DAO.

    Starec

Discussions similaires

  1. Export de données Access sur Excel
    Par pedro91 dans le forum VBA Access
    Réponses: 6
    Dernier message: 17/10/2011, 18h49
  2. [AC-2003] Comment envoyer des données access sur excel?
    Par maringot dans le forum VBA Access
    Réponses: 3
    Dernier message: 19/11/2009, 09h32
  3. Fusion automatique données access sur openoffice writer
    Par HookerSeven dans le forum Access
    Réponses: 4
    Dernier message: 16/06/2008, 17h16
  4. comment afficher des données Access sur Word ??
    Par merlubreizh dans le forum Access
    Réponses: 7
    Dernier message: 16/09/2005, 15h07
  5. comment afficher des données Access sur Excel ??
    Par merlubreizh dans le forum Access
    Réponses: 9
    Dernier message: 14/09/2005, 14h38

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