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 :

Remplacement Contenu cellules en fonction d'une liste


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Septembre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Septembre 2017
    Messages : 5
    Points : 2
    Points
    2
    Par défaut Remplacement Contenu cellules en fonction d'une liste
    Bonjour à tous,

    Je suis nouveau dans le monde de VBA et suis à la recherche d'une macro qui me semblait simple, mais qui s'avère assez compliquée, au vu de mon faible niveau :
    Dans un fichier Excel, j'ai deux feuilles (Sheet1 et Sheet2 pour simplifier).

    Sheet2 contient une liste de valeurs en deux colonnes, et Sheet1 contient une liste de valeurs extraites d'un programme, qu'il faudrait modifier en fonction de la liste de valeurs de Sheet2.
    Les cellules de la première colonne, à partir de B12 sont une correspondance, et contiennent une partie de caractères communs à partir de la fin (Fct Excel "Right"), à laquelle il ne faut pas toucher. Sur la même ligne, la cellule de la colonne D contient le texte à modifier.
    Donc :
    Sheet 2 (données sources)
    Colonne A :
    - TexteRef1
    - TexteRef2

    Colonne B
    - MessageRef1
    - MessageRef2


    Sheet1 (données à modifier)
    Colonne B (à partir de ligne 12)
    - TexteExtr1
    - TexteExtr2
    Colonne D (à partir de ligne 12)
    - MessageAmodifier1 (doit contenir la valeur de Colonne B de Sheet2, mais sur la ligne pour laquelle TexteExt1 contient le contenu de la case "TexteRef")
    - MessageAmodifier2 (doit contenir la valeur de Colonne B de Sheet2, mais sur la ligne pour laquelle TexteExt2 contient le contenu de la case "TexteRef")

    Je pensais avoir trouvé une base sur ce lien, mais cela ne fonctionne malheureusement pas...
    Vba-remplacement-contenu-cellules-d-range-defini-filtre

    Quelqu'un aurait-il une idée et pourrait-il m'aider?

    Merci beaucoup!
    Olivier

  2. #2
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 926
    Points
    55 926
    Billets dans le blog
    131
    Par défaut
    Salut.

    C'est un one shot ou tu auras à réaliser cela régulièrement? Si c'est un one shot, il serait plus intéressant de te tourner vers des formules Excel que vers du VBA
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Septembre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Septembre 2017
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Bonjour et merci pour votre réponse.

    Ca serait effectivement une routine à plusieurs reprises. Le contenu à remplacer serait toujours le même, mais la liste de sheet1 est aléatoire par contre.

    Merci,
    Olivier

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 926
    Points
    55 926
    Billets dans le blog
    131
    Par défaut
    Tu pourrais donner une copie d'écran de l'avant/après?
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Septembre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Septembre 2017
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Voici =)

    Nom : Sheet1.png
Affichages : 541
Taille : 62,1 KoNom : Sheet2.png
Affichages : 501
Taille : 47,7 Ko

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 926
    Points
    55 926
    Billets dans le blog
    131
    Par défaut
    En partant du principe (observé sur ta copie d'écran) que dans le chemin, le remplacement de la racine commune permet de se retrouver avec un seul \ dans la valeur extraite, on pourrait utiliser ce qui suit. Après, on peut utiliser VBA pour automatiser cela


    Nom : Capture.PNG
Affichages : 561
Taille : 18,0 Ko

    On peut aussi partir en full VBA, mais je privilégie souvent l'utilisation des fonctions natives d'Excel, quitte à les enrober de VBA pour l'automatisation.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Septembre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Septembre 2017
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    C'est effectivement une bonne piste, mais je n'ai pris que les quelques premières lignes. Dans les lignes suivantes, il y a parfois plus de "/" après la partie commune
    Voici un printscreen avec les différentes possibilités à ce jour (mais tout resterait dans le même style de toute façon)
    Au niveau de "AHUXX", dans la partie "référence extraite", cela pourrait être AHU01 ou AHU02 ou encore autre chose dans ce style. Du côté source (Sheet2), par contre, ça ne bouge pas...

    Bien à toi,
    Olivier
    Nom : Sheet1.png
Affichages : 490
Taille : 79,9 KoNom : Sheet2.png
Affichages : 484
Taille : 68,7 Ko

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 926
    Points
    55 926
    Billets dans le blog
    131
    Par défaut
    A ma connaissance, il n'existe pas de possibilité de retourner une chaîne par formule dans Excel, même en formule matricielle.

    En créant une fonction personnalisée qui le fait en VBA, on peut s'affranchir de la racine commune.

    La fonction, à mettre dans un module standard de ton classeur (c'est tout bête, elle existe en VBA)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Function Retourne(Value As String) As String
      Retourne = StrReverse(Value)
    End Function
    Son utilisation

    Nom : Capture.PNG
Affichages : 503
Taille : 16,1 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Candidat au Club
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Septembre 2017
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Septembre 2017
    Messages : 5
    Points : 2
    Points
    2
    Par défaut
    Merci beaucoup! J'ai pris ce que tu proposais en base de ce que je devais faire, c'est magnifique. Tu viens de me faire gagner des heures et des heures de travail!

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

Discussions similaires

  1. [XL-2007] Contenu d'une cellule en fonction d'une liste déroulante
    Par elwy07 dans le forum Excel
    Réponses: 6
    Dernier message: 11/12/2015, 21h03
  2. [XL-2007] Affichage d'une cellule en fonction d'une liste
    Par jeanjean6 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 19/04/2013, 10h16
  3. Réponses: 4
    Dernier message: 31/08/2012, 11h13
  4. [XL-2003] Déplacer contenu cellule en fonction d'une variable
    Par a-tire-daile dans le forum Excel
    Réponses: 0
    Dernier message: 01/02/2011, 14h49
  5. changer couleur cellule en fonction d'une liste
    Par MottetCCSF dans le forum Excel
    Réponses: 4
    Dernier message: 20/06/2007, 12h21

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