Transférer une chaine de caractère dans une nouvelle cellule SI(...)

  • Initiateur de la discussion Initiateur de la discussion Bieffe
  • 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 !

Bieffe

XLDnaute Nouveau
Bonjour à tous,

Tout d'abord, merci à tous ceux qui s'impliquent pour ce forum, il m'a sauvé la mise maintes fois jusqu'à ce jour.

Pour mon problème, après plusieurs recherches sur différents sites, je n'ai toujours pas trouvé de solution. J'aimerais pouvoir créer soit une macro, soit simplement une formule qui me permettrait d'écrire le mot cherché (Il s'agit d'une série de mot) s'il se trouve quelque part dans la colonne...

Pas très clair tout ça, ça va être plus simple avec un exemple :
J'ai une colonne contenant PATATES RUE DES et je voudrais, dans une colonne vierge à sa gauche, écrire RUE DES et garder dans la colonne initiale PATATES. En gros, je veux séparer le nom de la rue et son déterminant. J'en ai plusieurs différents (Rue, Rue des, Rue de l', etc...), mais juste la première étape serait plaisante, je me débrouillerai pour la "pimper" un peu.

Merci énormément encore à tous ceux qui aident le forum à rester en vie.
 
Re : Transférer une chaine de caractère dans une nouvelle cellule SI(...)

Bonjour,

Tu copies cette fonction personnalisée dans un module STANDARD.

Et dans ta feuille de calcul, en supposant que le nom est dans A1,
tu inscris dans la cellule de ton choix : =NameOnly(A1)

Dans la fonction, tu dois compléter la liste de toutes les expressions qu'il y a dans
ta plage de cellule qui sont placées avant le nom que tu veux extraire.

Dans Arr = Array(Ta liste d'expressions entre guillemets et séparée par une virgule)

VB:
Function NameOnly(Rg As Range) As String
Dim Arr(), Elt As Variant
Arr = Array("Rue", "Rue des", "Rue de l'")
For Each Elt In Arr
    If InStr(1, Trim(Right(Rg, Len(Rg) - Len(Elt))), " ", vbTextCompare) = 0 Then
        NameOnly = Trim(Right(Rg, Len(Rg) - Len(Elt)))
        Exit For
    End If
Next
End Function
 
Re : Transférer une chaine de caractère dans une nouvelle cellule SI(...)

Bonjour,

Merci pour la réponse rapide! J'ai essayé, et cela donne un résultat bizarre. Comme je ne comprends pas très bien la fonction (Je suis plutôt débutant en VBA), je n'arrive pas à la déboguer.

Voir en PJ le résultat.

Merci
 

Pièces jointes

Re : Transférer une chaine de caractère dans une nouvelle cellule SI(...)

Bonsoir

Tu peux faire avec une formule mettant un point-virgule devant RUE, AVENUE... suivi d'un collage spéciale valeur, et d'une convertion (Données --> convertir -->délimité -->point virgule).

@ plus

Cisco
 

Pièces jointes

Re : Transférer une chaine de caractère dans une nouvelle cellule SI(...)

J'ai corrigé la fonction d'après ton fichier :


Comme tes noms semblent prendre toutes sortes de forme,
je n'ai pas le temps de pondre une procédure pour tous les cas de figure
que tu peux rencontrer.

La procédure suivante ne traite pas ces 2 cas par exemple : DE MONVIELLE RUE, DE NEVERS CARRÉ


VB:
Function NameOnly(Rg As Range) As String
 Dim Arr(), Elt As Variant, T As String
 Arr = Array("Rue", "Rue des", "Rue de l'", "ROUTE DE L'")
 T = Rg
 For Each Elt In Arr
    If IsNumeric(Split(T, " ")(0)) Then
        T = Trim(Replace(T, Split(T, " ")(0), ""))
        If UBound(Split(T, "")) = 0 Then
            NameOnly = T
            Exit For
        End If
    End If
     If InStr(1, Trim(Left(T, Len(T) - Len(Elt))), " ", vbTextCompare) = 0 Then
         NameOnly = Trim(Left(T, Len(T) - Len(Elt)))
         Exit For
     End If
 Next
 End Function
 
Re : Transférer une chaine de caractère dans une nouvelle cellule SI(...)

Merci beaucoup Cisco, ta solution marche très bien.

Merci aussi MichD, j'ai essayé ta fonction, et elle fonctionne plutôt bien. Il y a quelques erreurs, mais ça me permet de comprende un peu mieux le système de fonction dans Excel.

Je ne sais pas comment indiquer que mon problème est résolu, mon entreprise bloque tous les boutons... Je vais essayer de le faire chez moi ce soir.

Merci encore à tous ceux qui donnent du temps sur ce forum!
 
- 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

Retour