Fonction Condition Texte

tortueone

XLDnaute Nouveau
Bonjour,

De nouveau parmi vous pour vous demander une fonction qui me parait simple, mais que je ne trouve pas parmi le forum...:(

Voilà, je voudrais une fonction qui me permet de savoir quand une ligne à été modifié.
Par exemple : Si D6, E6, F6, G6 contiennent du texte (date+ nombre+ texte), alors I6 indique "modif" ou "oui" ou encore une croix dans cette cellule.

C'est assez simple, non?;)

Merci d'avance pour vos réponses,
Tortue
 

job75

XLDnaute Barbatruc
Re : Fonction Condition Texte

Bonjour tortueone, salut alex,

Pas sûr d'avoir bien compris, mais voici une macro à placer dans le code de la feuille (clic droit sur l'onglet et Visualiser le code).

"modif" s'inscrit en colonne I si une cellule (non vide) des colonnes D à G est modifiée.

Dites nous si cela vous convient.

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, [D:G]) Is Nothing Or Target.Count > 1 Then Exit Sub
Dim Cel As Range, ref$
Application.EnableEvents = False
Set Cel = ActiveCell
Application.Undo
ref = ActiveCell.Formula
Application.Undo
If ref <> "" And Target.Formula <> ref Then Range("I" & Target.Row) = "modif"
Cel.Select
Application.EnableEvents = True
End Sub

A+
 

Tibo

XLDnaute Barbatruc
Re : Fonction Condition Texte

Bonsoir,

Concernant la formule de alex67800, le contrôle devant se faire sur une plage de cellules, cela nécessite un recours à une formule matricielle. On peut passer par l'utilisation de SOMMEPROD (validation simple) :

Code:
=SI(SOMMEPROD((ESTTEXTE(D6:G6))*1);"modif";"")

retournera "modif" si une des cellules contient du texte.

@+
 

tortueone

XLDnaute Nouveau
Re : Fonction Condition Texte

Bon ben après quelques ajustements techniques (j'ai une version anglaise de de la syntaxe d'excel... :eek:), je suis arrivée à faire fonctionner cette formule.
Mais.... ça me convient pas en fait...:eek:

En fait, ce n'est pas moi qui vais remplir le tableau mais des collègues, moi, je serais chargée de synthétiser sur une autre feuille les avancées du projet.
Comme il y a beaucoup de lignes dans chacune des feuilles, j'ai besoin de savoir quelle ligne a été modifiée par un collègue.
Je vous envoie un extrait de mon fichier pour que vous puissiez mieux comprendre.
Donc si modif de D6 à G6, indiquer quelque chose dans I6 pour que je sois au courant du changement.

Je ne sais pas si c'est réalisable, merci de votre aide précieuse !
Tortue
 

Pièces jointes

  • Test1.zip
    16.3 KB · Affichages: 21
  • Test1.zip
    16.3 KB · Affichages: 22
  • Test1.zip
    16.3 KB · Affichages: 22

tortueone

XLDnaute Nouveau
Re : Fonction Condition Texte

Si, si, j'ai essayé la macro!!!! Mais elle marche pô....:(
Pis, comment je fais une fois que du texte à été rentré et que "modif" s'est mis en I6, et que mon collègue change le même texte 2 jours après???
Y aura toujours "modif" d'inscrit mais je ne saurais pas que la la date a changé, par exemple...
Enfin, encore un gros dilemme pour une tortue, quoi!

Merci
 

job75

XLDnaute Barbatruc
Re : Fonction Condition Texte

Re,

La macro marche si on la met bien dans le code de la feuille :).

Elle ne fait rien quand la cellule est vide au départ (sinon il y aurait des "modifs" pour toutes les lignes).

S'il y a des modifs successives on ne peut évidemment pas le savoir, puisqu'il n'y a qu'une information, toujours la même, inscrite en colonne I... Sauf si vous effacez vous-même "modif" après l'avoir vu...

A+
 

tortueone

XLDnaute Nouveau
Re : Fonction Condition Texte

Bon tout d'abord, mes plates zexcuses, c'est vrai j'avais pas mis la macro dans bonne feuille....:eek: chui désolée...

Sinon, pour l'idée d'effacer à chaque fois que j'ai pris en compte la modif, pourquoi pas, mais ça fait du boulot....
Y a vraiment pas un moyen d'automatiser tout ça?

Tant pis, merci pour l'idée et encore zexcuses...;)
Tortue
 

job75

XLDnaute Barbatruc
Re : Fonction Condition Texte

Re,

Au lieu d'écrire bêtement "modif" en colonne I, pourquoi ne pas indiquer le nombre de modifs ou la date de la dernière modif en remplaçant dans la macro = "modif" par :

Code:
= Range("I" & Target.Row) + 1
ou

Code:
= Now

A+
 

Discussions similaires

Réponses
0
Affichages
420