Replace

Bonjour à tous,

J'ai vu dans un projet ce bout de code :"'" & Replace(UCase(Format(date_test, "ddd dd")), ".", "").

A quoi sert "Replace"?

Le "'" avant je pense que c'est pour donner un format texte. Mais je dois l'enlever pourquoi dans certaine cellules il me donne une date.

Merci d'avance de votre aide

Amicalement

Noel

Bonjour,

En prenant pour exemple la date du mardi 24/02/2015 (date_test).

Format(date_test, "ddd dd") permet d'obtenir la date sous la forme mar. 24

UCase(Format(date_test, "ddd dd")), ".", "") permet d'obtenir la date sous la forme MAR. 24

Replace(UCase(Format(date_test, "ddd dd")), ".", "") permet de supprimer le point.

On obtient alors MAR 24

Mais si tu inscrit MAR 24 dans une cellule au format standard, cette valeur est interprétée comme la date du 24 mars 2015.

Pour indiquer à Excel qu'il doit interpréter cette forme comme du texte, tu peux soit ajouter l'apostrophe en début , soit affecter un format texte à la cellule.

Tu peux faire ce test pour visualiser les différents cas :

Sub Test()
Dim date_test As Date
        date_test = DateValue("24/02/2015")
        'La valeur est interprétée comme la date du 24 mars 2015.
        Range("A1") = Replace(UCase(Format(date_test, "ddd dd")), ".", "")
        'L'apostrophe permet d'interpréter la valeur comme un texte.
        Range("B1") = "'" & Replace(UCase(Format(date_test, "ddd dd")), ".", "")
        'On affecte le format texte a la cellule
        Range("C1").NumberFormat = "@"
        Range("C1") = Replace(UCase(Format(date_test, "ddd dd")), ".", "")
End Sub

A+

Bonjour frangy,

J'ai bien compris. Je vais faire un essai.

Mais par contre pour que la cellule prend un valeur date sur une plage de cellules et que je voudrai avec MFC que la date du jour apparaît en surbrillance il faut que je sélectionne la plage de cellules en MFC =aujourdhui() et je chois le format des polices et du fond.

C'est bien ça.

Il faut que je supprime l'apostrophe au début.

Pourras-tu me confirmer ceci.

@+

Amicalement

Noel

Bonjour,

Le code VBA que tu utilises permet de modifier une date en texte avec une présentation très personnalisée.

En clair, il ne s’agit plus d’une date.

Il est évident que la MFC ne pourra pas fonctionner si tu compares ce texte avec le résultat de la fonction AUJOURDHUI() qui est une date.

A+

Ré’

Alors que faut il faire pour que ceci se transforme en c date pour pouvoir le faire?

Amicalement

Noel

Proverbe ZEN "Une image vaut dix mille mots"

Proverbe ZEN-bis "mais un fichier joint vaut encore dix fois plus"

Un exemple permettrait de comprendre ce que contient ta feuille.

A partir de là, on pourra concevoir la MFC.

A+

demain je t’enverrai le fichier

@+

Noël

Bonjour à tous,

Bonjour Frangy,

Chose promise chose due. Voici le fichier.

Je voudrai que cet agenda soit transformer en date et que j'arrive à partir de MFC de surligner Aujourdhui().

Merci d'avance

Amicalement

Noel


Re,

Excuse moi j'ai oublié le fichier

27testagenda.zip (60.04 Ko)

Bonjour,

Plutôt que chercher à modifier la présentation actuelle, il serait peut-être plus rationnel que tu adaptes le code pour obtenir la présentation souhaitée avec un format date.

Ton classeur ayant été modifié, je ne saurais en dire d'avantage. Le programme fait appel à des feuilles qui n'existent pas.

A+

Re,

Merci.

Je vais essayer de suivre ton conseil.

@+

Noel

Rechercher des sujets similaires à "replace"