IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Mettre en format rouge (sup) ou bleu (ajout) la différence de chaine de caractères entre 2 cellules


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Homme Profil pro
    Auditeur
    Inscrit en
    Avril 2018
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Auditeur
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2018
    Messages : 1
    Par défaut Mettre en format rouge (sup) ou bleu (ajout) la différence de chaine de caractères entre 2 cellules



    Bonjour,
    Je souhaiterai savoir s'il existe une possibilité de comparer 2 chaines de caractères et de préciser les différences en rouge (suppression) ou en bleu (ajout) dans une troisième cellule.

    Par exemple :
    cel 1 => Je suis en forme aujourd'hui.
    Cel2 => Je suis très en joie aujourd'hui
    Cel 3 => Je suis très en joie forme aujourd'hui.

    J'ai essayé de bidouiller ce code super simple et bien pensé de Jacques, mais je suis perdu, car il faut y ajouter un format et une boucle pour les différences.
    De plus je ne suis pas certain qu'un format fonctionne dans une fonction, il faudrait alors passer sur une macro à lancer : voici le code ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Function Communs(cel1 As Range, cel2 As Range)
     Set d1 = CreateObject("Scripting.Dictionary")
     a = Split(cel1, " ")
     b = Split(cel2, " ")
     For Each c In a
       d1(c) = ""
     Next c
     Set d2 = CreateObject("Scripting.Dictionary")
      For Each c In b
        If c <> "" And d1.Exists(c) Then d2(c) = ""
      Next c
    Merci de votre aide

  2. #2
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 241
    Par défaut
    Bonjour,
    Une première approche

    Je n'ai pas traité le cas ou il y aurait plusieurs fois le même mot dans la même phrase. A voir si vous y tenez particulièrement.
    Cdlt

Discussions similaires

  1. ajouter des espaces à une chaine de caractères
    Par tricette dans le forum Shell et commandes POSIX
    Réponses: 8
    Dernier message: 28/09/2012, 13h09
  2. mettre le format d une feuille ou celle a standard
    Par ERICKO dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/01/2008, 15h15
  3. Réponses: 1
    Dernier message: 25/09/2007, 13h58
  4. Mettre au format d'impression
    Par kitiss dans le forum Langage
    Réponses: 2
    Dernier message: 27/02/2007, 09h58
  5. Réponses: 7
    Dernier message: 26/05/2006, 19h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo