Probleme de format de date

nono59

XLDnaute Nouveau
Bonjour,


J'ai un programme comptable qui permet de copier les écritures dans le presse-papier, quand je les colle manuellement dans une feuille excel, pas de problème, les dates sont au bon format, seulement quand je les colle au moyen d'un code VBA 'Selection.paste' alors là patatrac, toutes les dates sont interprètées au format anglais, enfin quand je dis toutes, non, seules les dates où le jour en première position peut être interprété comme un mois, en fait toutes les dates dont le jour est inférieur ou égal à 12.

Bizarre !!! quelqu'un a t-il une solution ?
 

Abel

XLDnaute Accro
Bonjour nono59, nanard,

Voici un petit souci que je connais bien.

Je n'ai pas su le résoudre autrement que par macro.

Désolé nanard, le formatnumber n'était pas suffisant.

J'avais (j'ai toujours) ce soucis en important des données depuis des fichiers texte.

Voici le code que j'applique. Bien sûr les références de cellule (Range(xxx)) sont à adapter.

Code:
Sub ChangeDate()
    CompteurLigne = Range('a2').End(xlDown).Row
    Range('a2:a' & CompteurLigne).Select
    On Error Resume Next
    For Each c In Selection
        If Left(c, 2) > 12 Then
            Range('a' & c.Row) = CDate(Left(c, 10))
        Else
            Range('a' & c.Row) = Left(c, 10)
        End If
    Next c

End Sub

En espérant que ça te dépanne.

Abel.
 

nono59

XLDnaute Nouveau
Salut Nanard,

En fait, je n'ai pas la main pour mettre ce code car cela arrive quand je fais un paste des données du presse papier. Une fois les données collées, étant donné que seules les dates commencant par un jour inférieur ou égal à 12 sont mises au format anglais, le code NumberFormat ne fait rien,

Merci quand même...
 

Abel

XLDnaute Accro
Re,

En complément de mon dernier message, j'utilise ce code une fois que les données sont importées.

On peut d'ailleur simplifier :

Sub ChangeDate()
For Each c In Range('a2:a'& range('a65536').End(xlup).Row+1)
....


Abel.
 

Abel

XLDnaute Accro
Bonjour nono59, le forum,

Ravi que cela te convienne.

Pour la rapidité, essaie en ajoutant ces deux lignes :

Sub ChangeDate()
Application.ScreenUpdating = False
......
.....
Application.ScreenUpdating = True
End Sub

Cela aura pour effet de 'bloquer' le rafraichissement d'image pendant l'exécution de la macro.


Abel.
 

nono59

XLDnaute Nouveau
Salut Abel, Forum

Oui, je connais cette fonction mais à vrai dire, je l'utilise peu car même s'il est vrai que le gain de temps est évident, ne voyant pas ce qui se passe, on a l'impression d'une plus grande lenteur...

En ce qui concerne un autre sujet, t'y connais tu en gestion d'application externe par Excel. J'essaies de savoir si il existe un code qui permet de savoir si une application externe est ouverte ou non ?
 

Abel

XLDnaute Accro
Re,

Je m'y connais moins dans ce domaine (si tant est que j'y connaisse quelque chose en quelque domaine que ce soit ... Arf !).

Mets un nouveau sujet en ligne pour cette question. Il y a des possibilités que je ne maîtrise pas.

Abel.
 

Statistiques des forums

Discussions
312 545
Messages
2 089 486
Membres
104 181
dernier inscrit
Mateke