Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Date en anglais après Transpose

L

Law

Guest
Bonjour le forum,

Dans le classeur ci-joint, je possède 4 feuilles.

Les 3 premières feuilles correspondent à des classes de comptes comptables et contiennent des tableaux qui représentent les différents comptes (205.000, 215.000 etc...)

J'aimerais construire une macro qui, en fonction du n° de mois que je saisi dans l'inputbox, me recense toutes les lignes dont la date est comprise dans ce mois.

Par exemple si je saisi 8 dans l'inputbox, la macro ne doit me recenser que les lignes dont la date est comprise entre le 01/08/2005 et le 31/08/2005.

M'étant inspiré de l'aide précieuse d'Hervé sur ce forum, j'ai commencé à élaborer une macro qui crée un 'tableau virtuel' contenant les lignes et qui, en fin de code, transpose ce tableau sur la 4ème feuille.

Le problème, c'est que lors de cette transposition, le format date change et passe au format 'mm/jj/aaaa'. Si mes observations sont exactes, ceci ne se produit que pour les dates dont le jour est < ou = à 12, pour les autres dates, le format reste 'jj/mm/aaaa'.

Mes 2 questions :

1. Comment faire pour que la méthode transpose conserve TOUTES mes dates au format 'jj/mm/aaaa'.

2. Comment faire pour qu'au regard de chaque ligne que recense ma macro dans la feuille 'Consolidation', dans la colonne A apparaisse le n° du compte ad hoc ?

Merci beaucoup à tous par avance. [file name=ForumXL.zip size=10999]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ForumXL.zip[/file]
 

Pièces jointes

  • ForumXL.zip
    10.7 KB · Affichages: 17
  • ForumXL.zip
    10.7 KB · Affichages: 14
  • ForumXL.zip
    10.7 KB · Affichages: 15

PascalXLD

XLDnaute Barbatruc
Modérateur
Bonjour

Pour ton problème de date je n'ai pas eu de problème chez moi elles passent bien en jj/mm/aaaa

Si le problème persiste chez toi essaies d emodifier cette ligne

tablo(3, X) = .Cells(k, j).Offset(0, 0)

par

tablo(3, X) = CDate(.Cells(k, j).Offset(0, 0))


Sinon je t'ai rajouté la ligne pour prendre le numero de compte

Bonne journée [file name=ForumXL_20050920081147.zip size=10700]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/ForumXL_20050920081147.zip[/file]
 

Pièces jointes

  • ForumXL_20050920081147.zip
    10.4 KB · Affichages: 16
L

Law

Guest
Bonjour le forum,
Bonjour Pascal.

Merci pour ta modif afin que le n° de compte figure dans mes résultats.

Par contre malgré ta modif 'tablo(3, X) = CDate(.Cells(k, j).Offset(0, 0))', rien y fait, chez moi j'ai toujours certaines dates qui se transposent au format mm/jj/aaaa.

Et ce sont pourtant bien des lignes au format date, mais simplement c'est du 'mm/jj/aaaa' ! Pourtant

C'est vraiment très étrange que ça ne le fasse pas partout ?! Sans indiscrétion, tu possèdes quelle version d'Excel ? 2003 comme moi ?

En tout cas ce problème reste en suspens ;
Remerciements renouvelés pour le reste

@+
 

PascalXLD

XLDnaute Barbatruc
Modérateur
Re

Moi je suis sous excel2000

Pour la modif je ne l'avais pas faite dans ta macro je t'ais laissé la faire

Sinon tu peux essayer aussi de faire ceci

tablo(3, X) = Format(CDate(.Cells(k, j).Offset(0, 0)),'dd/mm/yyyy')

Bon courage
 

Law

XLDnaute Junior
RE,

Même avec ta nouvelle proposition que je viens d'intégrer dans mon code, ça ne fonctionne toujours pas.

En fait, je crois que le problème vient d'ailleurs. Je m'explique.
Dans mon fichier joint, si on saisit par exemple 8 dans l'inputbox, dans ma feuille 'Consolidation' j'aurai 3 lignes, dont, à la colonne 'C', 3 dates (en C2, C3 et C4).

- la première est '24/08/2005' (range'C2')... qd je regarde les propriétés de la cellule, dans l'onglet 'nombre', cette cellule est bien au format de type date, cad '*jj/mm/aaaa'. Mais là où ça devient bizarre, c'est que si par exemple en G2 je tape la formule '=droite(C2;4)', j'obtiens '2005' !

- par contre, pour la 2ème et 3ème ligne (ranges 'C3' et 'C4'), les propriétés de la cellule sont strictement les mêmes ('*jj/mm/aaaa'), mais là par contre, si je fais ma formule '=droite(C3;4)' ou '=droite(C4;4)', j'obtiens respectivement '8633' et '8572' (car les dates représentent respectivement '38633' et '38572' au format 'maison' d'Excel).

En bref, suite à la transposition, avec 8 dans mon inputbox, j'obtiens 3 occurences :
1 au format 'jj/mm/aaaa' (youpi !!) mais visiblement pas au format date !
2 au format 'mm/jj/aaaa' (snif !!), et manifestement au format date !

Sacré Excel...

Merci, @+
 

Hervé

XLDnaute Barbatruc
Bonjour law, pascal

avec excel 2002 pas de souci pour le retour de la date ???

law, tu peux peut etre tenter de forcer le format au moment du renvoi de la date sur la feuille consolidation :

En remplacant le transpose par tout ca :


sans garanti de réussite, ne rencontrant pas ton souci.

salut
 

myDearFriend!

XLDnaute Barbatruc
Bonsoir Law, Pascal76, Hervé,

Je suis sous Excel 2003 et je rencontre le même problème que Law...

Cela dit, je me confronte souvent à ce genre de problème lorsque je stocke des valeurs 'Date' dans un tableau (généralement de type 'Variant' dans mon cas) et que je réinjecte le tout - d'une seule traite - dans une autre plage de cellules, du style suivant :
Range(Cells(1, 1), Cells(UBound(TabTemp, 1), UBound(TabTemp, 2))).Value = TabTemp
Le seul moyen efficace que j'ai trouvé pour contourner ce problème, c'est de ne pas utiliser cette pratique dans ce cas et de procéder à la réaffectation des cellules une par une au moyen d'une simple boucle. C'est forcément un peu plus long au traitement, mais c'est efficace...

Aussi Law, tu trouveras ci-joint ton fichier modifié en conséquence pour test. Pour éviter les multiples jeux de boucles et afin d'optimiser le temps de traitement global, j'ai préféré reprendre la procédure dans son ensemble :
Cordialement, [file name=PourLaw.zip size=10442]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/PourLaw.zip[/file]
 

Pièces jointes

  • PourLaw.zip
    10.2 KB · Affichages: 20
L

Law

Guest
Bonsoir tout le monde,

Merci à tous, notamment à Pascal76, Hervé et myDearFriend!

Ca fonctionne avec ta macro et en effet (c'est vraiment sympa d'avoir tout repris !!), c'est un poil plus long lors de l'exécution, mais au moins ça fonctionne parfaitement !

Donc voilà, merci beaucoup à tous.

Et heu... s'il fallait quand même trouver une morale à tout ça, c'est que les dernières versions d'un prog' ne sont pas toujours les meilleures...

@+
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…