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

Conception Discussion :

Décalage de 2h entre les dates de ma liste SharePoint et celles de mon Excel


Sujet :

Conception

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2019
    Messages : 107
    Points : 52
    Points
    52
    Par défaut Décalage de 2h entre les dates de ma liste SharePoint et celles de mon Excel
    Bonjour à tous,

    J'ai un classeur excel sur lequel je fais une requête vers une liste SharePoint, cette liste SharePoint est elle-même liée à une application de formulaire,

    Sur cette liste SharePoint je récupère les différents champs de formulaire, l'un des ces champs est "date heure" que je place dans la colonne du même nom dans la liste,

    Cette colonne est à ne pas confondre avec la colonne "Crée" de SharePoint qui est automatique.

    Le problème que j'ai est que les valeurs "date heure" dans la requête du classeur excel vers la liste SharePoint ont 2h d'avance sur celles de la liste SharePoint :

    Nom : dateheure_excel.png
Affichages : 1653
Taille : 4,0 Ko

    Nom : dateheure_sharept.png
Affichages : 1662
Taille : 5,3 Ko

    Pourriez-vous m'expliquer pourquoi on observe ce décalage ou m'indiquer une solution de contournement pour ajouter 2h aux valeurs de la requête ?

    Merci

  2. #2
    Expert éminent sénior 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
    Points : 32 866
    Points
    32 866
    Par défaut
    Les cellules du classeur Excel ne contiendraient-elles pas une formule ?
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2019
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Non, elles ne contiennent pas de formules, la feuille est vierge à la base, j'y insère juste la requête qui me créé le tableau croisé dynamique automatiquement.

  4. #4
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Salut.

    Les données de type DateTime sont stockées dans SharePoint en UTC. Il faut donc adapter un décalage pour les récupérer en local, si ton système n'est pas calé sur le fuseau horaire UTC.

    Si tu utilises PowerQuery, tu peux utiliser les fonctions DateTime pour convertir un moment UTC en moment local. Ces fonctions gèrent bien entendu le décalage hiver/été.

    Voici un exemple:


    Au départ, une liste SharePoint avec une date "été" et une date "hiver", toutes les deux à 16:00

    Nom : 2020-09-14_190213.png
Affichages : 1660
Taille : 5,0 Ko


    On récupère la liste en PowerQuery, et l'on remarque deux choses: La colonne n'est pas au format datetime et il y a un décalage de 1H pour Hiver et de 2H pour Eté.

    Nom : 2020-09-14_190805.png
Affichages : 1632
Taille : 7,8 Ko


    On transforme la colonne au type DateTimeZone pour avoir l'UTC. Ce sont les mêmes heures mais on va pouvoir opérer un décalage selon le fuseau local du pc.

    Nom : 2020-09-14_190304.png
Affichages : 1683
Taille : 17,1 Ko

    Nom : 2020-09-14_190319.png
Affichages : 1618
Taille : 2,4 Ko


    On peut alors opérer un décalage en ajoutant une colonne formulée qui utilise DateTimeZone.ToLocal. On observe que le résultat renvoie bien 16:00 pour les deux lignes.

    Nom : 2020-09-14_190356.png
Affichages : 1635
Taille : 44,8 Ko

    Nom : 2020-09-14_190405.png
Affichages : 1610
Taille : 7,0 Ko



    On récupère alors le résultat dans Excel (Ici, j'ai laissé la colonne Test mais tu peux évidemment la supprimer dans PowerQuery)

    Nom : 2020-09-14_190452.png
Affichages : 1615
Taille : 3,0 Ko



    Tu peux bien entendu te passer de PowerQuery et utiliser une formule Excel, sachant que la bascule été/hiver s'effectue toujours les derniers dimanches de mars et d'octobre. Voici une formule qui réalise cela pour la cellule A1.

    =SI(ET(A2>=(DATE(ANNEE(A2);3;31)+2/24)-MOD(JOURSEM(DATE(ANNEE(A2);3;31);2);7);A2<(DATE(ANNEE(A2);10;31)+3/24)-MOD(JOURSEM(DATE(ANNEE(A2);10;31);2);7));A2+2/24;A2+1/24)

    Nom : 2020-09-14_212534.png
Affichages : 1634
Taille : 15,3 Ko



    On pourrait aussi réaliser l'import en VBA et recalculer l'heure au moment de l'import, soit en utilisant grosso modo la même technique que la formule Excel (figée sur notre fuseau horaire), soit en utilisant les api windows.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  5. #5
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2019
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Merci pour ta réponse très complète Pierre

    Y aurait-t-il moyen de modifier la date directement dans la requête et de ne pas avoir à créer une seconde colonne ?

    J'utilise l'outil de requête de Excel en allant dans Obtenir des données > a partir d'autres sources > a partir d'une liste SharePoint

  6. #6
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Citation Envoyé par js777 Voir le message
    Merci pour ta réponse très complète Pierre [...]
    Avec plaisir...

    Avec l'outil d'importation que tu utilises, je pense que ce n'est pas possible, sans Power Query ou VBA.

    Avec PowerQuery, comme je l'ai mentionné dans ma précédente réponse, tu peux supprimer la colonne supplémentaire avant de renvoyer tes données dans Excel. Si tu as une version 2010 ou plus récente, je te conseille d'aller voir du côté de Power Query qui offre un outil de préparation de données puissant. Cela demande une prise en mains, mais les efforts d'apprentissage de l'outil sont payés au centuple.
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  7. #7
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2019
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    La solution en VBA permet-elle d'afficher les dates corrigées dans le tableau dynamique généré par la requête ?

  8. #8
    Responsable
    Office & Excel


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 122
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 122
    Points : 55 924
    Points
    55 924
    Billets dans le blog
    131
    Par défaut
    Vu ce que tu me dis de la façon dont tu récupères tes données, tu utilises PowerQuery (peut-être sans le savoir)

    Nom : 2020-09-15_141240.png
Affichages : 1635
Taille : 157,4 Ko

    il te suffit donc, lorsque tu as choisi ta liste, de choisir l'option Transformer les données pour "entrer" dans PowerQuery et appliquer la solution que je t'ai fournie dans ma première réponse...

    Nom : 2020-09-15_141745.png
Affichages : 1642
Taille : 126,9 Ko
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  9. #9
    Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2019
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2019
    Messages : 107
    Points : 52
    Points
    52
    Par défaut
    Ahah quel idiot !

    Tu as bien fait d'insister ça fonctionne parfaitement !

    Merci

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

Discussions similaires

  1. [XL-2010] Calcul entre les dates
    Par Laryysa56 dans le forum Excel
    Réponses: 4
    Dernier message: 02/09/2015, 16h25
  2. Espace entre les mots d'une liste
    Par mimimoni dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 29/10/2010, 19h29
  3. [AC-2007] Calculer écart entre les dates de deux enregistrements successifs.
    Par tAKAmAkA dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 14/10/2010, 16h27
  4. [V6] Nb de jours entre les dates d'une même colonne ?
    Par blackhole dans le forum Deski
    Réponses: 4
    Dernier message: 07/07/2010, 12h10
  5. Réponses: 6
    Dernier message: 18/05/2009, 09h15

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