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 :

Bordure cellule simplifier le code de l'enregistreur de macro [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Apprenti technicien en informatique
    Inscrit en
    Décembre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Apprenti technicien en informatique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 23
    Par défaut Bordure cellule simplifier le code de l'enregistreur de macro
    Bonjour j'ai un programme qui rentre les données rentrées dans un userform sur une ligne le but étant que j'ajoute dans ce programme que cela change aussi les bordure des cellules pour rendre cela plus visible et donc lisible j'ai donc utilisé l'enregistreur de macro pour me faciliter la tache mais le code est vachement long je cherche donc à le simplifier mais je ne vois pas comment.

    Voila le code de l'enregistreur de macro

    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
    Range("A10:H10").Select
        Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        With Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With Selection.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With Selection.Borders(xlInsideVertical)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
        With Selection.Borders(xlInsideHorizontal)
            .LineStyle = xlContinuous
            .ColorIndex = 0
            .TintAndShade = 0
            .Weight = xlThin
        End With
    End Sub
    merci pour votre aide,
    Dragern.

  2. #2
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 56
    Par défaut
    Salut,

    Tu peux remplacer ton code par celui là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        With Range("A10:H10")
            .Borders(xlEdgeTop).LineStyle = xlContinuous
            .Borders(xlEdgeLeft).LineStyle = xlContinuous
            .Borders(xlEdgeRight).LineStyle = xlContinuous
            .Borders(xlEdgeBottom).LineStyle = xlContinuous
            .Borders(xlInsideHorizontal).LineStyle = xlContinuous
            .Borders(xlInsideVertical).LineStyle = xlContinuous
        End With
    Le mieux est de faire quelques tests en supprimant des lignes pour voir leur effet. Une fois que tu as trouvé les inutiles, tu les supprimes.

    A+

    Captain

  3. #3
    Membre averti
    Homme Profil pro
    Apprenti technicien en informatique
    Inscrit en
    Décembre 2015
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Val d'Oise (Île de France)

    Informations professionnelles :
    Activité : Apprenti technicien en informatique

    Informations forums :
    Inscription : Décembre 2015
    Messages : 23
    Par défaut
    Merci beaucoup captain

  4. #4
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 56
    Par défaut
    De rien

    N'oublie pas de mettre la question en "Résolu"

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    si il n'y a pas de couleur ou de type de bordure comme j'ai cru comprendre il y a beaucoup plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Sub test()
    With Range("A10:H10")
    .Borders(1).LineStyle = 1 'tout les droites de toutes les cellules de la plage 
    .Borders(3).LineStyle = 1' tout les tops de toutes les cellules de la plage 
    .Borders(4).LineStyle = 1 'tout les bottom de toutes les cellules de la plage 
    End With
    End Sub
    en utilisant les index a la place des( xledge....) on peut diminuer le nombre d'apel

    j'avais fait la demo il y a meme pas deux mois, la discution devrait etre facilement etre retrouvée
    faut il encore que le demandeur prenne la peine de faire une recherche


    et si on veux encore plus simplifier comme c'est que sur une seule ligne
    on s'occupe que du pourtour de la plage ainsi que des inside
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
    With Range("A10:H10")
    .BorderAround ColorIndex:=0, Weight:=xlThin
    .Borders(1).LineStyle = 1
    End With
    End Sub
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Membre éclairé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2015
    Messages
    56
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gers (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2015
    Messages : 56
    Par défaut
    Ah je ne connaissais pas le principe de ces index ni le coup du borderaround! C'est vrai que ça raccourcit bien la fonction

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

Discussions similaires

  1. Transfert Excel --> bordure cellule
    Par zapatta dans le forum Access
    Réponses: 4
    Dernier message: 08/10/2009, 22h15
  2. Réponses: 4
    Dernier message: 10/05/2008, 12h31
  3. Simplifier mon code "Majuscule/Minuscule"
    Par Manou34 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 24/01/2008, 17h05
  4. Aide pour simplifier un code VBA Excel
    Par NEC14 dans le forum Macros et VBA Excel
    Réponses: 19
    Dernier message: 24/01/2008, 16h15
  5. insérer une fonction dans une cellule par le code
    Par RemiT dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/09/2007, 16h15

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