Comparer feuille de classeurs différents

Christ -  
 Christ -
Bonjour,

Je dois pouvoir identifier des cellules dans une feuille à partir de données/cellules dans une feuille d'un autre classeur.

C'est pour identifier des noms présents dans la feuille de l'autre classeur. Une particularité, c'est qu'il est probable que les noms soient similaire mais non identique. C'est à dire que dans une feuille le nom sera écrit « Bélanger » et dans l'autre feuille sera « Belanger ».

Des idées de solutions possibles ?

Merci pour le coup de main ! Je débute en c'est p-e pas avec le cas le plus facile :-)

4 réponses

  1. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    Bonjour Christ.

    "Je dois pouvoir identifier des cellules dans une feuille"
    Explique : qu'est-ce que tu entends par "identifier" ?
    Car ce n'est pas un terme utilisé dans les tableurs.

    * Il est très difficile de rapprocher deux mots qui n'ont pas la même orthographe.
    * Il est très compliqué de travailler sur des données placées dans des classeurs différents, surtout s'ils ne sont pas tous ouverts simultanément.
    * Mais les deux ensemble, je n'essaierais même pas ...

    Et comme tu le dis si bien "Je débute en c'est p-e pas avec le cas le plus facile" !
    0
    1. Christ
       
      Bonjour Raymond,

      Pour le problème lié à l'utilisation de plus d'un classeur, je pourrai simplement m'assurer que les deux feuilles sont dans le même classeur. Ou encore mettre seulement les cellules à utiliser sur une même feuille. Ça c'est pas difficile :-)

      Pour le rapprochement de mots non identique. Existe-t-il une fonction ou une série d'expression régulière pour normaliser le contenu texte de cellule. Soit une fonction qui remplacerait les majuscule par des minuscule (ou l'inverse), les caractères accentués par ceux sans accent... Il suffirait de rouler cette fonction, nous obtiendrons ainsi des mots ayant la même orthographe.

      Bref, j'ai trouvé ceci en cherchant un peu :

      Function Maj_Sans_Accent(Ori As String) As String
      Dim Compteur As Integer, Compteur2 As Integer
      Dim Tab_Car_Accent, Tab_Car, Chaine_Test As String
      Tab_Car_Accent = Array("á", "à", "â", "ä", "ã", "å", "é", "è", "ê", "ë", "í", "ì", "î", "ï", "ó", "ò", "ô", "ö", "õ", "ð", "ú", "ù", "û", "ü", "ÿ", "ý", "ç")
      Tab_Car = Array("a", "a", "a", "a", "a", "a", "e", "e", "e", "e", "i", "i", "i", "i", "o", "o", "o", "o", "o", "o", "u", "u", "u", "u", "y", "y", "c")
      For Compteur = 1 To Len(Ori)
      If Asc(Mid$(Ori, Compteur, 1)) > 223 Then
      Chaine_Test = Mid$(Ori, Compteur, 1)
      For Compteur2 = LBound(Tab_Car) To UBound(Tab_Car)
      If Chaine_Test = Tab_Car_Accent(Compteur2) Then Chaine_Test = Tab_Car(Compteur2): Exit For
      Next Compteur2
      Ori = Left(Ori, Compteur - 1) & Chaine_Test & Right(Ori, Len(Ori) - Compteur)
      End If
      Next Compteur
      Maj_Sans_Accent = UCase(Ori)
      End Function


      Donc après il ne me resterait qu'à identifier les mots des cellules identiques.

      Merci pour le coup de main.
      0
  2. Raymond PENTIER Messages postés 58213 Date d'inscription   Statut Contributeur Dernière intervention   17 482
     
    Tu as donc considérablement simplifié le problème, si tu n'as plus qu'un seul classeur, dans lequel tu vas nommer les différentes plages concernées.

    La plupart des fonctions de recherche (INDEX, EQUIV, DECALER, RECHERCHEV, RECHERCHEH, CHOISIR, CHERCHE ...) sont insensibles à la casse, c'est-à-dire se moquent des majuscules/minuscules ; par contre la fonction TROUVE y est sensible.

    Concernant la macro je ne peux faire aucun commentaire, ne pratiquant pas VBA.

    Cordialement.
    0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    Soit une fonction qui remplacerait les majuscule par des minuscule (ou l'inverse)

    Tu as les 2 MAJUSCULE qui met toute la cellule en majuscule et MINUSCULE qui fait l'inverse.

    Pour les accents, sans passer par macro, tu peux aussi utiliser remplacer (ctrl+h) qui peux te remplacer tous les accents en peu de temps.
    0
    1. Christ
       
      Bonjour gbinforme,

      Merci. C'est actuellement ce que nous faisons (manipulation des données manuellement) et comme c'est un tâche quotidienne ça demande bcp de temps. C'est la raison pour laquelle je recherche une fonction / macro qui pourra nous aider à moins perdre de temps :-)

      Je vais regarder du côté de VBA.
      0