insertion de chaines

A

art

Guest
Bonsoir à tous et merci à tout ceux qui passent leur temps à aider les autres.
Je vous expose mon problème, je travaille sur ce code:

Sub ajtxtg()
Dim txtàajouter
Dim Cellule
With Selection
txtàajouter = InputBox("Quel est le texte ou le nombre à ajouter au début " & _
Chr(10) & "de chaque cellule de la sélection ?", "INSERTION", "")
For Each Cellule In Selection
Application.SendKeys "{F2}"
Application.SendKeys "{Home}"
Application.SendKeys txtàajouter
Application.SendKeys "{ENTREE}"
Next
End With
End Sub

Qui me permet d'inserer un texte quelconque au debut de chaque cellule de ma selection.
J'aimerais y ajouter une option me permettant d'inserer ce texte à n'importe quel endroit de ma cellule.
J'ai pensé à un inputBox me demandant après combien de caractère faut-il placer l'insertion? Mais après, je bloque
Je vous remercie pour toute l'aide que vous pourrez m'apporter
@+
 
@

@+Thierry

Guest
Bonsoir Art et les Couches tard !!! (et les Canadiens ;-)


Oui, c'est pas mal tes SendKeys, mais disons que pour faire la même chose en précisant une position çà se corse !! (Bonjour Pat5 !!)

Voici ce que je te propose avant d'aller me coucher :

Sub InsertionTexte()
Dim Placement As Byte
Dim TextAjout As String
Dim NewValeur As String
Dim Droite As String
Dim Gauche As String
Dim Cell As Range

Dim Cellule As Range

Placement = InputBox("Quel Position pour l'insertion (en partant de gauche)", "INSERTION PHASE POSITION")

TextAjout = InputBox("Quel est le texte ou le nombre à ajouter au début " & _
Chr(10) & "de chaque cellule de la sélection ?", "INSERTION PHASE TEXTE")

With Selection
For Each Cell In Selection
If Not Len(Cell) < Placement Then
Gauche = Left(Cell, Placement)
Droite = Right(Cell, Len(Cell) - Placement)
NewValeur = Gauche & TextAjout & Droite
Cell = NewValeur
End If
Next
End With
End Sub

Et c'est plus rapide que les SendKeys :) ... En mettant 0, cette macro fera ce que la tienne fesait déjà. Par contre si la valeur entrée en première InputBox est supérieur à la longueur de la chaine de caractère contenue dans une des celluleS, cette dernière ne subira aucun changement... Si tu veux plutôt insérer des espaces, là il faudra faire une peu plus compiqué.

Bonne Nuit
@+Thierry
 
A

art

Guest
Bonsoir à tous et particulièrement à @+Thierry.
Merci pour ton code qui est exactement pile-poil ce que je recherchais.
Et je profite du fait que tu es pris le soin de me repondre pour te dire
que ce que tu fais au travers de ce forum est tout simplement génial.
@+
 

Discussions similaires

Réponses
0
Affichages
310
Réponses
5
Affichages
426

Statistiques des forums

Discussions
314 659
Messages
2 111 624
Membres
111 237
dernier inscrit
vinthi