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
 

Fichiers joints

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:

JCGL

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

Bonjour à tous,
Salut Philippe,
Salut mon Didier,

Juste pour vous saluer les amis...

A++++
A+ à tous
 

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
 

Fichiers joints

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

XLDnaute Barbatruc
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
 

pnlop

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

Merci pour l'explication Philippe. Mon erreur (stupide je sais...:eek:) est que je n'ai séléctionné que A32...
Je saurais au moins pour une prochaine fois!
Encore merci à tous!
Pnlop
 

Créez un compte ou connectez vous pour répondre

Vous devez être membre afin de pouvoir répondre ici

Créer un compte

Créez un compte Excel Downloads. C'est simple!

Connexion

Vous avez déjà un compte? Connectez vous ici.

Haut Bas