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 :

mise en page feuille excel par transfert d'Access


Sujet :

Access

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Points : 39
    Points
    39
    Par défaut mise en page feuille excel par transfert d'Access
    Bonjour à tous !

    Vous commencez à me connaître avec mes problèmes!

    J'ai Access 97(anglais) et Excel 2000. J'ai une table avec une dizaine de champs et un formulaire basé sur cette table qui me permet d'entrer de nouveaux enregistrements dans ma bdd.

    Le souci est que, quand par une macro, j'envoie une partie de ma bdd, j'ai la forte impression que les champs apparaissent (au niveau des colonnes d'Excel) dans un ordre complétement aléatoire alors que je voudrais qu'ils soient affichés dans l'ordre que je les ai écris dans ma table.

    Ma question est la suivante : comment faire, dans la mesure du possible, de déterminer l'ordre dans lequel seront affichés mes champs sur ma feuille Excel, que ce soit à partir d'Access ou d'Excel peu importe, que je puisse intégrer dans une macro pour faciliter la chose. De même pour la typo (taille, couleur, etc...) qui correspond à celle de mon formulaire.

    Je remercie d'avance tous ceux qui s'interesseront à mon problème.

    Merci.

  2. #2
    Membre confirmé Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Points : 481
    Points
    481
    Par défaut
    Bonjour,

    Pour ce qui concerne l'export, je pense que exporter une requête à la place de la table doit résoudre ton problème.

    Pour la mise en forme pure et dure de ta feuille Excel, à mon avis il va falloir passer par du code VBA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Dim XLSobj As Excel.Application
    Set XLSobj = CreateObject("Excel.Application")
     
    etc.

  3. #3
    Débutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Points : 39
    Points
    39
    Par défaut
    bonjour chrifo !

    je te remercie pour m'a repondu et de m'avoir mis sur la voie mais le problème est que je n'utilise Access qu'un petit peu plus d'un mois, donc je ne comprends pas grand chose en programmation, pourrais tu donc m'expliquer et développer un peu plus s'il-te-plaît?

    Merci.

  4. #4
    Membre confirmé Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Points : 481
    Points
    481
    Par défaut
    Ci-dessous un petit exemple, qui :
    - déclare un objet de type Excel
    - vérifie l'existance du fichier destination et le flingue si besoin
    - ouvre un fichier xls modèle et le sauvegarde en fichier destination
    - sélectionne une ligne
    - applique une petite mise en forme

    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
     
    Dim XLSobj As New Excel.Application
     
    'Test d'existence du fichier destination
    If Len(Dir(CHEM_GEN)) > 0 Then
        Kill CHEM_GEN
    End If
     
    ' Ouverture du modèle
        XLSobj.Workbooks.Open filename:=CHEM_MODELE
        XLSobj.ActiveWorkbook.SaveAs filename:=CHEM_GEN
     
        With XLSobj
     
            'sélection de la ligne numligne
            .Rows(NumLigne & ":" & NumLigne).Select
     
            'mise en forme
            .Selection.Font.Size = 8
            .Selection.Orientation = 0
            .Selection.RowHeight = 13.5
         End With
    Remarques :
    - Pour utiliser ce type de code, n'oublie pas, dans "Outils --> références", de cocher "Microsoft Excel Object library"
    - Pour générer du code sans difficulté, je te conseille de tout simplement enregistrer des macros dans excel correspondant à ce que tu veux faire, puis de regarder le code de ces macros pour t'en inspirer.

  5. #5
    Débutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Points : 39
    Points
    39
    Par défaut
    re bonjour chrifo

    j'ai fais ce que tu m'as dis et ça a marché ! je t'en remercie !

    Mais maintenant j'ai un autre problème si ça te dis ?!!

    Voilà, j'ai crée une macro qui fait deux filtres (chacun fabriqué avec une requête), leurs résultats respectifs sont affichés sur deux feuilles Excel différentes.

    Mon souhait est, par l'intermédiaire d'une macro (qu'elle soit d'Excel ou d'Access), de prendre le contenu d'une des deux feuilles et de l'intégrer sur l'autre feuille Excel pour en obtenir une seule (si cela est possible bien entendu !).


    Une précision qui a son importance(?), cette opération sera répétée des centaines de fois et je devrais à chaque fois changer le nom des mes feuilles excel (il faut absolument garder les anciennes !), ce qui signifie que dans la future modification il faudre faire de même. Si ça peut vous éviter de vous lancer dans une idée vague ?

    Merci d'avance pour vote aide.

  6. #6
    Membre confirmé Avatar de chrifo
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    444
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 444
    Points : 481
    Points
    481
    Par défaut
    Re,
    C'est le même problème, tu peux tjs le solutionner avec un petit bout de code, soit dans Access, soit dans excel. Ce n'est pas très compliqué a faire maintenant que tu connais le chemin

    Remarque :
    Si ton développement est en fait une appli Access qui génère simplement des résultats au format Excel, je te conseille de mettre tout ton code dans Access, la maintenance et l'évolution s'en trouveront beaucoup plus aisées ...

  7. #7
    Débutant
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    167
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 167
    Points : 39
    Points
    39
    Par défaut
    Je te suis très reconnaissant pour tes nombreux conseils, mais comme je l'ai déjà dis je ne sais pas programmer, peux tu m'aider stp ?

    Merci beaucoup.

Discussions similaires

  1. [AC-2007] Mise en page d'Excel par automation
    Par h1karu dans le forum Contribuez
    Réponses: 1
    Dernier message: 15/02/2013, 04h24
  2. Mise à jour de feuilles excel par macro
    Par kuma_buzz dans le forum Macros et VBA Excel
    Réponses: 37
    Dernier message: 24/10/2007, 11h44
  3. Mise en page d'Excel avec VB6 ?
    Par sebajedi dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 19/12/2006, 14h01
  4. [VBS] - Mise en page d'Excel (Bordure de cellule)
    Par RegiO dans le forum VBScript
    Réponses: 2
    Dernier message: 01/09/2006, 14h44
  5. [Excel] mise en page d'un export venant d'Access
    Par kleenex dans le forum Access
    Réponses: 14
    Dernier message: 28/06/2006, 18h39

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