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 :

Textes communs entre deux chaines variables


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Salariée
    Inscrit en
    Juillet 2021
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Salariée

    Informations forums :
    Inscription : Juillet 2021
    Messages : 6
    Par défaut Textes communs entre deux chaines variables
    Bonjour à tous,

    Cela fait 5 heures que je cherche sans succès...

    Comment puis je parvenir à extraire les similitudes entre 2 chaines variables ?

    J'ai en effet, d'une part, des demandes qui reprennent des possibilités d'horaire, et d'autre part des disponibilités, que je cherche à faire "matcher" tout en me donnant toutes les possibilités comme résultat

    Dans ma feuille1/colonne R j'obtiens dans mes cellules des chaines issues du résultat d'une ListBox, dans ma feuille2/colonne C j'obtiens des chaines issues d'une autre ListBox

    Je souhaite avoir en feuille1/colonne Z, sur la même ligne, tous les résultats communs entre les deux + le contenu de la cellule feuill2/colonne A correspondante

    Par exemple

    feuill1/R3 = Lundi AM toutes les semaines Mardi AM toutes les semaines Mercredi AM tous les 15 jours Jeudi PM tous les 15 jours Vendredi PM toutes les semaines

    feuill4/C6 = Mardi PM toutes les semaines Jeudi PM tous les 15 jours Vendredi PM toutes les semaines
    feuill4/C25 = Lundi AM toutes les semaines, Mercredi AM toutes les semaines
    feuill4/C157 = Mardi AM toutes les semaines Mercredi AM tous les 15 jours Vendredi PM tous les 15 jours

    Résultat en feuill1/Z3 = feuill4/A6 + Jeudi PM tous les 15 jours Vendredi PM toutes les semaines
    feuill4/a25 + Lundi AM toutes les semaines
    feuill4/A157 + Mardi AM toutes les semaines Mercredi AM tous les 15 jours

    Pouvez vous m'aider ?
    Fichiers attachés Fichiers attachés

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 682
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 682
    Par défaut
    Bonjour,

    si je comprends ton besoin et le simplifie en termes d'énoncé, il s'agit ici de comparer deux chaines de caractères (contenant en fait des sous-chaînes séparées par des retours chariot), et de trouver les possibles correspondances.

    Est-ce juste ?

    Si tel est le cas, l'idée ici est de prendre les deux chaines (String) en entrée d'une fonction, qui retournera une fonction elle-même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Public Function PlagesCommunes(strPlageDemande As String, strPlageOffre as String) As String
     
    End Function
    Tu passes par une variable de type Variant pour récupérer tes valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Function PlagesCommunes(strPlageDemande As String, strPlageOffre as String) As String
    Dim vDemande As Variant, vOffre As Variant
    vDemande = Split(strPlageDemande,vbLf)
    vOffre = Split(strPlageOffre,vbLf)
    End Function
    Ensuite, il te suffit de parcourir par le biais de deux boucles imbriquées les valeurs de tes tableaux, et si la valeur de l'un correspond à la valeur de l'autre, tu ajoutes ladite valeur dans ta variable résultat.
    Cycle de vie d'un bon programme :
    1/ ça fonctionne 2/ ça s'optimise 3/ ça se refactorise

    Pas de question technique par MP, je ne réponds pas

    Mes ouvrages :
    Migrer les applications VBA Access et VBA Excel vers la Power Platform
    Apprendre à programmer avec Access 2016, Access 2019 et 2021

    Apprendre à programmer avec VBA Excel
    Prise en main de Dynamics 365 Business Central

    Coffrets disponibles de mes ouvrages : https://www.editions-eni.fr/jean-philippe-andre
    Pensez à consulter la FAQ Excel et la FAQ Access

    Derniers tutos
    Excel et les paramètres régionaux
    Les fichiers Excel binaires : xlsb,

    Autres tutos

Discussions similaires

  1. Réponses: 2
    Dernier message: 29/10/2016, 16h51
  2. [RegEx] Récupérer du texte entre deux chaines de caractères
    Par Globolite dans le forum Langage
    Réponses: 3
    Dernier message: 10/07/2014, 16h38
  3. supprimer texte entre deux chaine de caractere
    Par fadoch dans le forum C++
    Réponses: 7
    Dernier message: 14/01/2010, 16h59
  4. Réponses: 1
    Dernier message: 02/12/2009, 16h18
  5. Réponses: 5
    Dernier message: 25/03/2003, 19h43

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