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 :

Sous-totalisation via VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Manager de projet (retraité)
    Inscrit en
    Juillet 2010
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Manager de projet (retraité)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 152
    Par défaut Sous-totalisation via VBA
    Bonjour, je suis très perplexe suite au comportement d'Excel 2010 en sous-totalisation.

    Prenons un classeur où la colonne A est en format date (FR) et où la colonne B contient des nombres à totaliser par date.

    Par exemple 3 lignes identiques avec 01/07/2013 en A et 100 en B.
    La sous-totalisation exécutée manuellement retourne : Total 01/07/2013 300, ce qui est exact.

    Avec l'enregistreur de macros je capture ce processus puis exécute cette macro et j'obtiens alors :

    Total 7/1/2013 300, avec la date affichée au format US (?!)

    D'une part la macro enregistrée (et donc le code VBA) ne restitue pas la même chose que l'action manuelle et d'autre part aucun paramètre de la fonction VBA Subtotal ne permet de corriger le format date.

    Est-ce un bug d'Excel ? J'ai cherché sur le web en français et en anglais mais n'ai rien trouvé.

    Qu'en pensez-vous ?

    Bien amicalement.

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour,

    Ajoute une colonne à côté de la colonne date avec la formule :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    =TEXTE(A2;"jj/mm/aaaa")
    à recopier vers le bas. Masque la colonne initiale et fais les sous-totaux avec la colonne de dates texte.

  3. #3
    Membre confirmé
    Homme Profil pro
    Manager de projet (retraité)
    Inscrit en
    Juillet 2010
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Manager de projet (retraité)

    Informations forums :
    Inscription : Juillet 2010
    Messages : 152
    Par défaut
    Merci Daniel pour ta réponse rapide qui me confirme qu'il faut employer une solution de contournement, et la tienne tient la route.

    Entre temps je m'en suis bricolé une basée sur une boucle remplaçant chaque ligne commençant par "Total" (mais pas "Total général") par "Total " + la date de la ligne précédente (qui est au bon format, elle). Ca marche aussi, d'autant que j'ai d'autres choses à y mettre.

    Bizarre que Microsoft n'ait pas été alerté sur ce défaut.

    Encore merci.

  4. #4
    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
    Excel utilise les paramètres régionaux.
    VBA reste obstinément fidèle à la version originale, que ce soit pour les dates, les décimales, les séparateurs, les noms de fonctions, etc.
    Il faut faire avec.

  5. #5
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Septembre 2011
    Messages
    8 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Septembre 2011
    Messages : 8 208
    Par défaut
    Bonjour Menhir,

    Excel utilise les paramètres régionaux.
    VBA reste obstinément fidèle à la version originale, que ce soit pour les dates, les décimales, les séparateurs, les noms de fonctions, etc.
    Il faut faire avec.
    Oui, mais c'est quand même pas fréquent qu'on ne puisse pas retourner ce qu'on veut, sur la feuille Excel ("ils" ont bien ajouté "local:=true" par ci par là...)

Discussions similaires

  1. Réduire une sous-feuille de données via VBA
    Par Fredo67 dans le forum VBA Access
    Réponses: 1
    Dernier message: 06/01/2008, 12h13
  2. Problème sous powerpoint via VBA
    Par seb_de_quimper dans le forum VBA PowerPoint
    Réponses: 3
    Dernier message: 02/04/2007, 14h58
  3. execute une macro via vba sous access
    Par nes dans le forum Access
    Réponses: 4
    Dernier message: 28/03/2006, 23h15
  4. Faire des modifs sur une sheet excel Read Only via VBA
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 15/11/2005, 18h02
  5. Manipulation du carnet d'adresse outlook via VBA Excel?
    Par Dragon Tours dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 05/11/2005, 12h16

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