Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Remplacer sous conditions certains chiffres (avec ou sans VBA)

5 réponses
Avatar
Pat rednef
Bonjour aux Excellents contributeurs de ce formidable forum !

Un lourd problème se présente à moi :

J’ai dans la colonne A des références produits au format personnalisé
0##-####-### qui peuvent donc être comme cela : 010-2900-927 ou encore ne pas
commencer par un zéro comme cela 927-4602-901.

Je tape ces codes sans mise en forme, le format le faisant au moment de la
validation.

MAIS je souhaite trouver une formule (avec VBA ou non) pour transformer les
9 en 5, jusque là rien de sorcier SAUF que je souhaite ne modifier que les 9
qui se trouvent en position du 8eme caractère dans ma chaîne :

010-2900-927 deviendra 010-2900-527
927-4602-901 deviendra 927-4602-501

Car dans la fonction remplace les autres 9 seront aussi remplacer par un 5
et cela serait catastrophique ! comment limiter cette transformation à la
colonne A, aux cellules qui ont le format spécifié car il y a aussi des noms
de rubrique qui pourraient contenir un 9 mais ces cellules sont au format
texte, et surtout au premier caractères des 3 derniers ?

Je vous remercie d’avance pour votre aide précieuse,

Bien à vous tous,

Pat

5 réponses

Avatar
MichDenis
Bonjour Pat,

Adapte le nom de la feuille et la plage de cellule.
Cette procédure suppose
'---------------------------
Sub Remplacer9()
Dim A As Integer
With Worksheets("Feuil1")
For Each c In .Range("A1:A5")
If Len(c) = 10 Then
A = 8
Else
A = 7
End If
If Mid(c, A, 1) = 9 Then
c.Value = Left(c, A - 1) & "5" & Right(c, 2)
End If
Next
End With
End Sub
'---------------------------


Salutations!


"Pat rednef" a écrit dans le message de news:

Bonjour aux Excellents contributeurs de ce formidable forum !

Un lourd problème se présente à moi :

J'ai dans la colonne A des références produits au format personnalisé
0##-####-### qui peuvent donc être comme cela : 010-2900-927 ou encore ne pas
commencer par un zéro comme cela 927-4602-901.

Je tape ces codes sans mise en forme, le format le faisant au moment de la
validation.

MAIS je souhaite trouver une formule (avec VBA ou non) pour transformer les
9 en 5, jusque là rien de sorcier SAUF que je souhaite ne modifier que les 9
qui se trouvent en position du 8eme caractère dans ma chaîne :

010-2900-927 deviendra 010-2900-527
927-4602-901 deviendra 927-4602-501

Car dans la fonction remplace les autres 9 seront aussi remplacer par un 5
et cela serait catastrophique ! comment limiter cette transformation à la
colonne A, aux cellules qui ont le format spécifié car il y a aussi des noms
de rubrique qui pourraient contenir un 9 mais ces cellules sont au format
texte, et surtout au premier caractères des 3 derniers ?

Je vous remercie d'avance pour votre aide précieuse,

Bien à vous tous,

Pat
Avatar
ru-th
Salut

a priori
=STXT(A1;1;9)&SUBSTITUE(STXT(A1;10;1);"9";"5")&DROITE(A1;2)
puis copie collage special valeur
a+
rural thierry
Veaux et Broutards d'Anjou
Wicasa on kin nape yapi inahni yo (à l'essai)

"Pat rednef" a écrit dans le message
de news:
Bonjour aux Excellents contributeurs de ce formidable forum !

Un lourd problème se présente à moi :

J'ai dans la colonne A des références produits au format personnalisé
0##-####-### qui peuvent donc être comme cela : 010-2900-927 ou encore ne
pas
commencer par un zéro comme cela 927-4602-901.

Je tape ces codes sans mise en forme, le format le faisant au moment de la
validation.

MAIS je souhaite trouver une formule (avec VBA ou non) pour transformer
les
9 en 5, jusque là rien de sorcier SAUF que je souhaite ne modifier que les
9
qui se trouvent en position du 8eme caractère dans ma chaîne :

010-2900-927 deviendra 010-2900-527
927-4602-901 deviendra 927-4602-501

Car dans la fonction remplace les autres 9 seront aussi remplacer par un 5
et cela serait catastrophique ! comment limiter cette transformation à la
colonne A, aux cellules qui ont le format spécifié car il y a aussi des
noms
de rubrique qui pourraient contenir un 9 mais ces cellules sont au format
texte, et surtout au premier caractères des 3 derniers ?

Je vous remercie d'avance pour votre aide précieuse,

Bien à vous tous,

Pat



Avatar
Alain CROS
Bonjour.

Peut être, en B1 si la liste commence en A1:
=SI(ET(CELLULE("format";A1)="P0";NBCAR(A1));SI(STXT(A1;10;1)="9";STXT(A1;1;9)&"5"& STXT(A1;11;2);A1);A1)
Puis tirer vers le bas.

Alain CROS

"Pat rednef" a écrit dans le message de news:

Bonjour aux Excellents contributeurs de ce formidable forum !

Un lourd problème se présente à moi :

J'ai dans la colonne A des références produits au format personnalisé
0##-####-### qui peuvent donc être comme cela : 010-2900-927 ou encore ne pas
commencer par un zéro comme cela 927-4602-901.

Je tape ces codes sans mise en forme, le format le faisant au moment de la
validation.

MAIS je souhaite trouver une formule (avec VBA ou non) pour transformer les
9 en 5, jusque là rien de sorcier SAUF que je souhaite ne modifier que les 9
qui se trouvent en position du 8eme caractère dans ma chaîne :

010-2900-927 deviendra 010-2900-527
927-4602-901 deviendra 927-4602-501

Car dans la fonction remplace les autres 9 seront aussi remplacer par un 5
et cela serait catastrophique ! comment limiter cette transformation à la
colonne A, aux cellules qui ont le format spécifié car il y a aussi des noms
de rubrique qui pourraient contenir un 9 mais ces cellules sont au format
texte, et surtout au premier caractères des 3 derniers ?

Je vous remercie d'avance pour votre aide précieuse,

Bien à vous tous,

Pat



Avatar
ChrisV
Bonjour Pat rednef,

=TEXTE(STXT(A1;1;NBCAR(A1)-3)&SUBSTITUE(DROITE(A1;3);9;5);"0##-####-###")


ChrisV


"Pat rednef" a écrit dans le message
de news:
Bonjour aux Excellents contributeurs de ce formidable forum !

Un lourd problème se présente à moi :

J'ai dans la colonne A des références produits au format personnalisé
0##-####-### qui peuvent donc être comme cela : 010-2900-927 ou encore ne
pas
commencer par un zéro comme cela 927-4602-901.

Je tape ces codes sans mise en forme, le format le faisant au moment de la
validation.

MAIS je souhaite trouver une formule (avec VBA ou non) pour transformer
les
9 en 5, jusque là rien de sorcier SAUF que je souhaite ne modifier que les
9
qui se trouvent en position du 8eme caractère dans ma chaîne :

010-2900-927 deviendra 010-2900-527
927-4602-901 deviendra 927-4602-501

Car dans la fonction remplace les autres 9 seront aussi remplacer par un 5
et cela serait catastrophique ! comment limiter cette transformation à la
colonne A, aux cellules qui ont le format spécifié car il y a aussi des
noms
de rubrique qui pourraient contenir un 9 mais ces cellules sont au format
texte, et surtout au premier caractères des 3 derniers ?

Je vous remercie d'avance pour votre aide précieuse,

Bien à vous tous,

Pat



Avatar
Pat rednef
Merci à vous tous,

plusieurs façons, plusieurs réponses et cela marche,

Celle en VBA est particulièrement fiable et ne fait faire qu'une manip,

bravo une fois de plus à vous tous,

pat


Bonjour Pat rednef,

=TEXTE(STXT(A1;1;NBCAR(A1)-3)&SUBSTITUE(DROITE(A1;3);9;5);"0##-####-###")


ChrisV


"Pat rednef" a écrit dans le message
de news:
Bonjour aux Excellents contributeurs de ce formidable forum !

Un lourd problème se présente à moi :

J'ai dans la colonne A des références produits au format personnalisé
0##-####-### qui peuvent donc être comme cela : 010-2900-927 ou encore ne
pas
commencer par un zéro comme cela 927-4602-901.

Je tape ces codes sans mise en forme, le format le faisant au moment de la
validation.

MAIS je souhaite trouver une formule (avec VBA ou non) pour transformer
les
9 en 5, jusque là rien de sorcier SAUF que je souhaite ne modifier que les
9
qui se trouvent en position du 8eme caractère dans ma chaîne :

010-2900-927 deviendra 010-2900-527
927-4602-901 deviendra 927-4602-501

Car dans la fonction remplace les autres 9 seront aussi remplacer par un 5
et cela serait catastrophique ! comment limiter cette transformation à la
colonne A, aux cellules qui ont le format spécifié car il y a aussi des
noms
de rubrique qui pourraient contenir un 9 mais ces cellules sont au format
texte, et surtout au premier caractères des 3 derniers ?

Je vous remercie d'avance pour votre aide précieuse,

Bien à vous tous,

Pat