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 :

créer une macro " rechercher remplacer " [Toutes versions]


Sujet :

Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    artisan
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : artisan

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Points : 2
    Points
    2
    Par défaut créer une macro " rechercher remplacer "
    salut le forum ,
    je viens vers vous pour trouver une solution à mon problème ...
    j'ai une macro que j'ai réalisé via l'enregistreur de macro seul problème cette macro ne prend pas en compte que chaque cellule contient une info différente de la précédente et que j'ai pas loin de 6604 cellules d'une même colonne ....donc quand je lance ma macro non modifié celle-ci reprend la première cellule et recommence ... dans un premier temps je voudrai savoir si il est possible de faire que la macro puisse s’exécuter sur toute les cellules de cette colonne ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     Sub Macro3()
    '
    ' Macro3 Macro
    ' Macro enregistrée le 30/06/2015 par CHRISTAN
    '
     
    '
        Range("AJ1").Select
        Selection.Copy
        Application.ReplaceFormat.Interior.ColorIndex = 40
        Cells.Replace What:="01,02,06", Replacement:="", LookAt:=xlPart, _
            SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
            ReplaceFormat:=True
    End Sub

  2. #2
    Membre émérite
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Novembre 2011
    Messages
    1 503
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Irlande

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Novembre 2011
    Messages : 1 503
    Points : 2 657
    Points
    2 657
    Par défaut
    Bonjour christiandu10,

    D'après ce que je comprends, tu changes la couleur de la cellule ainsi que la valeur "01,02,06" par "rien".
    Pourquoi ne sélectionnes-tu pas la colonne entière et effectue cette action manuellement, une fois, pour toutes les cellules ?

    Cordialement,
    Kimy
    La logique :
    • Plus ya de gruyère, moins ya de gruyère.
    • Plus tu pédales moins vite, moins tu avances plus vite.
    Plusoyer les réponses pertinentes et n'oublier pas de résolver en fin de post !

  3. #3
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Je ne comprends pas le "Copy" de ton code.
    A part ça, cette macro devrait faire ce que tu souhaites.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Sub Macro3()
       Dim Lig as Long
     
       For Lig = 1 to Range("AJ" & Rows.Count).End(xlUp).Row
     
          Range("AJ" & Lig).Copy
          Range("AJ" & Lig).Interior.ColorIndex = 40
          Range("AJ" & Lig).Value = Replace(Range("AJ" & Lig).Value,"01,02,06","")
       Next Lig
     
    End Sub
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Candidat au Club
    Homme Profil pro
    artisan
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : artisan

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Points : 2
    Points
    2
    Par défaut
    bonjour kimy_Ire

    une fois la macro lancé elle va me changer la couleur de ma cellule (rechercher) mais aussi celles de mon tableau (données) ce qui me permet de voir en un coup d’œil celles qui ne changent pas et de tirer ma conclusion.

  5. #5
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par christiandu10 Voir le message
    mais aussi celles de mon tableau (données) ce qui me permet de voir en un coup d’œil celles qui ne changent pas et de tirer ma conclusion.
    Quelle est la condition pour changer la couleur ou non ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  6. #6
    Candidat au Club
    Homme Profil pro
    artisan
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : artisan

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Points : 2
    Points
    2
    Par défaut
    je viens de tester ton code celui-ci ne marche pas ...

    pour être plus claire : j'ai un tableau qui part de la colonne 1 jusqu'à la colonne 33 et un peu plus loin j'ai une colonne qui va de la ligne 1 à la ligne 6604 ( les cellules à rechercher et remplacer ) puis quand la recherche et terminé je regarde mon tableau et je peux voir les cellule concernées par mes cellules (rechercher)car dans mon tableau elles apparaissent en orange.

  7. #7
    Candidat au Club
    Homme Profil pro
    artisan
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : artisan

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Points : 2
    Points
    2
    Par défaut
    Salut Menhir

    désolé je croyais Kimy_Ire

    ton code fait seulement le coloriage de mes cellules à rechercher il me semble qu'il manque juste le code "recherche"

    merci pour ton aide

  8. #8
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par christiandu10 Voir le message
    je viens de tester ton code celui-ci ne marche pas ...
    Euh... c'est un peu succinct comme description d'incident...

    Il y a de nombreuses choses que je ne comprends pas dans ce que tu écris :
    un peu plus loin j'ai une colonne qui va de la ligne 1 à la ligne 6604
    "un peu plus loin", c'est difficile à retranscrire en code VBA.

    un peu plus loin j'ai une colonne qui va de la ligne 1 à la ligne 6604 ( les cellules à rechercher et remplacer )
    Est-ce que tu veux dire que ce sont les valeurs contenues dans cette colonnes qui sont à rechercher dans ton tableau ?
    Si ce n'est pas le cas, peux-tu être plus précis ; que recherches-tu et où le recherches-tu ?

    et remplacer )
    Remplacer par quoi ?

    Une chose est sûre, ce que tu décris là ne correspond en rien au code que tu as donné au début.


    Citation Envoyé par christiandu10 Voir le message
    ton code fait seulement le coloriage de mes cellules à rechercher il me semble qu'il manque juste le code "recherche"
    Mon code correspond à ta question de départ.
    Mais, visiblement, ça ne correspond absolument pas à ton besoin.

    Il va donc falloir que tu le décrives plus clairement et avec plus de détails.
    On ne peut pas inventer ce que tu ne dis pas.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  9. #9
    Candidat au Club
    Homme Profil pro
    artisan
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : artisan

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Points : 2
    Points
    2
    Par défaut
    en faite j'ai un tableau excel qui part de la colonne 1 à la colonne 33 ma base de données puis "plus loin" la colonne 36 de la ligne 1 à la ligne 6604 la recherche à faire sur mon tableau .
    Une fois la recherche des mes cellules je devrai voir dans mon tableau les cellules concernées en orange .
    exactement comme je fais "manuellement" avec fonction rechercher/remplacer il me trouve les cellules qui correspondantes avec celles de mon tableau sauf que pour des raisons évidente de "temps" il me faudrait 4000 ans lol

  10. #10
    Candidat au Club
    Homme Profil pro
    artisan
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : artisan

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Points : 2
    Points
    2
    Par défaut
    d'ou l'idée de faire ça en macro

    encore merci pour votre patience ...

  11. #11
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Quel est le nombre de lignes de ton tableau ?
    Est-ce qu'il contient des cases vides ?
    Est-ce qu'une valeur de ta colonne peut se trouver plusieurs fois dans ton tableau ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  12. #12
    Candidat au Club
    Homme Profil pro
    artisan
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : artisan

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Points : 2
    Points
    2
    Par défaut
    chaque colonne de mon tableau comporte des milliers de ligne
    oui il y a des cellules vide et oui mes recherches peuvent apparaître plusieurs fois dans mon tableau
    j'ai trouvé des code similaire pour le texte mais la encore ça coince il stoppe à la première recherche
    sinon manuellement ça marche très bien mais je vais perdre mes yeux lol.

  13. #13
    Candidat au Club
    Homme Profil pro
    artisan
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : artisan

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Points : 2
    Points
    2
    Par défaut
    pour te répondre le code que j'ai posté c'est celui d'excel lui même lol avec l'enregistreur de macro il fonctionne mais seulement sur la cellule 1 de ma colonne de recherche ... normal puisqu'il affiche ce que contient ma cellule alors qu'elles sont toutes différentes. d'ou le blocage des que je change de cellule il faudrait que je modifie le contenu de la cellule suivante et ainsi de suite .

  14. #14
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Je n'ai pas testé mais ceci devrait faire ce que tu souhaites.

    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
    Sub test()
     
    Dim RgSeek As Range
    Dim Trouve As Range
     
    For Each RgSeek In Range(Cells(1, 36), Cells(Row.Count, 36).End(xlUp))
     
       Set Trouve = UsedRange.Find(What:=RgSeek.Value, LookIn:=xlValues, LookAt:=xlWhole)
       While Trouve <> "Nothing"
          Trouve.Interior.ColorIndex = 40
          Set Trouve = UsedRange.FindNext
       Wend
     
    Next RgSeek
     
    End Sub
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  15. #15
    Candidat au Club
    Homme Profil pro
    artisan
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : artisan

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Points : 2
    Points
    2
    Par défaut
    je viens rendre compte ... il m'affiche au démarrage de la macro erreur "424 objet requis " ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ce code s'affiche en jaune 
    For Each RgSeek In Range(Cells(1, 36), Cells(Row.Count, 36).End(xlUp))

  16. #16
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Essaye ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For Each RgSeek In Range(Cells(1, 36), Cells(Row.Count, 36).End(xlUp)) .cells
    Cela dit, il va falloir que toi aussi tu fasses un petit effort.
    Comme je n'ai pas l'intention de me fabriquer un fichier de 6000 lignes et 36 colonnes dans l'espoir qu'il ressemble à ta feuille (dont je ne sais pas, d'ailleurs à quoi elle ressemble vu le peu d'info que tu as daigné transmettre), je ne pourrais pas débuger le code.
    Je n'ai pas non plus l'intention de corriger chaque bug en aveugle.

    Donc, maintenant que tu as le principe générale, il va falloir que tu fasse les quelques % restant pour obtenir ce que tu souhaites.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  17. #17
    Candidat au Club
    Homme Profil pro
    artisan
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : artisan

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Points : 2
    Points
    2
    Par défaut
    très bien Mehnir
    en tout cas je tiens à te remercier pour ta patience et ton savoir ... j'ai déjà bien avancé par rapport à ce matin lol
    je te tiendrai au jus sur l'avancement
    merci encore excellent forum !

  18. #18
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 904
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 904
    Points : 10 168
    Points
    10 168
    Billets dans le blog
    36
    Par défaut
    Bonjour,

    Je ne voudrais pas détruire votre enthousiasme , mais, tout grand amateur de macros que je puisse être, je pense qu'une macro est inutile. On peut faire des recherches et des remplacements qui tiennent compte des mises en formes; et même de remplacer un format par un autre.

    Je ne vois absolument pas le rapport avec les valeurs différentes et les 6000 lignes ou les 6000 cellules. À moins que les formats diffèrent d'une valeur à l'autre ou d'une cellule à l'autre, il suffit de ne chercher aucune valeur et de chercher uniquement le format.

    Sinon, j'ai joyeusement raté une coche et il va falloir m'expliquer...
    À ma connaissance, le seul personnage qui a été diagnostiqué comme étant allergique au mot effort. c'est Gaston Lagaffe.

    Ô Saint Excel, Grand Dieu de l'Inutile.

    Excel n'a jamais été, n'est pas et ne sera jamais un SGBD, c'est pour cela que Excel s'appelle Excel et ne s'appelle pas Access junior.

  19. #19
    Candidat au Club
    Homme Profil pro
    artisan
    Inscrit en
    Juin 2015
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : artisan

    Informations forums :
    Inscription : Juin 2015
    Messages : 15
    Points : 2
    Points
    2
    Par défaut
    Bonjour clément
    Très simple pourtant je veux faire un tri sur ma base de données j'ai copier plusieurs fois la macro d'excel réalisé avec l'enregistrement macro et ça marche très bien ...étant novice sur la macro je pensais vraiment pas que ça puisse être si compliqué à faire ...
    Question "bête" : il n'est pas possible de prendre la macro d'origine et de lui demander ... Gentiment lol de s'exécuter de la ligne AJ1 à AJ 6604 de la plus simple des manières ?

  20. #20
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par christiandu10 Voir le message
    étant novice sur la macro je pensais vraiment pas que ça puisse être si compliqué à faire ...
    C'est sans doute assez simple à faire.
    Le problème, c'est que tu n'expliques pas correctement ton problème pour qu'on puisse comprendre ce que tu souhaites faire réellement.

    Question "bête" : il n'est pas possible de prendre la macro d'origine et de lui demander ... Gentiment lol de s'exécuter de la ligne AJ1 à AJ 6604 de la plus simple des manières ?
    C'est ce que j'ai essayé de faire dans la première macro que je t'ai proposé mais, à priori, ça ne convient pas.

    En plus, il est difficile de comprendre ce que tu veux faire dans cette macro. Par exemple, tu fais un "copy" mais tu ne colle le résultat nulle part, ce qui fait qu'il semble n'avoir aucune raison d'être là.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [WD-2010] Créer une macro pour remplacer caractères accentués en code HTML
    Par spip93 dans le forum VBA Word
    Réponses: 2
    Dernier message: 29/10/2014, 16h25
  2. Créer une macro archivage
    Par Anaelody dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/07/2007, 16h14
  3. Créer une fonction de recherche multi début de mot
    Par Pakkaï dans le forum Général JavaScript
    Réponses: 29
    Dernier message: 29/03/2007, 17h16
  4. Réponses: 8
    Dernier message: 09/01/2007, 16h30

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