Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro pour supprimer le premier et le dernier mot d'une phrase

ckoebel5

XLDnaute Junior
Bonjour,

Je suis à la recherche d'un code VBA qui me permettrait de supprimer le premier et dernier mot d'une chaine comportant forcément au moins deux espaces.

Exple: "Le pigeon gris" en entrée devient "pigeon" en sortie.

Merci!
 

camarchepas

XLDnaute Barbatruc
Re : Macro pour supprimer le premier et le dernier mot d'une phrase

Bonjour Ckoebel,

Voici une solution possible:

Sub Decoupe()
Dim Phrase() As String
Dim Résultat As String
Dim Tourne As Integer

If Range("A2") <> "" Then
Phrase = Split(Range("A2"), " ")
For Tourne = 1 To UBound(Phrase) - 1
Résultat = Résultat & " " & Phrase(Tourne)
Next Tourne
Range("B2") = Trim(Résultat)
End If
End Sub
 

Pièces jointes

  • Phrase.xlsm
    16.2 KB · Affichages: 76

JCGL

XLDnaute Barbatruc
Re : Macro pour supprimer le premier et le dernier mot d'une phrase

Bonjour à tous,

As-tu essayé avec Données / Convertir ?

VB:
Sub Test()
    Set Plage = Range("A2:" & Range("A65536").End(xlUp).Address)
    Plage.Offset(0, 1).Resize(Plage.Rows.Count, 200).ClearContents
    If Cells.SpecialCells(xlLastCell).Column <> 1 Then Range(Range("B2"), Range("B2").SpecialCells(xlLastCell)).ClearContents
    Plage.TextToColumns Destination:=Range("B2"), DataType:=xlDelimited, Space:=True
End Sub

A + à tous
 

ROGER2327

XLDnaute Barbatruc
Re : Macro pour supprimer le premier et le dernier mot d'une phrase

Bonjour à tous


Une fonction personnalisée :​
VB:
Function court$(p$)
Dim x
    x = Split(" " & Trim(p))
    x(1) = ""
    x(UBound(x)) = ""
    court = Trim(Join(x))
End Function


Bonne journée.


ROGER2327
#6215


Dimanche 22 Tatane 139 (Ubu ès Liens - fête Suprême Seconde)
17 Thermidor An CCXX, 4,1546h - lin
2012-W31-6T09:58:16Z
 

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Macro pour supprimer le premier et le dernier mot d'une phrase

Bonjour ckoebel5, le forum,

Une autre fonction personnalisée (2 fois la même instruction )
VB:
Function Milieu(x) As String
Milieu = Trim(Mid(StrReverse(Trim(x)) & " ", InStr(StrReverse(Trim(x)) & " ", " "), Len(x)))
Milieu = Trim(Mid(StrReverse(Trim(Milieu)) & " ", InStr(StrReverse(Trim(Milieu)) & " ", " "), Len(Milieu)))
End Function
 
Dernière édition:

ckoebel5

XLDnaute Junior
Re : Macro pour supprimer le premier et le dernier mot d'une phrase

[Résolu]
Merci à tous pour vos codes!

La plame à Roger2327 pour la brièveté du code

mais l"essentiel est de participer!!!!

Je prendrais le temps d'en saisir la beauté.

Cordialement
 
Dernière édition:

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…