Convertir 10012017 à 10/01/2017

Bonjour tous le monde, je fais la saisie d'une façon repetitive des dates dans une colonne je cherche a me facilité la tache en trouvant un code vba qui peut convertir un nombre comme 10012017 sous la forme 10/01/2017. Merci pour l'aide

siga

Bonsoir,

Tu peux procéder ainsi (conversion numérique) :

Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Me.Columns("A")) Is Nothing Then
        If IsNumeric(Target.Value) And Target.Value > 1000000 Then
            Application.EnableEvents = False
            Target = DateSerial(Target Mod 10000, (Target \ 10000) Mod 100, Target \ 1000000)
            Application.EnableEvents = True
        End If
    End If
End Sub

Ici, les nombres à partir de 7 chiffres (dans la colonne A) sont convertis en dates. A adapter.

Cordialement.

Salut;

MFerrand

je suis reconnaissant à votre contribution pour résoudre mon problème

Cordialement

siga

bonsoir M ferrand

peux tu m'expliquer ce miracle de vba

en formule j'ai :

DATE(MOD(A2*1;10000);ENT(MOD(A2*1/10000;100));ENT(A2*1/1000000))

qui ne marche qu'avec la presence de ENT

en vba >>>plus besoin ? ( et je n'ai pas vu de dim qque chose qui arrangerait l' operation )

merci

Salut Tulipe !

C'est normal que tu utilises ENT en formule !

En VBA j'utilise les opérateurs Mod et \

\ renvoie le quotient entier. On pourrait utiliser Int mais c'est plus court...

Ceci dit, l'opérateur Mod (et \ qui fonctionne dans les même conditions) n'est pas du tout équivalent à la fonction MOD d'Excel.

Il faut éviter de l'utiliser avec des décimaux et aussi des nombres négatifs sous peine de surprises !!! Il y en a qui en ont régulièrement [J'en ai eu en son temps et j'ai assimilé la leçon ] On ne s'en rend pas compte tout de suite car ça ne provoque pas d'erreur...

Cordialement.

tres bien et merci

c'est le genre de syntaxe que j'emploierai d'ici 15 ou 20 ans en memoire de toi ; quand les formules seront supprimées de excel ce qui m'obligera a changer le fusil d'epaule

bonne journée (je crois)

C'est pour la prochaine journée ! Il est 2h00...

Bonjour;

je fais la suivis des frais de soins dans une entreprise, dans ce tableaux je fais la saisie des dates de façon repetitive, j'ais reçus de votre part un code vba qui converti un nombre sous la forme de 01012017 en 01-01-2017. je vient de l'appliquer mais sa n'a pas marché.

Prière je vous transmet mon fichier pour 'aide. encore une fois merci pour l'effort que vous fournis.

les colonnes concernées sont: B, C, I

cordialement sida

Edit dan : sujet fusionné avec l'ancien. Merci de rester sur le même fil lorsque votre demande n'a pas été solutionnée

33siga-1.xlsx (8.67 Ko)

Bonjour,

A tester...

Cdlt.

33siga-1.xlsm (21.57 Ko)

Salut

je vous remercie ami Jean-Eric ça marche très bien; tu m'as énormément aidé. cest magique vba

Cordialement

Siga

Rechercher des sujets similaires à "convertir 10012017 2017"