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

VBA Access Discussion :

mise en forme d'un tableur Excel


Sujet :

VBA Access

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 67
    Points : 49
    Points
    49
    Par défaut mise en forme d'un tableur Excel
    Bonjour et merci d'être passé voir mon pb ^^


    Alors voilà je dois faire des tableaux sous Excel de résultats de plusieurs requêtes complexe depuis Access.

    Mettre en place les données dans les cellules pas de pb, par contre pour la mise en forme après c'est une autre histoire et je ne trouve pas tout (peut être pas les bon mots dans mes recherches)

    D'ailleurs si un posteur de FAQ passe par la, il serrait bon de mettre un exemple de chaque (gras, italique, fusion cellule, etc...) sur la Faq du site http://access.developpez.com/faq/?page=Excel#PilotExcel


    Dans mon cas je voudrais savoir comment faire :

    - le choix d'une police d'écriture
    - le choix de la taille d'écriture
    - une bordure complète autour d'une cellule (sans faire gauche, droite, haut et bas si cela existe)
    - une bordure complète autour de plusieurs cellules (mais pas entre chaque cellule, pareil sans devoir faire bas et haut pour toute et gauche pour celle tout a gauche et droite pour celle a droite)
    - un quadrillage complet de plusieurs cellules



    - dans le cas d'une fusion de plusieurs cellules en largeur et haute, comment mettre le texte en centré sur la hauteur
    Exemple une fusion A1 à C3 avoir le texte comme s'il était en B2


    - pour le gras et italique j'ai compris qu'il faut utiliser .font (donc après je test pour trouver ce que je veux)


    et pour finir l'ajout d'une image en haut du fichier ou dans une cellule si cela est possible

    Merci bien

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

    Je vais te donner une astuce que plusieurs (et même presque tous utilisent au démarrage).

    Comme tu as pu le voir, on utilise le VBA Excel. Donc va dans Excel et utilise l'enregistreur de macro lorsque tu réalises la manipulation manuellement. Ensuite va voir le code VBA dans Excel, et tu auras les instructions dont tu as besoin.

    De plus le forum et la FAQ Excel regorgent de codes de formatage.

    Starec

  3. #3
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 350
    Points
    34 350
    Par défaut
    salut,
    les réponses sous les questions
    - le choix d'une police d'écriture
    voir Range.Font.FontStyle

    - le choix de la taille d'écriture
    Range.Font.Size
    - une bordure complète autour d'une cellule (sans faire gauche, droite, haut et bas si cela existe)
    Range.Borders.LineStyle
    - une bordure complète autour de plusieurs cellules (mais pas entre chaque cellule, pareil sans devoir faire bas et haut pour toute et gauche pour celle tout a gauche et droite pour celle a droite)
    idem, utilise le macrorecorder sous Excel pour avoir la syntaxe complète
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    - un quadrillage complet de plusieurs cellules
    même punition :p

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 67
    Points : 49
    Points
    49
    Par défaut
    je remonte mon topique car j'ai un pb sur les bordures
    je me base sur le code que me donne la macro sous Excel

    je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Range("A" & Premiereligne & ":I" & Lignecourante - 1).Select
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        With Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
    ...
    Et j'ai une erreur 1004 "la méthode Range de l'objget _global a échoué"

    mais pas a chaque fois. En fait si je lance ma fonction qui fait mes tableaux la 1ere fois y a plantage. Je stop le debug, je supprime le processus Excel et je relance la fonction (via le clic d'un bouton) et la miracle pas de pb.
    J'ouvre le fichier final, je supprime la feuille créée et je re-clic sur le bouton, bingo ca marche pas.

    Il y a plusieur tableaux à la suite de taille variable et séparés par 2 lignes vides.
    Donc je fais le code pour mettre les bordures avec avoir remplis un tableau

  5. #5
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 350
    Points
    34 350
    Par défaut
    salut,
    ta premiereligne et ligenencours correspondent à des variables passées en paramètres ou calculées en amont du code ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 67
    Points : 49
    Points
    49
    Par défaut
    les 2 sont calculés pendant le traitement du code, mais sont déclarés comme étant des long
    C'est pas une fonction avec paramètre, c'est la fonction de l'evenement sur clic d'un bouton.


    Premiereligne quand j'écris le titre du tableau, j'ai un premiereligne = lignecourante

    et lignecourante tout le long du code pour tout les tableaux (mon fil conducteur)





    edit : est il possible que le pb soit qu'en fin de fonction il y ai eu un range(...).select mais qui n'a pas était "vidé"

    je demande parce que je vois que, quand la création marche, les cellules du dernier tableau sont selectionnés. Faut il faire une sorte de code pour dire qu'il n'y a plus de selection ?

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Août 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 67
    Points : 49
    Points
    49
    Par défaut
    J’ai vue sur le forum qq un qui avait le même code d'erreur et on lui a dit de rajouter xlSheet. devant range

    Effectivement y il n'y a plus d'erreur sur le range. Mais directement sur la ligne d'en dessous

    Puis j'ai aussi des "serveur distant inaccessible" alors que je suis en local sur un poste.






    edit : c'est bon j'ai trouvé, a force de voir plusieur facon de faire par plusieur personne. Y en a un qui avait un xlApp. devant le Selection

    donc xlApp.Selection.Borders..... en plus du xlSheet.Range(...).select

    et la plus de pb

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

Discussions similaires

  1. Convertir la mise en forme d'une cellule excel en html
    Par ben_ghost dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 18/06/2024, 09h13
  2. Réponses: 13
    Dernier message: 28/11/2011, 14h55
  3. Mise en forme des données sous Excel
    Par mhamedbj dans le forum Cognos
    Réponses: 2
    Dernier message: 27/08/2011, 17h00
  4. Mise en forme d'un fichier excel
    Par douja dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 15/11/2007, 19h14
  5. [VBA] Mise en forme d'un fichier Excel depuis Access
    Par morgiane dans le forum Access
    Réponses: 2
    Dernier message: 25/07/2007, 11h32

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