Masquer un partie de cellule

kochon77777 Messages postés 7 Statut Membre -  
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour à tous,

J'ai un tableau me permettant de planifier le jour et heures de départ selon un temps de trajet et une heure d'arrivée.
Exemple :
A1 > 15:28:12 ( temps de trajet )
B1 > 22/06/2011 10:00:00 (heure d'arrivée souhaitée)
C1 > =B1-A1 ( ce qui me donne 21/06/2011 18:31:48)

Cependant il m'arrive d'avoir un temps de trajet important ce qui me donne une heure de départ la veille de la date saisie ( comme ci dessus).
Et je souhaiterais que la date dans la cellule C1 soit masquée lorsqu'elle est identique à celle présente dans la cellule B1.

J'espère avoir été clair, merci d'avance pour votre aide

6 réponses

Vaucluse Messages postés 27336 Date d'inscription   Statut Contributeur Dernière intervention   6 447
 
Bonsoir

vous pouvez obtenir ça avec une mise en forme conditionnelle, c'est sans doute ce qu'il y a de plus simple.
Le chemin dépend de l'age de votre excel:
sélectionnez C1
excel avant 2007: format / mise en forme conditionnelle/ la formule est
excel 2007:
Ruban / Onglet accueil / Mise en forme conditionnelle / nouvelle régle/ La formule est:
entrez cette formule:
=ENT(B1)=ENT(B1-A1)
format:
nombre/personnalisé et dans la "fenêtre" type :
hh:mm:ss

qui vous affichera un format identique à B1 si le jour B1 est différent de celui en C1, et n'affichera que l'heure si le jour est le même.

crdlmnt

ps
ici, ce que ça devrait donner:
http://www.cijoint.fr/cjlink.php?file=cj201106/cijWVTx2Hw.xls

Demandons nous si nous ne sommes pas seuls à comprendre ce que l'on explique?
0
kochon77777 Messages postés 7 Statut Membre 1
 
la formule marche bien mais je ne retrouve pas les valeurs initiale lorsque je supprime ou modifie la valeur en A1 sinon ça fonctionne bien!! je suis sur Excel 2007

Et Merci pour ton aide
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour tout le monde,

Précise la version excel où ça sera utilisé : sur excel <= 2003 on ne peut changer un format d'affichage dans une MFC.
Une formule qui marche sur toutes les versions :
=SI(ENT(B1-A1)=ENT(B1);TEXTE(B1-A1;"hh:mm");B1-A1)
eric
0
Raymond PENTIER Messages postés 71862 Date d'inscription   Statut Contributeur Dernière intervention   17 396
 
Format de cellule/Nombre/Date/13:50:55
0
Raymond PENTIER Messages postés 71862 Date d'inscription   Statut Contributeur Dernière intervention   17 396
 
Alors ! As-tu au moins essayé le format du post #3 ?
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Salut raymond,

En fait il veut un format différent selon le résultat dans la cellule.
Ta proposition n'est pas suffisante.
eric
0
Raymond PENTIER Messages postés 71862 Date d'inscription   Statut Contributeur Dernière intervention   17 396
 
Ouais, en effet ; ce n'est pas ce que j'avais compris ...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kochon77777 Messages postés 7 Statut Membre 1
 
ta solution eriiic marche bien mais le nouveau soucis c'est que maintenant je ne peux plus trier mes lignes car les cellules contiennent des formule.
Je cherche donc à convertir en vba la formule suivante car je ne trouve pas d'autre solution sachant que je veux exécuter cette formule de la ligne 12 à la ligne 41 ou 12 à 15 cela dépend des cellule renseignées:
=SI(B12="";"";SI(ENT(B5-B12)=ENT(B5);TEXTE(B5-B12;"hh:mm:ss");B5-B12))
0
eriiic Messages postés 25847 Date d'inscription   Statut Contributeur Dernière intervention   7 282
 
Bonjour,

Tant qu'à passer au vba autant garder la formule simple et mettre le bon format.
Ne sachant comment tu utilises ta feuille (saisie ou importation) j'ai mis 2 macros évènementielles :
- 1 en cas de saisie de temps ou de date
- 1 sur activation de la feuille

Private Sub Worksheet_Activate()
    Dim c As Range
    For Each c In [C2:C41]
        formatDate (c)
    Next c
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, [A2:B9]) Is Nothing Then
        formatDate (Cells(Target.Row, 3))
    End If
End Sub

Sub formatDate(d1 As Range)
        If Int(d1) = Int(d1.Offset(0, -1)) Then
            d1.NumberFormat = "hh:mm"
        Else
            d1.NumberFormat = "dd/mm/yy hh:mm"
        End If
End Sub

avec .Offset(0, -1) je compare avec la cellule à gauche de la cellule à formater.
Corrige l'offset si besoin

http://www.cijoint.fr/cjlink.php?file=cj201106/cijANt29Rw.xls

eric
0