IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Modifier le format de date à la saxonne [XL-2013]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    chargé d'affaires
    Inscrit en
    Novembre 2017
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : chargé d'affaires
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2017
    Messages : 51
    Par défaut Modifier le format de date à la saxonne
    Bonjour à tous,

    J'ai une fichier pour mes comptes (bancaires) avec plusieurs sheets (moi, ma femme, le compte joint, la feuille "objets" qui est un foure tout de listes et autre).

    La démarche normale est d'ajouter une nouvelle ligne et de la compléter, mais pour les frais récurant, j'ai fait un tableau reprenant le schéma de base sur la feuille "objets".
    Et de ce tableau j'ai un macro qui vient copier la ligne qui va bien où je veux. Jusque là tout va bien.
    Là où ça commence à ne plus aller, c'est que la première cellule est une date calculée et que lorsque je copie la ligne, je suis obligé d'en faire une copie de valeur et non de formule.
    Mais lorsque je fais la copie de valeur, la cellule commence par une apostrophe et lorsque je cherche à la virer via vba, le format de ma cellule bascule en mode date à la Saxon... que je n'arrive pas à remettre en mode "normal".
    Le "format(Date(....." me colle systématiquement la date du jour... serte dans le bon sens, mais ce n'est pas la date du jour qui m'intéresse.

    Malheureusement, à l'instant, je suis incapable de remettre la main sur le fichier sur lequel j'ai la petite macro qui va mal, que j'ai fait hier soir chez moi.

    Quelqu'un aurait il la formule toute prête pour :
    - supprimer le premier caractère de l'ActiveCell : '02/12/2017
    - s'assurer que le format à la sortie du tronquage soit toujours le même et non saxon (12/02/17)

    D'avance merci

    Pierre

  2. #2
    Expert éminent
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Par défaut
    Bonjour !

    - Replace
    - CDate …     (tout étant déjà dans l'aide VBA interne !)

    ___________________________________________________________________________________________________________

         Merci de cliquer sur en bas à droite de chaque message ayant aidé puis sur pour clore cette discussion …

    ___________________________________________________________________________________________________________
    Je suis Paris, Egypte, Nigeria, New-York, Mogadicio, Barcelone, London, Manchester, Stockholm, Istanbul, Berlin, Nice, Bruxelles, Charlie, …

  3. #3
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par bienfp Voir le message
    le format de ma cellule bascule en mode date à la Saxon... que je n'arrive pas à remettre en mode "normal".
    L'enregistreur automatique de macro aurait pu te donner ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range("MaCellule").NumberFormat = "General"
    Le "format(Date(....." me colle systématiquement la date du jour... serte dans le bon sens, mais ce n'est pas la date du jour qui m'intéresse.
    Pourquoi utiliser la fonction "Format" qui transforme ta date en texte ?
    Mieux vaudrait laisser une vraie date et jouer sur le format de cellule avec NumberFormat = "dd/mm/yy".

    - supprimer le premier caractère de l'ActiveCell : '02/12/2017
    Meilleure question : comment faire en sorte qu'il n'apparaisse pas ?
    Car on peut "copier la valeur" en ayant une vraie date comme résultat.
    Je pense que le coupable est la formule se trouvant dans ta cellule source. Mais comme tu ne dis pas de quelle formule il s'agit, difficile d'en dire plus.

  4. #4
    Membre averti
    Homme Profil pro
    chargé d'affaires
    Inscrit en
    Novembre 2017
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : chargé d'affaires
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2017
    Messages : 51
    Par défaut
    Ah, me revoilà.

    Merci pour vos retours, qui je dois l'avouer ne m'ont pas forcément aidé, j'ai essayé d'explorer un peu les propositions sans aboutir !

    Voici la formule qui me sert à calculer la date du prochain "frais automatique".
    =SI(JOUR(AUJOURDHUI())>15;"02/"&SI(MOIS(AUJOURDHUI())=12;"01";MOIS(AUJOURDHUI())+1)&"/"&SI(MOIS(AUJOURDHUI())=12;ANNEE(AUJOURDHUI())+1;ANNEE(AUJOURDHUI()));"02/"&MOIS(AUJOURDHUI())&"/"&ANNEE(AUJOURDHUI()))

    En gros avant le 15 du mois je prends la date 02/mm/yyyy, après le 15 du mois je créé la date 02/mm+1/yyyy (voir yyyy+1 si on est en décembre).
    Bref, à priori ça me donne une date qui va bien, ou plutôt s'affiche comme je le souhaite.
    Je copie colle ma ligne de Ax à Ix sur une autre feuille. Ma formule date est copiée collée en A3 sans problème.

    Mais elle ne peut pas rester sous forme de formule. Il me faut une date DATE, pas une formule.

    ....
    ....
    Je sèche.

    J'ai essayé plein de truc, ... du formatage, du bricolage... je ne pige pas. Ah oui, je tâtonne en vb... bcp !
    D'ailleurs
    (tout étant déjà dans l'aide VBA interne !)
    A part les forums, j'ai jamais ni trop cherché ni trop trouvé l'aide interne.

    Quel est la manipe pour transformer cette belle et longue formule en simple date. Et pas Saxonne ?

    Merci d'avance pour votre aide

    Pierre

  5. #5
    Expert éminent

    Profil pro
    Conseil, Formation, Développement - Indépendant
    Inscrit en
    Février 2010
    Messages
    8 564
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Conseil, Formation, Développement - Indépendant

    Informations forums :
    Inscription : Février 2010
    Messages : 8 564
    Par défaut
    Bonjour

    Ceci serait plus adaptée comme formule
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =FIN.MOIS(AUJOURDHUI();SI(JOUR(AUJOURDHUI())<=15;-1;0))+2
    I suffit que tes cellules de destination soient au format date : si tu colles la valeur (voir PasteSpecial) tu obtiens bien une date.

    Si le format n'est pas positionné avant, cela apparait sous forme numérique mais il suffit de le mettre en date

  6. #6
    Membre averti
    Homme Profil pro
    chargé d'affaires
    Inscrit en
    Novembre 2017
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : chargé d'affaires
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2017
    Messages : 51
    Par défaut
    C'EST BON !!!

    Merci 78Chris ! effectivement ma formule de départ faisait une forme de concaténation que devait être considérée comme du texte, d'où j'imagine l'apostrophe lorsque je ne copiais que la valeur.

    Avec ta formule, je remonte directement une date et la copie de valeur fonctionne tout de suite. Nickel.
    Je n'ai donc plus besoin d'essayer de supprimer quoi que ce soit ou reformater mes cellule. Sachant que A3 était déjà une date avant la copie.

    Merci beaucoup.

    Pierre

  7. #7
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par bienfp Voir le message
    Merci 78Chris ! effectivement ma formule de départ faisait une forme de concaténation que devait être considérée comme du texte, d'où j'imagine l'apostrophe lorsque je ne copiais que la valeur.
    La prochaine fois, pour recomposer une date, utilise la fonction DATE() plutôt qu'une concaténation de texte.
    https://support.office.com/fr-fr/art...rs=fr-FR&ad=FR

  8. #8
    Inactif  

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2012
    Messages
    4 903
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2012
    Messages : 4 903
    Billets dans le blog
    36
    Par défaut
    Citation Envoyé par bienfp Voir le message
    Bonjour à tous,

    - s'assurer que le format à la sortie du tronquage soit toujours le même et non saxon (12/02/17)

    D'avance merci

    Pierre
    Ouais. Sauf que ton expression saxon est archi-fausse. Là, tu parles des Américains. Les Britanniques utilisent le même format que les Français. Les Canadiens (Anglais et Français) sont en train (du moins sur les documents de l'État) de passer du format "britanico-français" au format ISO année-mois-jour. Et maudit que cela va bien pour trier des dates.

  9. #9
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par clementmarcotte Voir le message
    Les Canadiens (Anglais et Français) sont en train (du moins sur les documents de l'État) de passer du format "britanico-français" au format ISO année-mois-jour. Et maudit que cela va bien pour trier des dates.
    L'année étant elle-même, de gauche à droite, décomposable en millénaire-siècle-décénie-année (donc du plus grand au plus petit), le format année-mois-jour est effectivement le plus logique.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 11
    Dernier message: 21/09/2012, 22h00
  2. Modifier des formats de dates.
    Par lilkop dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/09/2010, 18h17
  3. Modifier un format de date
    Par toast.lou dans le forum Développement
    Réponses: 3
    Dernier message: 23/07/2009, 11h50
  4. [AC-2002] modifier le format de date dans une requête
    Par tom@tom dans le forum VBA Access
    Réponses: 1
    Dernier message: 24/06/2009, 09h36
  5. [Question] modifier le format date
    Par budylove dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 05/10/2005, 10h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo