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 :

Nettoyage des données dans la feuille excel avec vba


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Par défaut Nettoyage des données dans la feuille excel avec vba
    bonjour.

    je suis un débutant dans langage VB Excel et je demande s'il y a personne, peuvent m'aider dans mon petit souci.

    Maintenant, j'explique les problématiques :

    J'ai déjà importé un fichier txt vers une feuille excel. Or les données vient de txt possède des données comme <#Numero: 23> ; <Type ; 0,045>. ce que j'envi de faire est de parcourir tous les cellules de ma feuille excel avec un code vba et de supprimer tous les signes < # > et sortir de la boucle lorsqu'il n'y a plus des signes < # > dans toutes les cellules.

    Càd, j'importe les données de fichier txt vers ma feuille Excel spécifiée, ensuite on fait directement le nettoyage des données importés.

    Merci d'avance

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ActiveSheet.UsedRange.Replace("<", "")
    ActiveSheet.UsedRange.Replace(">", "")
    ActiveSheet.UsedRange.Replace("#", "")

  3. #3
    Membre éclairé Avatar de jawed
    Homme Profil pro
    Comptable
    Inscrit en
    Mars 2004
    Messages
    504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Algérie

    Informations professionnelles :
    Activité : Comptable
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2004
    Messages : 504
    Par défaut
    Bonjour
    sans VBA un CTRL+H peut faire l'affaire, tu remplace par RIEN
    Cordialement

  4. #4
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Par défaut
    Merci Menhir pour ce code. J'ai essayé mais ce code supprime tous les données dans le cellule possède de signe <, # et >. Or je ne veux pas supprimer tout le contenu
    , seul le signe.

    Par exemple :
    Avant le traitement colonne A1 possède <#NOTEIR : 45> et après le traitement A1 possède NOTEIR : 45
    Avant B1578 possède >< Type et après le traitement Type seulement

  5. #5
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Par défaut
    Citation Envoyé par randrianasolodullin Voir le message
    Merci Menhir pour ce code. J'ai essayé mais ce code supprime tous les données dans le cellule possède de signe <, # et >. Or je ne veux pas supprimer tout le contenu
    , seul le signe.

    Par exemple :
    Avant le traitement colonne A1 possède <#NOTEIR : 45> et après le traitement A1 possède NOTEIR : 45
    Avant B1578 possède >< Type et après le traitement Type seulement
    Il y a d'autre aussi dans d'autre cellule

  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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ActiveSheet.UsedRange.Replace("<", "")
    ActiveSheet.UsedRange.Replace(">", "")
    ActiveSheet.UsedRange.Replace("#", "")

  7. #7
    Membre Expert
    Profil pro
    Inscrit en
    Février 2007
    Messages
    2 266
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 2 266
    Par défaut
    Bonjour,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        Cells.Replace What:="<", Replacement:="", LookAt:=xlPart
        Cells.Replace What:=">", Replacement:="", LookAt:=xlPart
        Cells.Replace What:="#", Replacement:="", LookAt:=xlPart
    eric

  8. #8
    Membre actif
    Homme Profil pro
    Ingénieur
    Inscrit en
    Septembre 2017
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val d'Oise (Île de France)

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

    Informations forums :
    Inscription : Septembre 2017
    Messages : 132
    Par défaut
    Bonjour,

    Dans la méthode .Replace, si la partie de chaîne à remplacer n'est pas la totalité du contenu de la cellule il faut utiliser la valeur xlPart de l'argument LookAt. Si au contraire, il s'agit de tout son contenu c'est xlWhole qu'il faut utiliser. On peut noter que si l'argument What est lui-même tout le contenu d'une cellule l'argument LookAt ne changera rien. Tous les arguments de la méthode .Replace autres que What et Replacement sont facultatifs mais les écrire permet d'éviter les erreurs car par défaut les paramètres utilisés sont repris du dernier appel de la fonction rechercher/remplacer (ctrl+H).

    Documentation MSDN de la méthode Range.Replace

    La documentation MSDN est très complète. Elle est souvent suffisante à elle seule pour trouver les réponses. Je recommande donc de la consulter.

    Petite astuce : tout comme dans la fonction rechercher/remplacer, il est possible de rechercher des portions de code par l'usage de l'astérisque (*). Voici un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    ActiveSheet.Cells(Ligne, Colonne).Replace What:="#*", Replacement:=ChaineDeRemplacement, LookAt:=xlPart
    ' ici tout ce qu'il y a après # sera remplacé
    La méthode .Replace peut également être couplée aux méthodes .Left, .Right, .InStr... dont j'invite bien entendu à consulter la documentation MSDN.

  9. #9
    Membre du Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2015
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Madagascar

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Juin 2015
    Messages : 5
    Par défaut
    merci les amis pour votre précieuse aide. ça marche

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Ajout des données dans une feuille Excel ligne après ligne à partir d'une ListView.
    Par TSAFACK-M dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 05/05/2017, 18h02
  2. Gestion des données d'une feuille Excel avec du langage SQL
    Par rhoblik dans le forum Accès aux données
    Réponses: 3
    Dernier message: 28/02/2013, 20h34
  3. Ecrire des données dans deux feuilles excel
    Par gantec dans le forum Macros et VBA Excel
    Réponses: 24
    Dernier message: 28/02/2007, 08h28
  4. Réponses: 9
    Dernier message: 19/02/2007, 20h33

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