Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1506 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Cellule fusionnée et xlEdgeRight

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Cellule fusionnée et xlEdgeRight

n°2168540
guigui3589
Posté le 18-12-2012 à 16:49:47  profilanswer
 

Bonjour à tous,
 
J'ai besoin de repérer les bordures droites des cellules et je ne sais pas pourquoi j'arrive à les repérer sur les cellules simples mais je n'arrive pas à les repérer sur les cellules fusionnées.
 
Ex : je lance la macro suivante sans succès
 
Sub Macro1()
If Not Cells(1, 1).Borders(xlEdgeRight).LineStyle = xlNone Then Cells(1, 1) = "Test" & Cells(1, 1).Value
End Sub
 
Au contraire, cela marche pour toutes les autres bordures et les cellules non fusionnées. Je précise que je ne peux pas dé-fusionner ces cellules pour le bon fonctionnement de ma macro.

mood
Publicité
Posté le 18-12-2012 à 16:49:47  profilanswer
 

n°2168547
Marc L
Posté le 18-12-2012 à 17:18:09  profilanswer
 

 
              Avec la propriété MergeArea (voir l'aide de VBA) cela devrait aller …
 

n°2168549
guigui3589
Posté le 18-12-2012 à 17:53:19  profilanswer
 

Merci Marc,
 
J'ai trouvé une solution certainement pas la plus simple mais bon ça marche; cela consiste à repérer les cellules fusionnées dont la cellule juste à côté a une bordure gauche
 
If Cells(i, j).MergeArea.Columns.Count > 1 And Not Cells(i, Cells(i, j).MergeArea.Columns.Count + 1).Borders(xlEdgeLeft).LineStyle = xlNone Then Cells(i, j) = "Test" & Cells(i, j).Value

n°2168565
Marc L
Posté le 18-12-2012 à 20:21:12  profilanswer
 

 
               Et pourquoi ne pas tester directement sur  Cells(i,j).MergeArea  ?
 

Code :
  1.     If Cells(i, j).Address = Cells(i, j).MergeArea(1).Address And _
  2.        Cells(i, j).MergeArea.Borders(xlEdgeRight).LineStyle <> xlNone Then _
  3.        Cells(i, j) = "Test" & Cells(i, j).Value


               Le test de la première ligne ne sert qu'à éviter de refaire plusieurs fois l'affectation sur le même groupe de cellules fusionnées,
               j'ai supposé qu'il s'agissait d'une boucle …
 
               Et cela fonctionne aussi pour une cellule non fusionnée car le test s'effectue sur l'adresse de la première cellule de MergeArea,
               donc la cellule elle-même !
 
               S'il y a beaucoup de ligne à traiter, mettre en début de code  Application.ScreenUpdating = False  accélère le traitement.


Message édité par Marc L le 18-12-2012 à 20:30:39

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Cellule fusionnée et xlEdgeRight

 

Sujets relatifs
[VBA] Créer une liste depuis une cellulerécupérer la valeur d'une cellule dans plusieurs classeurs
Création d'un nouveau tableau sans cellule videMacro Excel : remplir les vides avec la valeur de la cellule suivante
Remplir une cellule td avec une couleur et un paddingMacro Excel -> ajouter un caractère dans une cellule
extraire valeur d'une cellule désignée par autre cellule ?couleur de cellule tableau automatique fichier odt php
[Résolu]Copie d'une cellule d'un fichier à l'autreAide VBA - verrouillage code et cellule
Plus de sujets relatifs à : Cellule fusionnée et xlEdgeRight


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR