problème de bordures...

pnlop

XLDnaute Occasionnel
Bonjour le forum,
J'aurais besoin de votreaide pour mon code "bordures"... qui est censé faire ceci:

Dans ma feuille, les données sont entrées par macro (depuis UserForm) et viennent se coller en A32:E32 et en dessous. J'aimerais par mon code que si A32 (et les "A" suivants sont pleins, alors une bordure entoure chaque cellule de A32 à E32. Mais si c'est vide, pas de bordure! Car ensuite une macro vient vider les données de la feuille pour pouvoir accueillir de nouvelles données et du coup, j'aimerai que ces cellules n'aient plus de bordures avant d'être à nouveau remplie...
Petite complication et raison pour laquelle je procède avec ce code, c'est que "E" n'est pas systématiquement rempli..

Private Sub Borders()

Dim i As Long, Fin As Long
With Worksheets("visualisation")
Fin = .Range("A" & Rows.Count).End(xlUp).Row
For i = 32 To Fin
.Range("A" & i & ":E" & i).Borders.LineStyle = xlContinuous

Next i
End With



End Sub
J'ai mis la feuille de mon fichier en PJ, juste pour la mise en forme et visualisation car je ne peux pas mettre tout le classeur...
Merci d'avance!
A +
pnlop
 

Pièces jointes

  • bordures....xlsx
    12 KB · Affichages: 48

JCGL

XLDnaute Barbatruc
Re : problème de bordures...

Bonjour à tous,

Peux-tu essayer dans un module standard :

Option Explicit
Sub Borders()
Dim i As Long, Fin As Long
With Feuil1
Fin = .Range("A" & Rows.Count).End(xlUp).Row
.Range("A32:E" & Fin + 10).Borders.LineStyle = xlNone
For i = 32 To Fin
.Range("A" & i & ":E" & i).Borders.LineStyle = xlContinuous
Next i
End With
End Sub

Et dans le module de la feuille :

Option Explicit
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Call Borders
End Sub
A+ à tous
 
Dernière édition:

Dull

XLDnaute Barbatruc
Re : problème de bordures...

Salut pnlop, Mon JC:cool:, le Forum

Juste pour saluer l'ami Jean Claude:) et éventuellement te proposer une alternative avec une Mise en forme Conditionnelle

place toi en A32
Accueil/Mise en Forme Conditionnelle
Nouvelle règle
Sélectionner un type de règle: Utiliser une formule... la dernière
Appliquer une mise en forme aux valeurs pour lesquelles cette formule est vraie: =$A32<>""
Ok
Ok
et ensuite tu click sur le pinceau et tu sélectionne ta plage soit A32:E38

EDITION: Mince je me suis fait grillé par Philippe :) cela ne m’empêcheras pas de te saluer bien bas :D

@+++JC
Bonne Journée
 
Dernière édition:

pnlop

XLDnaute Occasionnel
Re : problème de bordures...

Je vous remercie tout pour vos réponse!
Mais je n'arrive avec aucune.....
JCGL: pas tout compris dans le code ->
.Range("A32:E" & Fin + 10).
phlaurent55: a fonctionne super dans ton fichier, mais pas dans le mien!!!
Dull: oû est le pinceau!?! Et pourquoi E38? Le nombre de ligne dès 32 sera variable.....
Donc je souhaite prendre la méthode phlaurent55, mais surtout réussir à la faire fonctionner ou alors le code de JCGL, en essayant si possible de comprendre...!!:rolleyes:
A +
 

JCGL

XLDnaute Barbatruc
Re : problème de bordures...

Bonjour à tous,

Entre des valeurs en A32 et suivantes...
Efface des valeurs entre A32 et suivantes...

Le + 10 avec Fin pour vraiment effacer toutes les bordures résiduelles.

A+ à tous
 

Pièces jointes

  • JC Bordures.xlsm
    16.7 KB · Affichages: 37

pnlop

XLDnaute Occasionnel
Re : problème de bordures...

OK JCGL,
J'ai testé le code, mais autant dans ton fichier que dans le mien (j'ai changé chez moi With Worksheets("visualisation") qui est le nom de la feuille concernée dans mon classeur) et bien il me met que l'indice n'appartient pas à la sélection...(9)...?????
Une idée du pourquoi?

je reprends!!! tout fonctionne!
A plus et merci à tous!!
pnlop
 
Dernière édition:

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : problème de bordures...

Re
phlaurent55: a fonctionne super dans ton fichier, mais pas dans le mien!!!
quel que soit le nom de la feuille ça doit fonctionner puisque la mfc est faite sur la feuille et que ça n'a rien à voir avec une quelconque procédure

Sélectionne la plage A32:E999 ensuite "Mise en forme conditionnelle", ( 999 à adapter)
........ "Nouvelle règle",
........ "Utiliser une formule"
et tu tapes: =NB.VIDE($A32:$E32)<5
un peu plus bas clique sur "Format" et sélectionne l'onglet "Bordure"
tu choisis le quadrillage
.......... et pour terminer "OK"

à+
Philippe
 

Discussions similaires

Statistiques des forums

Discussions
311 720
Messages
2 081 910
Membres
101 837
dernier inscrit
Ugo