XL 2013 Assembler texte

  • Initiateur de la discussion Initiateur de la discussion maval
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

maval

XLDnaute Barbatruc
Bonjour,

J'ai une colonne "D" avec des noms de communes

Dans la colonne "I " j'ai une liste de noms plus ou moins la même que la colonne "D" et dans la colonne "J" j'ai des noms d'habitants des communes qui correspond à la colonne" I".

Mon problème est que je voudrai si possible à l'aide d'une macros assembler les noms des habitants de la colonne "j" qui correspond aux noms de la colonne "D" en sachant qu'il y a des noms qui ne figure pas dans les deux sens.

Mon fichier exemple

Je vous remercie d'avance

Max
 

Pièces jointes

Attention, pour certaine ville ça ne fonctionne pas car il y a une différence dans les nom :

Exemple :
En colonne D il y a Épieds avec un accent mais en face il y a Epieds dans la colonne I sans accent, ils sont donc différent est le code de s'applique par pour eux.
 
Bonjour le fil,

Pour les problèmes d'accent, on peut utiliser une petite fonction 😉

VB:
Sub Bouton1_Cliquer()
  'Déclaration des variables
  Dim rngColumnI As Range, rngColumnD As Range, Find As Range
  Set rngColumnI = Range("I5:I820")
  Set rngColumnD = Range("D5:D808")

  Dim element As Variant

  'Blocage du refresh de l'interface
  Application.ScreenUpdating = False

  'Boucle sur toute les cellules (dans la range) dans J
  For Each element In rngColumnI
    'Cherche si la cellules existe aussi dans D
    Set Find = rngColumnD.Cells.Find(What:=SupAccents(element), lookat:=xlWhole)
    'Condition si la valeur est trouvé
    If Not Find Is Nothing Then
      'Recopie de la valeur dans J pour la mettre dans E
      Range("E" & Find.Row) = (Range("J" & element.Row))
    End If
  Next

  'Déblocage du refresh de l'interface
  Application.ScreenUpdating = True
End Sub

Function SupAccents(ByVal sChaine As String) As String
  Dim sTmp As String, i As Long, p As Long
  Const sCarAccent As String = "ÁÂÃÄÅÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïñòóôõöùúûüýÿ"
  Const sCarSansAccent As String = "AAAAACEEEEIIIINOOOOOUUUUYaaaaaaceeeeiiiinooooouuuuyy"
  sTmp = sChaine
  For i = 1 To Len(sTmp)
    p = InStr(sCarAccent, Mid(sTmp, i, 1))
    If p > 0 Then Mid$(sTmp, i, 1) = Mid$(sCarSansAccent, p, 1)
  Next i
  SupAccents = sTmp
End Function

A+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
22
Affichages
667
Réponses
6
Affichages
153
  • Résolu(e)
Microsoft 365 transposer
Réponses
6
Affichages
141
  • Question Question
Microsoft 365 tri dans Excell
Réponses
19
Affichages
620
Réponses
1
Affichages
125
Réponses
4
Affichages
296
Réponses
35
Affichages
1 K
Retour