Fonction pour qu'une cellule se barre automatiquement

marine

XLDnaute Nouveau
Bonjour tout le monde !!!!!

voila mon problème : je souhaite trouver une fonction Excel :

SI A1 est vide alors il faut que la cellule se barre

c'est possible ??

merci beaucoup de votre aide
 

DoubleZero

XLDnaute Barbatruc
Re : Fonction pour qu'une cellule se barre automatiquement

Bonjour, marine, le Forum,

Comme ceci, peut-être ?

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If [a1] = "" Then [a1].Borders(xlDiagonalUp).LineStyle = xlContinuous
If [a1] <> "" Then [a1].Borders(xlDiagonalUp).LineStyle = xlNone
End Sub

A bientôt :)
 

marine

XLDnaute Nouveau
Re : Fonction pour qu'une cellule se barre automatiquement

merci beaucoup

mais il n'existe pas de fonction plus simple, comme une fonction conditionnelle (SI(estvide(A1;"?";"ok")
je m'y connais pas vraiment en code visual basic....) :(
 

R@chid

XLDnaute Barbatruc
Re : Fonction pour qu'une cellule se barre automatiquement

Salut @ tous,
comme il a dit notre ami DoubleZero :
J'espère ne pas dire d'ânerie

tu as dit :
une fonction conditionnelle n'est pas forcément une mise en forme conditionnelle
on ne peut pas mettre une formule conditionnelle pour la meme cellule comme en A1 : =SI(A1="";?;"OK"), probleme de reference circulaire.
Amicalement
 

chris

XLDnaute Barbatruc
Re : Fonction pour qu'une cellule se barre automatiquement

Bonjour
Coucou DoubleZero

Tout fout le camp...

Une formule conditionnelle ne peut donner qu'un ou plusieurs caractères et je n'ai rien trouvé qui conviendrait.
Une mise en forme conditionnelle correspondrait mieux mais pas de barre oblique.

Parfois il faut combiner les deux.

On peut utiliser des images : un classeur ci-joint sans doute récupéré ici.
 

Pièces jointes

  • Indicateurs.xls
    16.5 KB · Affichages: 140
  • Indicateurs.xls
    16.5 KB · Affichages: 147
  • Indicateurs.xls
    16.5 KB · Affichages: 133

CISCO

XLDnaute Barbatruc
Re : Fonction pour qu'une cellule se barre automatiquement

Bonsoir

On peut peut être faire à l'envers : Mettre des diagonales dans toutes les cellules d'une plage donnée, et mettre une macro qui enlève les diagonales des cellules dans lesquelles on écrit quelque chose.

@ plus
 

R@chid

XLDnaute Barbatruc
Re : Fonction pour qu'une cellule se barre automatiquement

Salut @ tous,
Salut Chris, c'est notre jour de se croiser sur le forum.
@ marine : Voir PJ
Amicalement
 

Pièces jointes

  • MfcCellulesVides.xlsx
    7.7 KB · Affichages: 196

chris

XLDnaute Barbatruc
Re : Fonction pour qu'une cellule se barre automatiquement

Bonjour

Cisco : bon dieu mais c'est bien sûr ! Avec les SI il faut toujours penser à inverser ;).
J'utilisais ça parfois sur les TCD.

Rachid : j'aime bien aussi ta solution. Cela donne un petit côté moucharabieh assez esthétique :cool:.
 

marine

XLDnaute Nouveau
Re : Fonction pour qu'une cellule se barre automatiquement

Re bonsoir tout le monde !
merci pour toutes ces réponses malheureusement il s'agit d'une des instructions que je dois respecter pour la mise en page d'un document (le fait que les cellules sa barrent selon certains cas) il s'agit du respect de la charte graphique de mon entreprise.
je pensais à une fonction (copier coller) ... si la cellule A1 est vide alors reprendre la mise en forme (barré) d'une cellule modèle (par exemple E1)

mais si cela ne peut pas se faire automatiquement alors les membres de l'administration feront eux-mêmes la mise en page manuellement

merci à vous tous :)
 

ROGER2327

XLDnaute Barbatruc
Re : Fonction pour qu'une cellule se barre automatiquement

Bonsoir à tous


Si on ne veut pas écrire de code dans le classeur à traiter, je ne vois pas de solution, comme vous l'avez tous remarqué.

Un pis-aller est peut-être envisageable si on peut utiliser un classeur de procédures personnelles.
On traite le fichier de travail sans s'occuper des cellules à barrer. Lorsqu'on a fini le traitement, on sélectionne la plage dans laquelle les cellules vides (ou non vides contenant un chaîne de caractères de longueur nulle) doivent être barrées. Cette plage peut être constituée d'une ou de plusieurs zones.
On exécute la procédure barre qu'on aura préalablement installée dans un classeur de procédures personnelles.
Ainsi, en une passe, une feuille est traitée sans qu'on ait besoin de sélectionner individuellement les cellules vides, puis de leur appliquer une mise en forme.
Ce n'est pas complètement automatisé, mais c'est peut-être mieux que rien...

Suggestion de procédure :
VB:
Sub barre()
Dim oCel As Range, LigStyle()
    LigStyle = Array(xlNone, xlContinuous)
    If Not Selection Is Nothing Then
        Application.ScreenUpdating = False
        For Each oCel In Selection.Cells
            oCel.Borders(xlDiagonalDown).LineStyle = LigStyle(-(IsEmpty(oCel) Or oCel.Value = ""))
        Next
        Application.ScreenUpdating = True
    End If
End Sub


Faute de merle, on mange des grives...


ROGER2327
#5722


Dimanche 8 Clinamen 139 (La Machine à Peindre - fête Suprême Seconde)
10 Germinal An CCXX, 9,4412h - couvoir
2012-W13-5T22:39:32Z
 
Dernière édition:

MJ13

XLDnaute Barbatruc
Re : Fonction pour qu'une cellule se barre automatiquement

Bonjour à tous

Pas trop compris l'histoire de diagonale (c'est peut être comme cela que j'ai lu :eek:).

Un test avec une MEFC.
 

Pièces jointes

  • MEFC_Si_A1_Vide.xlsm
    56.5 KB · Affichages: 155

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz