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 :

Problème de mise en forme [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 226
    Par défaut Problème de mise en forme
    Bonjour à tous

    J'ai un problème très étrange en Excel 2013.

    J'ai un document Excel qui est généré par une application (faite sur mesure) . Celui-ci contient une liste de donnée.
    Une macro, que l'utilisateur doit exécuter manuellement, ajoute la mise en page (simplement mettre les bordures autour des cellules).
    Rien de compliqué.

    voici le code qui ajoute les bordures:
    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
     
    Sub rempli(fg As Boolean, rg As Range, Optional fst As Boolean = True, Optional gras As Boolean = False)
        ' add border around range rg
        ' if fg : true  => top & bottom will be included
        '    fg : false => top & bottom stay blank
        '    rg : range where the border will be draw
        '
        ' option:
        '   fst : true  => draw the top line (default)
        '   fst : false => top line stay blank
        '  gras : true  => border line is medium
        '  gras : false => border line is thin (default)
        ' ----------------------------------------------
     
        rg.Font.ColorIndex = 0
     
        If Not gras Then
     
            If fg Then
                st = xlContinuous
            Else
                st = xlNone
            End If
            rg.Borders(xlInsideVertical).LineStyle = xlContinuous
     
            rg.Borders(xlEdgeLeft).LineStyle = xlContinuous
            rg.Borders(xlEdgeRight).LineStyle = xlContinuous
     
            If fst Then
                rg.Borders(xlEdgeTop).LineStyle = xlContinuous
            Else
                rg.Borders(xlEdgeTop).LineStyle = xlNone
            End If
            rg.Borders(xlEdgeBottom).LineStyle = st
        Else
            rg.Borders(xlEdgeLeft).Weight = xlMedium
            rg.Borders(xlEdgeRight).Weight = xlMedium
            rg.Borders(xlEdgeTop).Weight = xlMedium
            rg.Borders(xlEdgeBottom).Weight = xlMedium
        End If
    End Sub

    Sous Excel 2010 et 2016, tout fonctionne à merveille.

    Sous Excel 2013, je reçois un message d'erreur : "Unable to set the lineStyle property of the border class"

    Ce qui est encore plus étrange, sous Excel 2013 uniquement, en dehors du tableau avec le résultat, cela fonctionne !
    Si je sélectionne une cellule dans le tableau du résultat, je clique droit et choisi "Format cells", le pop-up n'apparait pas.
    Si je choisi une cellule en dehors de ce résultat, le popup apparait.

    J'ai fait un "repair" de MS Office mais sans succès

    Je ne sais plus où chercher!

    Dans le bureau, il y a plusieurs personnes ayant la même version d'Excel. Le problème est également identique chez eux.

    Ce que j'ai déjà fait également c'est d'utiliser cette méthode de travail:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    With rg
        .Borders(xlEdgeTop).LineStyle = xlContinuous
    End Width
    Mais sans succès.

    Voilà, Cela dépasse mes compétences d' Excel.
    Toutes idées sont les bienvenues !
    Merci d'avance
    Bien à vous
    Bonne journée
    André

  2. #2
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Qu'est le "tableau de résultats" ? Un tableau croisé dynamique ? Une table de données ?

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 226
    Par défaut Problème d'affichage
    Bonjour,
    Avant tout, merci de réagir promptement.

    Non, vraiment rien de compliqué. C'est un simple tableau contenant 5 colonnes.
    Il y a toujours 380 lignes ... toujours ! pas une de plus, pas une de moins.
    Par contre le nombre de colonne est fonction des critères mais ne dépasse jamais 30 colonnes.

    C'est une liste de produit avec des valeurs (bidons dans cette copie d'écran) qui sont regroupé sur certain critères.

    Je dois simplement ajouter une bordure autour des valeurs ayant ces critères.

    Voici un exemple:
    Nom : da9v.jpg
Affichages : 626
Taille : 18,8 Ko

    Voilà,
    Encore merci
    André

  4. #4
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Est-ce que la feuille ne serait pas protégée contre les modifications ?

    Idée : au lieu d'utiliser du code VBA, tu peux peut-être regarder du côté de la mise en forme conditionnelle.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2015
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 226
    Par défaut Réponse
    Bonjour,

    Pour la protection, non. Si cela serait le cas, j'aurais le problème dans toute les version.
    Pour ce qui concerne la mise en forme conditionnel, l'idée n'est pas mauvaise.
    Je vais y regarder.

    Vu le nombre de cas particulier, y a t'il une limitation au nombre de condition différentes (± 50)

    Merci pour votre support.
    Je vais essayer.
    Je ne sais pas fournir une réponse aujourd'hui.

    Bien à vous
    André

  6. #6
    Modérateur

    Homme Profil pro
    Inscrit en
    Octobre 2005
    Messages
    15 410
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Octobre 2005
    Messages : 15 410
    Par défaut
    Bonjour.

    Les version d'Excel après 2007 n'ont il me semble pas de limite sur le nombre de mises en forme conditionnelles mais 50 règles ça fait un sacré paquet et l'interface ne te présente que 5 règles à la fois.
    Ce n'est pas super confortable quand tu en as beaucoup, le VBA est sans doute plus facile à vivre.

    Ce qui m'étonne le plus dans ton cas c'est que tu ne puisses pas le faire à la main non plus c'est pour cela que je pensais à la protection.

    À tout hasard, as-tu essayé de sélectionner les cellules du tableau, les copier et les coller dans une autre feuille ? Dans un autre classeur ? Est-ce que tu peux les formater dans le nouvel environnement.

    A+
    Vous voulez une réponse rapide et efficace à vos questions téchniques ?
    Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
    Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par dede_bo Voir le message
    Bonjour,

    Sans aucune garantie :

    Le tableau ci-dessous indique les paramètres pour XlLineStyle (Office 365). Votre paramètre XlNone pour aucun trait n'existe pas dans la liste.
    Sinon, essayez de remplacer les xl... par leur valeur numérique.

    Regardez également si le problème ne vient pas de cette ligne en la neutralisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ' rg.Borders(xlInsideVertical).LineStyle = xlContinuous

    Pièce jointe 502080

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 13/08/2009, 20h20
  2. [CR9] [CRXI] Problème de mise en forme sur un nom de groupe
    Par Maltus dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 06/09/2006, 10h32
  3. [VBA_E] Problème de mise ne forme,pour balayage
    Par baptbapt dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 29/08/2006, 13h33
  4. [VBA] Problème enregistrement mise en forme fichier word
    Par guenfood dans le forum VBA Word
    Réponses: 1
    Dernier message: 07/06/2006, 14h10

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