XL 2010 RESOLU Extraction par macro des initiales de chaque mot d'une cellule active

jozerebel

XLDnaute Occasionnel
Bonjour,

je souhaite par macro, et sur simple doucle clic, changer la valeur de la cellule activée par les initiales de chaque mot qu'elle contient...

Une aide charitable?

D'avance merci au fofo !
 

max.lander

XLDnaute Occasionnel
Salut à tous,

Jozerebel avec ce bout de code dans un module feuille !


VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)


ActiveCell.Value = Left(ActiveCell.Value, 2)




End Sub
 
Dernière édition:

Paf

XLDnaute Barbatruc
Bonjour jozerebel, max.lander,

un autre essai

Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
Dim TabTemp, i As Integer, Chaine As String

TabTemp = Split(Target, " ")
For i = LBound(TabTemp) To UBound(TabTemp)
    Chaine = Chaine & Left(TabTemp(i), 1) & " "
Next
Target = Chaine
End Sub

A+
 

max.lander

XLDnaute Occasionnel
Coucou,

Je reviens concurrencer Paf avec une nouvelle tentative ! ;)

VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)


Dim Lg, i As Integer, Initiale As String, Cible As Variant

Cible = ActiveCell.Value



Lg = Len(Cible)
Initiale = Left(Cible, 1)
If Lg > 2 Then
For i = 2 To Lg
If Mid(Cible, i - 1, 1) = " " Then
Initiale = Initiale & Mid(Cible, i, 1)
End If
Next i
End If

ActiveCell.Value = Initiale







End Sub

A+
 
Dernière édition:

Paf

XLDnaute Barbatruc
re

Attendons les précisions de jozerebel quant à l'éventuel séparateur d'initiales, et aux restrictions de plage de cellules où cliquer .....

Par ailleurs, Target et ActiveCell représentent le même range.
donc le test If Not Application.Intersect(Target, ActiveCell) Is Nothing Then sera toujours vrai!!

A+
 

Modeste geedee

XLDnaute Barbatruc
Bonsour®
Bonjour,

je souhaite par macro, et sur simple doucle clic, changer la valeur de la cellule activée par les initiales de chaque mot qu'elle contient...
comme ceci peut-être ?
VB:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  Dim x$, i!
  x = Left(Target, 1)
  For i = 1 To Len(Target)
      x = x & IIf(Mid(Target, i, 1) = " ", Mid(Target, i + 1, 1), "")
  Next
  Target = UCase(x)
End Sub
 

jozerebel

XLDnaute Occasionnel
Salut à tous !

Merci pour votre aide !!!!

Pour répondre à Paf :

Plage : Toutes les feuilles potentiellement du classeur
Séparateur : Espace ou "-" en cas de Nom et/ou Prénom composé.

Encore merci à vous tous !

je passe en résolu !
 

Discussions similaires

Statistiques des forums

Discussions
312 963
Messages
2 093 996
Membres
105 906
dernier inscrit
aifa