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

VB.NET Discussion :

Problème de bordure de plage de cellule excel


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 19
    Par défaut Problème de bordure de plage de cellule excel
    Bonjour tt le monde

    j'ai un problème au niveau de bordure de plage des cellules, j'ai essayé ce code
    mais il le fait ca cellule par cellule et bord par bord (gauche, droit, haut, bas), ce qui allonge le temps d'execution car j'ai pas mal de ligne dans le fichier.

    svp une idée

    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 rngx As Excels.Range
                        rngx = xlWorkSheet.Range(xlWorkSheet.Cells(k + 4, iCol + 1), xlWorkSheet.Cells(k + 4, iCol + 1))
                        rngx.HorizontalAlignment = Excels.XlHAlign.xlHAlignCenter
                        rngx.Font.Bold = True
                        'Mettre des bordures
     
                        With rngx
                            .Borders(Excels.XlBordersIndex.xlEdgeRight).Color = 0
                            .Borders(Excels.XlBordersIndex.xlEdgeRight).LineStyle = Excels.XlLineStyle.xlContinuous
                            .Borders(Excels.XlBordersIndex.xlEdgeRight).Weight = 2
                            .Borders(Excels.XlBordersIndex.xlEdgeBottom).Color = 0
                            .Borders(Excels.XlBordersIndex.xlEdgeBottom).LineStyle = Excels.XlLineStyle.xlContinuous
                            .Borders(Excels.XlBordersIndex.xlEdgeBottom).Weight = 2
                            .Borders(Excels.XlBordersIndex.xlEdgeLeft).Color = 0
                            .Borders(Excels.XlBordersIndex.xlEdgeLeft).LineStyle = Excels.XlLineStyle.xlContinuous
                            .Borders(Excels.XlBordersIndex.xlEdgeLeft).Weight = 2
                            .Borders(Excels.XlBordersIndex.xlEdgeTop).Color = 0
                            .Borders(Excels.XlBordersIndex.xlEdgeTop).LineStyle = Excels.XlLineStyle.xlContinuous
                            .Borders(Excels.XlBordersIndex.xlEdgeTop).Weight = 2
     
                        End With

  2. #2
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut bordure de cellules
    bonjour
    encadre ton code par ces 2 instructions qui desactive la maj fenetre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    'app c'est ton application excel par exemple :
    ' dim app=new excel.application
    app.screenupdating=false
     
     
    app.screenupdating=true
    bon code...............

  3. #3
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 19
    Par défaut
    Merci Mabrouki pour ta réponse mais c'est pas ça ce que je veux, mon code ça marche trés bien et je veux l'optimiser pour diminuer le temps d'exécution.

    si vous avez un autre code pour tracer les bordures dans excel

    merci d'avance

  4. #4
    Membre Expert
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    1 048
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 048
    Par défaut
    Pourtant l'astuce que t'as indiqué MABROUKI peut améliorer la vitesse d'execution de ta procédure.

    Essaye de mesure le temps avec un timer sur ta procédure avec et sans le code du screenupdating. Tu verras que tu seras gagnant...

    Code pour tester

    x = Now
    '.... code à tester
    MsgBox Format(Now-x,"en un truc lisible")

    Autrement tu peux essayer d'enregistrer une macro qui crée le cadre sous Excel, d'étudier le code VBA généré par derrière (peut être possible d'effectuer ceci pour un range de plusieur cellules au lieu de le faire par cellule) ça peut donner des idées...

  5. #5
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut le bn code pas le mauvais
    bonjour
    astuce vu que tu repetes la meme bordure autour des cellules(meme style de line ,meme couleur,meme epaisseur) tu aurais pu utiliser cette autre variante expeditive pour tes doigts(une seule ligne):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    range.BorderAround([LineStyle], [Weight], [ColorIndex], [Color])
    ton code n'est justifie que si il y a un changement de format presentation des cellules..............
    "alimenta chi'in ou ghabta anka achiaou ......." mot celebre d'un poete arabe qui veut dire en subtance "tu a su une chose,mais grandes quantite t'echappe........".
    bon code.................

  6. #6
    Membre averti
    Inscrit en
    Octobre 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 19
    Par défaut Merci
    Merci infinemment MABROUKI pour ton astuce, ça m'a bcp aidé, j'ai economiser 2 min d'exécusion.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
     With xlWorkSheet.Range(xlWorkSheet.Cells(k + 4, iCol + 1), xlWorkSheet.Cells(k + 4, iCol + 1))
             .WrapText = True
             .EntireColumn.AutoFit()
             .Font.Bold = True
             .HorizontalAlignment = Excels.XlHAlign.xlHAlignCenter  
                         .BorderAround(Microsoft.Office.Interop.Excel.XlLineStyle.xlContinuous, Microsoft.Office.Interop.Excel.XlBorderWeight.xlThin, Microsoft.Office.Interop.Excel.XlColorIndex.xlColorIndexAutomatic)
    End With
    Merci et A+

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

Discussions similaires

  1. [VB.NET] [VS 2005] bordure plage de cellule excel
    Par HULK dans le forum Windows Forms
    Réponses: 2
    Dernier message: 21/08/2008, 12h22
  2. problème pour l'heure dans d cellule excel
    Par fabien59420 dans le forum Excel
    Réponses: 3
    Dernier message: 01/07/2008, 14h14
  3. Coller une plage de cellules Excel dans Word
    Par ouskel'n'or dans le forum Contribuez
    Réponses: 0
    Dernier message: 21/09/2007, 00h32
  4. plage de cellule excel dans message outlook
    Par dusud83 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 04/07/2007, 10h51
  5. [VBA-E] Selection dynamique avec la sourie de plages de cellules Excel
    Par geeksideofme dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 30/04/2007, 11h20

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