Format de date classeur partagé

Bonjour à tous ( et toutes)

Mon souci est le suivant.

J'ai un classeur excel que j'utilise avec mes collègue comme main courante. pour ce faire je souhaite le partager.

Sur un classeur test, j'ai mis en partage et suis tombé sur plusieurs problème que j'ai pu régler....

Il m'en reste un qu me laisse pantois...

Je m'explique: lors d'un événement, nous notons sur une ligne d'une feuille les infos, date , ou, qui, quoi

Pour remplir la case date j'ai une macro avec un bouton associé: =maintenant() suivit d'un copié collé de la valeur de la case pour figer la date au moment voulu.

(jusque la tout va bien me direz vous... Oui vous répondrais-je.)

le souci c'est quand je partage cette info ( en cliquant sur enregistrer dans mon document dûment partagé) sur le pc qui donne l'info, la date est au format européen ( jj,mm,aa,hh,mm) et sur les pc qui reçoivent l'info, la date change mystérieusement de format et est transformée en mm, jj,aa,hh,mm (format US quoi) ce quelque soit le pc qui distribue l'info.

Comme j'utilise ensuite la date pour des opérations de filtrage, ça me fout toutes mes macro suivant en l'air....

J'ai vérifié les paramètres régionaux de tous les PC, Tout est en ordre (jj, mm, aa,hh,mm)

J'ai utilisé la =maintenant() et non pas le =now() pour ma macro....

de plus dans le classeur émetteur d'info, la date reste au bon format.....

je sèche grave la

quelqu'un aurait-il une idée?

bonjour,

ayant eu un soucis equivalent je vous conseillerai d'utiliser une formule avec iteration et formule circulaire

voire fichier joint

Cdt

Didier

40suividate.xls (19.50 Ko)

edit .... désolé... erreur

Désolé j'y ai apporté une petite modification en ajoutant la date et l'heure, une option qui me paraissait importante le fichier est dispo

Cdt

Didier

edit : correction erreur de formule corrigée à 12h14.

21suividate.xls (20.00 Ko)

Bonjour,

C'est juste le format qui est changé, ou réellement la date ?

Par exemple le 3 avril devient 4 mars.

Si c'est la date dans ta macro il faut utiliser [A1]=cdate(ta_date)

Et puisque tu le fais par macro pourquoi copier-coller le résultat d'une formule ? Autant faire directement [A1]=cdate(Now()).

Si tu avais déposé un fichier de travail on pourrait aller au-delà de suppositions...

eric

Oui c'est juste le format qui change... la date et l'heure restent les même.

Sans fichier ça n'avancera pas...

eric

ça arrive ça arrive... J'ai du tailler dedant car trop gros et fallait pas que les macro emmerdent trop.....

18developpement.xlsm (120.86 Ko)

Je suis en train de tester la formule avec itération .... et le problème reste le même

car au final dans sur le PC1 (pour l'ex distributeur d'info) la date est formatée correctement, et sur le PC 2 (pour l'exemple le receveur) le format de la date change d'européen en US Si on change le role de chaque PC le sénario reste le même... à devenir cinglé.

Je me suis permis de regarder un peu le fichier et de forcer le format de la date sur les onglets

À essayer sur les postes incriminés pour voir si cela fonctionne

À vous lire

Cdt

Didier

18developpement.xlsm (87.62 Ko)

Merci pour votre rapidité, malheureusement je ne pourrait tester cela qu'à partir de demain, les postes étant occupé par d'autre en ce moment. Je garde ça en réserve et vous rendrait quittance demain.

Voila

Alors tout d'abord Bonjour

J'ai essayé votre document.

Plusieurs points me déroutent...

le premier est que lors de chaque ouverture du document j'ai un message d'alerte qui me signale que le classeur contient une formule circulaire et que cela peut endommager les données.

le second est le format de la date.proposé n'est non plus pas compatible avec la suite de mes macros (je vais voir pour essayer de les adapter.) Car j'ai besoin de la date au format JJ.MM.AA HH:MM et non pas "lundi 16 mars 2015 14:58:19"

J'essaie de forcer le format comme je le souhaite et je vous tient au courant.

Bonjour,

Pour la formule circulaire cela vient du fait que dans la formulation de la date elle se rapporte à elle même pour éviter que les dates suivantes changent en même temps comme bien souvent.

Pour le format des dates je les ai forcé sur la colonne pas sur les cellules. Il suffit de sélectionner la colonne ou les dates gênent et de mettre en format personnalisé pour corriger le bug de mise en forme avec vos macros.

Cdt

Didier

Question bête et stupide , mais si je souhaite intégrer votre formule à une macro associée à un bouton qui exécutera celle-ci dans la cellule selectionnée.

Je pense qu'il faut déclarer la cellule active comme variable et insérer la variable dans la formule ... j'ai pas trop faux?

oula il ni a rien de bete et stupide autant en formule je me debrouille un peu autant en VBA je suis une quiche intersiderale lol

je n'en sais fichtre rien désolé

Bon en bidouillant un peu j'ai réussi a passé outre les petits defaut de cette métode....

donc tout est bon maintenant sur ce sujet... je le classe.

Merci a vous pour vos réponses.

Bonjour,

Je viens de voir ton fichier, un peu tard...

Mais tu peux modifier beaucoup de choses.

Déjà pour tes dates, au lieu de :

    Range("E3").Select
    ActiveCell.FormulaR1C1 = "=NOW()"

    Range("E3").Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

écrit :

Range("E3")=now()

Si ta colonne a le bon format, peu de chance qu'il change.

Et évite tous les .select inutiles qui consomment du temps.

Ex 1 :

    Rows("3:3").Select
    Selection.Insert Shift:=xlDown
' devient :
Rows("3:3").Insert Shift:=xlDown

Ex 2 :

    Range("A3:F3").Select
    With Selection
'devient :
    With Range("A3:F3")

Ex 3 :

   Sheets("Relève").Select
    Range("E1").Copy
    Sheets("Archives").Select
    Range("F3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
' devient 
Sheets("Archives").Range("F3") = Sheets("Relève").Range("E1")

' ou si tu restes sur la même feuille :
Range("F3") = Range("E1")

Ex 4 :

    Range("D8").Select
    ActiveCell.FormulaR1C1 = "PMV Mex Neutre"
' devient
    Range("D8") = "PMV Mex Neutre"

etc

Et pour gagner encore en réactivité, au début de chaque procédure écrivant sur les feuilles ajoute :

application.screenupdating = False

eric

OK merci pour ces précieux conseils...

je vais regarder les select que je peux enlever...

(il est vrai que je passe encore beaucoup par l'enregistreur de macro, du coup je sais pas vraiment quels select sont nécessaire et quels select ne le sont pas mais je vais essayer de les supprimer un à un et je pense que c'est comme ça que j'apprendrai...)


quant à la formule date, je pense continuer avec la formule précédente pour la simple raison que si je copie pas la valeur de la date, celle-ci sera mise à jour et du coup je n'aurai pas ce que je souhaite, à savoir un historique de date.

Bonjour,

Je rentre de vacances.

Range("E3")=now() inscrit directement la date en dur, pas une formule. Elle ne peut plus changer.

eric

OK Merci pour cette info ...

Et merci pour le coup de main afin d'alléger ma programmation... c'est nettement mieux maintenant...

Rechercher des sujets similaires à "format date classeur partage"