Ajout texte automatique dans cellule après saisie

jp50130

XLDnaute Nouveau
Bonjour,
Comment faire apparaître automatiquement "Monsieur" devant le nom que je saisis dans une cellule de la colonne A (et pas dans une cellule vide) ?
Merci de votre attention.
Jean-Pierre
 

job75

XLDnaute Barbatruc
Bonjoir jp50130,

A placer dans le code de la feuille (clic droit sur l'onglet et Visualiser le code) :
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 1 And Target(1) <> "" And Left(Target(1), 8) <> "Monsieur" Then Target(1) = "Monsieur " & Target(1)
End Sub
Une seule cellule est traitée même quand on fait une entrée multiple.

A+
 

job75

XLDnaute Barbatruc
Re,

Comme je l'ai dit la macro précédente traite une seule entrée.

Si l'on veut traiter simultanément plusieurs entrées on exécutera celle-ci :
Code:
Sub EntrerMonsieur()
Dim t, P As Range, tablo, i&, x$
t = Timer
With ActiveSheet 'adapter éventuellement
    Set P = Intersect(.Range("A2:A" & .Rows.Count), .UsedRange)
    If P Is Nothing Then Exit Sub
    If .FilterMode Then .ShowAllData
End With
tablo = P 'matrice, plus rapide
If Not IsArray(tablo) Then tablo = P.Resize(, 2) 'au moins 2 éléments
For i = 1 To UBound(tablo)
    x = tablo(i, 1)
    If x <> "" And Left(x, 8) <> "Monsieur" Then tablo(i, 1) = "Monsieur " & x
Next
P = tablo 'restitution
MsgBox "Durée " & Format(Timer - t, "0.00 \s")
End Sub
J'ai testé en entrant le même texte (Ctrl+Entrée) dans les 1048576 cellules de la colonne A => 3,9 secondes chez moi.

A+
 

Discussions similaires

Réponses
2
Affichages
325

Statistiques des forums

Discussions
312 195
Messages
2 086 083
Membres
103 114
dernier inscrit
sylvainb6969