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

Excel Discussion :

Suppression Format RTF dans une cellule


Sujet :

Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 8
    Par défaut Suppression Format RTF dans une cellule
    Bonjour,

    Je travaille actuellement sur un tableau Excel alimenté par une requête SQL. L'un de mes champs me renvoie les informations sous la forme d'un texte mais avec les balises RTF :

    {\rtf1\ansi\ansicpg1252\deff0\deflang1036{\fonttbl{\f0\fnil\fcharset0 MS Shell Dlg;}}
    {\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\f0\fs17 [Texte à récupérer] \par
    }
    Y a t'il un moyen simple et efficace pour supprimer ce format RTF et ne récupérer que le texte, et ainsi le remplacer directement dans la cellule d'origine (Avec un peu de VBA, lié à un bouton pourquoi pas) ?

    J'ai recherché plusieurs heures sur ce forum et sur d'autres sans trouver de réponses à ma question. Généralement les sujets traitent de conversion de fichiers et non de cellules, ou bien de passer par des fichiers Word

    Merci d'avance pour votre aide.
    Cordialement,

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Je pense qu'il y a deux solutions pour ton problème.

    La première est de passer par Ruban Données > Convertir.
    Ca permet de faire au niveau cellule la même chose que fait Excel l'ouverture dun fichier texte avec séparateurs.

    La seconde est de passer par les fonctions de texte, avec une combinaison des fonctions CHERCHE (pour repérer les séparateurs) et STXT.

    Il reste une troisième solution plus performante mais plus longue et compliquée à mettre en place : créer une fonction spécifique en VBA.
    Une fonction dans laquelle tu mets comme paramètre la chaîne à scruter, le caractère séparateur et le numéro du champ à extraire.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 8
    Par défaut
    Merci Menhir pour la réponse.

    Pour ta première solution qui est de passer par l'option "Convertir", j'ai déjà essayé mais cela n'est pas suffisant pour enlever le format RTF qui varie selon les lignes.

    En ce qui concerne les fonctions de texte d'EXCEL, je n'ai pas regardé dans cette direction, je vais y jeter un œil. Mais comme l'option "Convertir", je crains que ces fonctions ne soient pas suffisantes pour faire le tri dans les balises RTF, surtout que les caractères spéciaux ('é', '°', etc...), ont eux aussi leur propre code RTF, ce qui complique la tâche.

    Je pense effectivement que la meilleure solution reste de coder une fonction qui va parser mon texte RTF en un texte épuré.
    Mais comme tu l'as dit, c'est ce qu'il y a de plus long et compliqué, et ne connaissant pas la norme RTF (et VBA depuis seulement quelques semaines), j'ai préféré me tourner vers des personnes plus compétentes avant de me lancer dans une telle tâche.

  4. #4
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Loïc F. Voir le message
    le format RTF qui varie selon les lignes.
    Si tu donnais toutes les informations nécessaire au départ, ça pourrait éviter de perdre inutilement son temps.

    Indique plus précisément à quoi ressemble les données que tu veux traiter. Y a-t-il des délimiteurs ? Comment repères-tu le texte à extraire ? Etc.

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2014
    Messages : 8
    Par défaut
    Désolé, je pensais avoir dit (implicitement) que le format variait selon les lignes, c'est ma faute.

    Donc, dans mon tableau, j'ai une colonne "Description" avec pour chaque ligne un texte RTF qui peut être différent comme le montre les deux exemples suivant.

    Le premier exemple est une balise vide, une fois le format RTF supprimé, on est censé lire une chaîne vide.

    {\rtf1\ansi\ansicpg1252\deff0\deflang1036{\fonttbl{\f0\fnil\fcharset0 MS Shell Dlg;}}

    {\*\generator Msftedit 5.41.15.1515;}\viewkind4\uc1\pard\f0\fs17\par

    }
    Le second exemple est censé lui me retourner un texte

    {\rtf1\ansi\ansicpg1252\deff0\deflang1036{\fonttbl{\f0\fnil\fcharset0 MS Shell Dlg;}}

    {\colortbl ;\red255\green0\blue0;}

    {\*\generator Msftedit 5.41.21.2510;}\viewkind4\uc1\pard\f0\fs17\par

    \cf1\b\i V\'e9rifier l'etat de l'article.\par

    \par

    \cf1 ATTENTION : Controle a effectuer.\par

    \cf0\par

    }
    Le même exemple avec le RTF de retiré (ce que je veux) :

    Vérifier l'etat de l'article.

    ATTENTION : Contrôle a effectuer.
    Les délimiteurs, je ne les connais pas vu que je ne connais pas le format RTF. Comme on peut le voir, il y a les caactéristiques RTF du texte au début, mais il ne faut pas s'y fier pour le parser vu qu'elles ne sont pas les mêmes suivants les résultats.

    J'espère avoir répondu à tes questions. Si tu en as d'autres car tu ne comprends pas certaines choses, n'hésites pas.

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Est-ce qu'on peut considérer que le texte à récupérer sera forcément dans une cellule dont le contenu commence par "\cf1" et que toutes les lignes commençant par ça ont du texte à récupérer ?

    Est-ce qu'on peut considérer que, dans ces cas, le texte à récupérer est ce qui se trouve avant "\par" jusqu'au "\" précédant ?

    Quand je parlais de délimiteurs, je faisais référence, par exemple, aux caractères "\".

    Petite question subsidiaire : As-tu essayé d'ouvrir ton fichier dans Word et de le copier le contenu dans Excel ?

Discussions similaires

  1. Controle du format date dans une cellule
    Par majothi dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 20/02/2013, 18h04
  2. [POI] Ajouter une donnée au format heure dans une cellule
    Par mouss4rs dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 26/02/2012, 12h59
  3. [XL-2007] Recopier la couleur d'un format conditionnel dans une cellule vide
    Par mich2p1 dans le forum Excel
    Réponses: 6
    Dernier message: 31/08/2011, 14h15
  4. Insérer une donnée RTF dans une cellule de tableau
    Par HomoErectus dans le forum VBA Word
    Réponses: 6
    Dernier message: 14/08/2009, 14h00
  5. [XL-2002] Suppression de caractères dans une cellule en conservant la mise en forme
    Par stef_PBR dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 15/06/2009, 18h25

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