supprimer le contenu d'une cellule après deuxième mot

chac-attack

XLDnaute Nouveau
Bonjour le forum,

je fais une fois de plus appel à vous car je bloque sur une macro. Dans une cellule j'ai un nom et plusieur prénom (ex: DUPONT Jean benoit emric) je souhaite ne garder que DUPONT Jean par macro (très important).

merci d'avance pour vos solutions

Chac-attack
 

Hulk

XLDnaute Barbatruc
Re : supprimer le contenu d'une cellule après deuxième mot

Re,

Autant pour moi, avec cette formule, il ne prend pas en compte le premier prénom.

Il te faut une formule un poil plus complexe, dont je laisse le soin aux maestros d'y remédier.

Cdt, Hulk.
 

Hulk

XLDnaute Barbatruc
Re : supprimer le contenu d'une cellule après deuxième mot

Re,

Essaie celle-là, toujours en B1 et ton nom en A1 !
Code:
=GAUCHE(A1;CHERCHE(" ";A1;1))&STXT(A1;CHERCHE(" ";A1;1)+1;CHERCHE(" ";A1;CHERCHE(" ";A1;1)+1)-CHERCHE(" ";A1;1))
Cdt, Hulk.
 

Lii

XLDnaute Impliqué
Re : supprimer le contenu d'une cellule après deuxième mot

Bonjour,

si les mots sont tous séparés par 1 espace, macro à adapter :
Code:
Sub N_P()
   For Each C In [I]plage[/I] [COLOR=SeaGreen]'à définir[/COLOR]
     Nom$ = Left(C, InStr(C, " "))
     Prenom$ = Right(C, Len(C) - Len(Nom))
     [I]C.Offset(, 1) [/I]= Nom & " " & Left(Prenom, InStr(Prenom, " ")) [COLOR=SeaGreen]'à définir[/COLOR]
   Next
 End Sub
 
Dernière édition:

Pyrof

XLDnaute Occasionnel
Re : supprimer le contenu d'une cellule après deuxième mot

Bonjour,

Voici une fonction
Code:
Function extract_nom(lc, nb)
Application.Volatile
tmp = Split(lc, " ")
For b = 1 To nb
    nom = nom & " " & tmp(b - 1)
Next
extract_nom = Trim(nom)
End Function

le second argument est le nombre mot que tu souhaites (ici 2)

cette fonction peut être utilisée directement dans la feuille ou par une autre macro

Macro que demandait chac-attack
 

ROGER2327

XLDnaute Barbatruc
Re : supprimer le contenu d'une cellule après deuxième mot

Re-bonsoir à tous
Pas si simple que ça en a l'air, cette affaire là !
Code:
[COLOR="DarkSlateGray"]Function coupe(ch As String, Optional cr As Integer = 1) As String
Dim s, i As Long
   Application.Volatile
   s = Split(Trim(ch))
   For i = 0 To UBound(s)
      coupe = Trim(coupe & Space(1) & s(i))
   Next i
   s = Split(coupe, , cr + 1)
   coupe = Empty
   For i = 0 To Application.Min(cr - 1, UBound(s))
      coupe = Trim(coupe & Space(1) & s(i))
   Next i
End Function[/COLOR]
Regroupement des diverses solutions dans le fichier joint.​
Bonne nuit.
ROGER2327
 

Pièces jointes

  • chac-attack_sous-chaine.zip
    12.2 KB · Affichages: 80

Discussions similaires

Statistiques des forums

Discussions
312 502
Messages
2 089 049
Membres
104 012
dernier inscrit
baffyt2