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 :rolleyes:)
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:rolleyes:
 
Dernière édition:

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz