Inscription d'un texte à la suite d'une donnée entrée

Bonjour à tous,

J'aimerais que soit inscrit automatiquement le texte "HP" à la suite d'une entrée de données dans une cellule. Exemple : cellule "C3", je tape "1/2" suivi d'entrée et automatiquement j'obtiendrai : "1/2 HP". Quand je clique sur la cellule "C3", je devrais voir "1/2 HP" et non "1/2". En résumé, la cellule doit demeurée en format uniquement.

Si quelqu'un pourrait m'aider, cela serait fortement apprécié.

Salutations,

Renaud D.

Salut,

vois le fichier joint te convient

Private Sub Worksheet_Change(ByVal Target As Range)

aa = Target.Value
If aa = "" Then Exit Sub
If Right(aa, 2) <> "HP" Then

Target = aa & " HP"
End If

End Sub
20hp.xlsm (15.64 Ko)

Merci Game Over pour ta réponse.

Dans ton fichier, l'extension "HP" est insérée dans l'ensemble du document. Je désire que cette extension s'applique à la cellule "C3" uniquement. Je veux également que lorsque je copie une valeur d'une cellule quelconque dans la cellule "C3", l'extension ne soit pas ajoutée. Elle sera ajoutée seulement si je tape une valeur dans la cellule "C3".

Salutations,

Renaud D.

Renaud Dugas a écrit :

Je veux également que lorsque je copie une valeur d'une cellule quelconque dans la cellule "C3", l'extension ne soit pas ajoutée. Elle sera ajoutée seulement si je tape une valeur dans la cellule "C3".

Avec la méthode que j'ai utilisée, Excel ne fait pas la distinction entre une saisie clavier et un copié/collé. Perso, je ne vois pas comment résoudre cela... Peut-être qu'une méthode existe, je passe la main.

Merci Game Over, pour tes efforts toujours appréciés.

Salutations,

Renaud D.

Bonjour

Un début de réponse

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim strCell$
    If Not Intersect(Target, Range("C3")) Is Nothing Then
        If Range("C3").Text <> "" And Not (Range("c3") Like "*HP") Then
            strCell = Range("c3").Text
            Range("c3") = strCell & " HP"
        End If
    End If
End Sub

Toujours de différenciation entré au clavier et copié collé mais ça ne s'applique qu'a C3

Merci SylChat pour ta réponse.

Le code fonctionne très bien mais si je veux copier la valeur d'une autre cellule dans la cellule "C3", l'extension "HP" est automatiquement ajoutée. Je veux que l'extension "HP" soit ajoutée lorsque j'entre une valeur dans la cellule "C3" et qu'il ne soit pas ajoutée lorsque je copie dans la cellule "C3" une valeur provenant d'une autre cellule.

Salutations,

Renaud D.

bonsoir,

une proposition, qui va tester si on fait une copie en examinant le contenu du clipboard. si le contenu est identique à ce que l'on trouve dans la cellule C3, on en déduit qu'on vient de faire un coller (ceci n'est cependant pas une garantie à 100%). Il se pourrait que reçoives une erreur sur dataobject. dans ce cas, tu dois activer une référence à MSFORMS, via menu->outils->references, bouton parcourir, puis taper FM20.dll puis ok.

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim strCell$
    If Not Intersect(Target, Range("C3")) Is Nothing Then
      Set clipb = New dataobject
          clipb.getfromclipboard
          On Error Resume Next
          myclip = clipb.gettext(1)
          myclip = Left(myclip, Len(myclip) - 2)
        If myclip = Range("c3").Text Then Exit Sub
        If Range("C3").Text <> "" And Not (Range("c3") Like "*HP") Then
            strCell = Range("c3").Text
            Range("c3") = strCell & " HP"
        End If
    End If
End Sub

Merci h2so4 pour ta réponse,

Sincères salutations,

Renaud D.

Rechercher des sujets similaires à "inscription texte suite donnee entree"