Reconnaissance du format date

bibiphoqie

XLDnaute Nouveau
Bonjour,

J'ai un problème au niveau de dates; lorsque j'importe dans une cellule d'Excel une date (type "11/08") depuis un document Word, Excel ne reconnait pas que le format de la cellule est un format de date. Mon problème est donc que lorsque je veux créer un graphique qui contient ces cellules, le graphique est faussé.

J'ai ramarqué bizaremment que si je double clique sur le cellule importée dans Excel, le logiciel reconnait alors le format de la date et ajoute même automatiquement l'année en cours (càd "11/08/07").

Pourriez vous me dire ce que je dois faire pour ne pas avoir à double cliquer sur les cases à chaque fois??

Merci beaucoup.:)
 

bibiphoqie

XLDnaute Nouveau
Re : Reconnaissance du format date

En fait j'importe ma date à partir de la macro suivante:

Dim WordDoc As Word.Document
Dim WordApp As Word.Application
Dim a As String


Set WordApp = New Word.Application
WordApp.Visible = False
Set WordDoc = WordApp.Documents.Open(MonDocWord, ReadOnly:=True)


With WordApp
.Selection.WholeStory
.Selection.Copy
End With

ActiveSheet.Paste
WordApp.Application.Quit

C'est à dire que j'importe toute une page Word et que je réalise mon graphique en sélectionnant la plage de dates dans Excel qui se trouve toujours en B10:H10 (mais encore faut-il qu'il reconnaisse que ce sont des dates)

Est-ce que cela vous aide?
 

Catrice

XLDnaute Barbatruc
Re : Reconnaissance du format date

Re,

Essaye en remplacant : ActiveSheet.Paste
Par : ActiveSheet.PasteSpecial Format:="Texte"

Il sera toutefois peut etre preferable de retraiter les données dans la feuille Excel car il semble que par macro les dates soient traitées au format anglais.
10/5 donne 5-oct (alors qu'on récupere 10-Mai manuellement ....)
 
Dernière édition:

bibiphoqie

XLDnaute Nouveau
Re : Reconnaissance du format date

Merci Catrice pour ton idée.
Le problème c'est que les dates étaient dans un tableau sous Word et que en faisant un PasteSpecial cela me regroupe toutes mes dates dans une seule cellule dans Excel. Bref ça modifie un peu tout...:(

En fait quand j'importe tout mon document Word, je le fais sur le 2ème onglet de mon classeur Excel et ensuite j'ai une autre macro qui colle la plage de dates dans le 1er onglet de mon classeur.
Est-ce qu'il y a un moyen de spécifier à ce moment là dans la macro que ces cellules sont bien des dates??

Merci encore.
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Reconnaissance du format date

Re

il faudrait une fois ta collage fait faire un truc du genre

for each cell in range("B10:H10")
cell=cdate(cell)
next cell

le problème c'est que j'ai ffait un tableau word avec des dates et en le copiant sous excel moi il voit bien des dates

Tu as quelle version ?
 

bibiphoqie

XLDnaute Nouveau
Re : Reconnaissance du format date

J'ai la version 2000 et il faut savoir que le tableau est assez complexe (c'est un petit tableau inclut dans un plus grand tableau). Je ne sais pas si c'en est la cause.
En tout cas je regarde avec le cell=cdate(cell) si ça marche.
 

bibiphoqie

XLDnaute Nouveau
Re : Reconnaissance du format date

Voilà mes fichiers.

Il faut rentrer le bon chemin où le document Word est enregistré dans la cellule A1 de l'onglet 1.
J'importe alors le fichier Word dans le 2ème onglet à l'aide du bouton de commande. On voit alors dans les cellules G24:R25 que Excel ne reconnait les dates que lorsque l'on double clique dessus...
Une fois que j'aurai le bon format, j'importerai les dates dans le 1er onglet et je pourrai générer mon graphique.

Si vous avez tout compris, j'espère que vous saurez m'aider.

Merci.
 

Pièces jointes

  • DocWord.zip
    8.5 KB · Affichages: 42
  • DocWord.zip
    8.5 KB · Affichages: 39
  • DocWord.zip
    8.5 KB · Affichages: 41
  • Reconnaissance Dates.xls
    33.5 KB · Affichages: 74

PascalXLD

XLDnaute Barbatruc
Modérateur
Re : Reconnaissance du format date

Re

En modifiant la fin de ta macro ainsi c'est bon

Code:
    ActiveSheet.Paste

    WordApp.Application.Quit
    Application.CutCopyMode = False
    
For Each cell In Range("A1:" & Range("A1").SpecialCells(xlCellTypeLastCell).Address)
On Error Resume Next
    If cell.Value Like "??/??" Then  cell.Value = DateSerial(Year(Date), Right(cell, 2), Left(cell, 2))
On Error GoTo 0
Next


    Sheets("Feuil1").Select
Mais il faudra voir pour l'année car pour l'instant je recupère l'année de la date du jour mais à voir si c'est toujours le cas
 

Discussions similaires

Réponses
2
Affichages
305
Réponses
2
Affichages
245

Statistiques des forums

Discussions
312 206
Messages
2 086 217
Membres
103 158
dernier inscrit
laufin