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 :

Macro VBA remplacer une liste de mot par X [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 8
    Par défaut Macro VBA remplacer une liste de mot par X
    Bonjour à tous
    J'ai besoin de votre aide

    J'ai une liste de mots sur la feuille 1 : chien chat poule ours
    Une liste de mots sur la feuille 2 : chien chat (poule et ours sont donc absents)
    Et je souhaiterais que poule et ours soient remplacés par un x dans le feuille 1

    Pouvez-vous m'aider ?

    Je pense être clair !

    Merci d'avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    Il suffit de parcourir en boucle les cellules concernées de la Feuil1 et, pour chaque mot, appliquer WorksheetFunction.Countif (de ce mot, sur la feuille 2) ,. Si retourne 0, écrire "x"

  3. #3
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    Bonjour Sab,
    Est-ce que tu as un mot par cellule ou tous les mots sont-ils dans la même cellule?
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

  4. #4
    Nouveau membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juillet 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2016
    Messages : 8
    Par défaut
    Bonjour à vous et merci pour vos réponses

    unparia
    Je suis vraiment bleue pour ce genre de chose
    Peux-tu STP écrire un programme en entier.
    Merci d'avance

    Eric
    J'ai un mot par cellule


    et en plus je viens de voir que j'ai des espaces derrière les mots, y a t il moyen de dire que la cellule contient le mot et non qu'elle est égale ?
    Merci d'avance

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Peux-tu STP écrire un programme en entier.
    Désolé, mais pas moi (contraire à mes principes, mais également à ton intérêt).
    Je t'aiderai par contre assez volontiers à corriger au besoin le code que tu tenteras sur la base de ce que je t'ai indiqué.
    y a t il moyen de dire que la cellule contient le mot et non qu'elle est égale ?
    c'est ce que te permet de faire également WorksheetFunction.Countif, comme tu pourras le constater à la lecture de la rubrique "WorksheetFunction.CountIf, méthode" de ton aide VBA.

  6. #6
    Membre émérite
    Avatar de eric4459
    Homme Profil pro
    Ingénieur Gestion de Projets
    Inscrit en
    Avril 2014
    Messages
    605
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes de Haute Provence (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur Gestion de Projets
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2014
    Messages : 605
    Par défaut
    SAB1458
    Voici un exemple qui fonctionne, il y a surement mieux et/ou plus simple et je ne sais pas si il correspond exactement à ton besoin dans ce cas ,il pourra toujours t'inspirer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    Sub Enlever_Mots2()
    Dim Src As Worksheet
    Dim Dest As Worksheet
    Dim Cel1 As Range
    Dim Cel2 As Range
    Dim NbCol1 As Integer
    Dim NbCol2 As Integer
    Dim i As Integer
    Dim j As Integer
    Dim k As Integer
    Set Src = ThisWorkbook.Sheets("Sheet1")
    Set Dest = ThisWorkbook.Sheets("Sheet2")
    Set Cel1 = Src.Range("A1")
    Set Cel2 = Dest.Range("A1")
    i = 0
    j = 0
     
    With Src
    NbCol1 = .Cells(1, Columns.Count).End(xlToLeft).Column  'on compte le nbre de col de la feuille 1 ensupposant que les mots sont uniquement sur la ligne 1
    End With
     
    Do While (i < NbCol1) 'On boucle à partir des valeurs de cellules sur la feuille 2
        If InStr(Cel2.Offset(0, j).Value, Cel1.Offset(0, i).Value) Then 'si les cellules ont la même valeur
            Cel1.Offset(1, i) = "Ok" ' on mets Ok dans la cellule du dessous
            j = j + 1 ' Si ok alors on passe au mot de la feuille2 suivant
            i = 0 'ici on remets i à 0 pour repartir sur le premier mot de la feuille 1
        Else
         i = i + 1 'si pas identique on reste sur le mot de la feuille 2 et on passe au mot suivant de la feuille 1
        End If
    Loop
     
    For k = 0 To NbCol1 ' ici on va verifier si il y a "Ok" dans la deucieme ligne de la feuille 1
        If Cel1.Offset(1, k) = "Ok" Then
            Cel1.Offset(1, k) = "" 'Si on trouve "Ok" on effece la valeur "Ok"
        Else
            Cel1.Offset(0, k) = "x" 'Si on ne trouve pas "Ok" alors on met "x" à la place du mot
        End If
    Next k
    End Sub
    Eric
    "Vous n’avez cessé d’essayer ? Vous n’avez cessé d’échouer ? Aucune importance !
    Réessayez, échouez encore, échouez mieux." Samuel Beckett
    Pensez aux balises et
    Visitez les FAQ Excel et allez faire un tour ici
    Tutoriels de SilkyRoad

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

Discussions similaires

  1. [XL-2007] Code VBA remplacement automatique par une liste de mots
    Par summerfllore dans le forum Macros et VBA Excel
    Réponses: 31
    Dernier message: 23/06/2016, 08h19
  2. Recherche et remplacement d'une liste de mots en VBA
    Par jawa123 dans le forum VBA Word
    Réponses: 3
    Dernier message: 07/06/2016, 22h32
  3. Tri d'une liste de mots par ordre croissant de leur taille
    Par ConanGuy dans le forum Général Python
    Réponses: 3
    Dernier message: 20/12/2015, 22h34
  4. [RegExp] replacer une liste de mot par un seul
    Par lodan dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 10/06/2011, 08h34
  5. [Debutant]Remplacer une liste de valeur par une liste de val
    Par Sebbo dans le forum Collection et Stream
    Réponses: 3
    Dernier message: 31/03/2006, 12h15

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