Remplacer les 4 derniers chiffres par 4 zéros

F

François

Guest
Bonjour à tous.

Pourriez-vous m'indiquer la méthode à suivre pour remplacer les 4 derniers chiffres d'un numéro par 4 zéros.

Je m'explique : j'ai des nombre sur 8 caractères, les 4 premiers sont identiques, seuls les 4 derniers s'incrémentent.

départ / résultat souhaité
64110001 / 64110000
64110002 / 64110000
64110003 / 64110000
etc...

64130001 / 64130000
64130002 / 64130000
64130003 / 64130000
etc

64170001 / 64170000
64170002 / 64170000
64170003 / 64170000
etc

Merci par avance pour votre aide.
 
W

WILFRIED

Guest
Re-

Par macro :

Si toute tes cellule sont dans la même colonne et contigüe :

dim m_cellule as range
'selection de la plage
range("A65536").select
range("A2",activecell.end(xlup).select
for each m_cellule in selection
m_cellule.formula=left(m_cellule.value,4)&0000
next m_cellule

voila.
si VBA te mets un seul 0 :
m_cellule.formula=cdbl(left(m_cellule.value,4)&"0000"

A+ Wilfried ;op
 
F

François

Guest
Merci Wilfried,

Une petite question complémentaire : comment faire pour ne remplacer QUE certains comptes (ex 6411, 6413) et pas les autres (ex 512, 6412).

J'ai joint un petit fichier exemple.
 

Pièces jointes

  • remplacervaleur.zip
    7.9 KB · Affichages: 46
  • remplacervaleur.zip
    7.9 KB · Affichages: 41
  • remplacervaleur.zip
    7.9 KB · Affichages: 40
W

WILFRIED

Guest
RE-

Si il existe une corélation entre toutes les données tu peut utiliser un if then

ex : si tu ne veux pas modifier les valeur commencant par 5 :


dim m_cellule as range
'selection de la plage
range("A65536").select
range("A2",activecell.end(xlup).select
for each m_cellule in selection
if left(m_cellule.value,1)<>5 then
m_cellule.formula=left(m_cellule.value,4)&0000
end if
next m_cellule

ou celle contenant 12 en troisième et 4° position :

dim m_cellule as range
'selection de la plage
range("A65536").select
range("A2",activecell.end(xlup).select
for each m_cellule in selection
if mid(m_cellule.value,2,4)<>12 then
m_cellule.formula=left(m_cellule.value,4)&0000
end if
next m_cellule

ETC..

A+ wilfried ;op
 

Discussions similaires

Statistiques des forums

Discussions
312 555
Messages
2 089 547
Membres
104 208
dernier inscrit
laura29180