VBA Syntaxe

Bonsoir à tous,

Il s'agit en partant d'une date: 01/04/2010 placée en E3

d'obtenir: 01042010 en texte et en E5

mon code initial n'affichait pas le zéro de 01/

je n'arrive pas à Spliter le x(0) sur une seul ligne de code !

ici çà marche, mais sur 2 lignes de format

    Range("e5") = WorksheetFunction.Substitute(Range("e3"), "/", " ")
    x = Split(Range("e5"))
    Range("e5") = Format(x(0), "00")
    Range("e5").NumberFormat = "@"

    Range("e5") = Range("e5") & x(1)
    Range("e5") = Range("e5") & x(2)
    Range("e5") = Range("e5") & Range("e4") 'compteur

Quelle serait la bonne syntaxe sur une seule ligne ?

Amicalement

Claude

salut claude, forum,

Sur une ligne je sais pas, mais en voici une sur 2 lignes :

Range("e5").NumberFormat = "@"
Range("e5") = Replace(Range("e3"), "/", "")

La fonction Replace est l'équivalent VBA de la fonction SUBSTITUE.

Sinon sur une ligne mais en trichant :

Range("e5").NumberFormat = "@": Range("e5") = Replace(Range("e3"), "/", "")

L'astuce est de mettre d'abord la cellule au format texte puis de faire la substitution.

8test-22-copie.xlsm (27.25 Ko)

exact vba-new,

je n'ai même plus besoin du Split

de 7 lignes on passe à 3 lignes

Range("e5") = Replace(Range("e3"), "/", "")
Range("e5").NumberFormat = "@"
Range("e5") = Range("e5") & Range("e4") 'compteur

et même la 2ème ligne pourrait être supprimée si E5 est formatée en Texte

Merci

à+.... Claude

Salut le forum

Une autre méthode

Range("B5").NumberFormat = "00000000"
Range("B5") = Format(Range("B3"), "ddmmyyyy") & Compteur

Mytå

Bonjour Mytå,

ton dernier code ne prend pas le zéro si date = 01/....

avec Range("b5").NumberFormat = "@" , c'est bon

Range("b5").NumberFormat = "@"
Range("B5") = Format(Range("B3"), "ddmmyyyy") & Range("b1") 'Compteur

Bonne journée

Claude

Rechercher des sujets similaires à "vba syntaxe"