Formule pour changer la fin d'une cellule

Bonjour a tous,

Je cherche une formule qui permet de remplacer les chiffres present a la fin de cellules par le contenu d'une variable "N". Est-ce possible?

si N=12

Ex.: JP Z,INT4 deviendrais JP Z,INT12

CALL INT13 deviendrais CALL INT12

etc...

Bonjour,

A tester

Cdlt

26capucin.zip (3.58 Ko)

Bonjour,

Il y a toujours INT+ le chiffre à remplacer ou ca peut varier ?

Mets en ligne un fichier avec les exemples possibles de textes dans les cellules.

cdt

Bonjour a vous deux!

J'ai oublie de dire que le contenu des cellules peut varier. Egalement la formule ira dans une boucle VBA

Je joint un petit fichier avec des exemples de cellules.

Salut en considérant qu'il y a 2 chiffres maximum et 1 chiffre minimum, j'ai trouvé ceci (c'est un peu long comme formule mais ça fonctionne )

Voir fichier joint

Si tu veux le code pour ta macro, voici un exemple à adapter à ton fichier

Appuie sur le bouton macro, et dans la fenetre qui s'ouvre choisis par quoi tu veux remplacer.

19capucin.zip (15.03 Ko)
Sub macro()
Dim valeur As String

Message = InputBox("Remplacer par", "Inputbox")

For i = 1 To 18

Position = 0
For j = 1 To Len(Cells(i, 1))
    valeur = Mid(Cells(i, 1), j, 1)
    If Not IsNumeric(valeur) Then
    Position = j
    End If
Next

Cells(i, 2) = Left(Cells(i, 1), Position) & Message

Next

End Sub

cdt

Pour le fun

Avec formules excel; sans colonne intermédiaire

STXT(A1;1;MAX(SI(ESTERREUR(STXT(A1;LIGNE(INDIRECT("1:"&NBCAR(A1)));1)*1);LIGNE(INDIRECT("1:"&NBCAR(A1))))))&$D$1

Ketamacanna: Cool, j'ai reussi a adapter ton code au mien. merci pour ton aide! En passant, quel est la difference entre Référence = Right(c, Len(c)) et Reference=c ?

Private Sub CommandButton27_Click()  '<SORT> renumerote les etiquettes d'une selection et toutes les instructions relie et ce, pour tout le code du projet
Dim c As Range
Dim Référence As String
Dim DerLig As Integer
Dim i As Integer
Dim j As Integer
Dim position As Integer
Dim N As Integer
Dim valeur As String
Application.ScreenUpdating = False
Application.EnableEvents = False   'désactive les procédures évènementielles
N = 1     '# d'etiquette   ex. JP INT1
DerLig = Range("I65536").End(xlUp).Row
For Each c In Selection
'Référence = Right(c, Len(c))
     If c <> "" Then
         For i = 3 To DerLig
             If Right(Cells(i, 9), Len(c)) = c And Cells(i, 9).Interior.ColorIndex = xlNone Then  'pour chaque cellule trouver:
                 position = 0
                 For j = 1 To Len(Cells(i, 9))
                     valeur = Mid(Cells(i, 9), j, 1)
                       If Not IsNumeric(valeur) Then
                          position = j
                       End If
                  Next
                  Cells(i, 9) = Left(Cells(i, 9), position) & N  'attribution d'un nouveau numero pour l'instruction
                  Cells(i, 9).Interior.ColorIndex = 6  ' on rempli temporairement avec couleur jaune.Necessaire afin que la cellule ne soit pas traite une 2ieme fois
              End If
         Next i
         N = N + 1
    End If
Next c
N = 1
Range("I3:I65536").Interior.ColorIndex = xlColorIndexNone
For Each c In Selection
      If c <> "" Then
        position = 0
                 For j = 1 To Len(c)
                     valeur = Mid(c, j, 1)
                       If Not IsNumeric(valeur) Then
                          position = j
                       End If
                  Next                        'attribution d'un nouveau numero pour les etiquettes
                  c = Left(c, position) & N   'attribution d'un nouveau numero pour l'instruction
      N = N + 1
      End If
Next c
Application.EnableEvents = True   'reactive les procédures évènementielles
End Sub

Pas de différence,

Référence = Right(c, Len(c)) te donnera le même résultat que Reference=c

cdt

Rechercher des sujets similaires à "formule changer fin"