VBA: date dans un tableau structuré

Fermé
Tikazor Messages postés 17 Date d'inscription vendredi 17 juillet 2020 Statut Membre Dernière intervention 28 août 2020 - 19 juil. 2020 à 22:44
yg_be Messages postés 22785 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 mai 2024 - 21 juil. 2020 à 09:08
Bonjour,



J'ai mon agenda outlook dans un tableau structuré où j'ai des dates qui défilent sur environ 1000 lignes. Pour faciliter le traitement de données j'ai besoin de faire correspondre mes données à des repères temporels pour cela j'ai rajouté des colonnes (semaines, mois, années).
Dans un premier temps pour me faciliter la tache j'ai choisis d'utiliser les formules no.Semaines(), mois() et année(), mais j'arrive à ma limite de son utilisation car à chaque chargement de l'agenda dans le tableau les colonnes s'effacent.
La duplication de la colonne de base et de modifier la nouvelle colonne à l'aide du format dans le ruban ne m'interesse pas car cela garde la valeur initiale de l'extraction, alors que je souhaite juste obtenir la semaine, mois, et année.
je pourrais et je vais le faire dans un premier temps limiter l'effacement du tableau qu'au colonne liée directement à l'agenda.
Mais j'aimerai savoir s'il y a un code vba lié au "datepart" qui permettrait de faire le même travail que les formules excels sur les colonnes en question?

colonne A(date outlook): 12/03/2020 11:00
colonne B (no.semaine): 11
colonne C (mois): 3
colonne D (année): 2020

merci de votre lecture

7 réponses

yg_be Messages postés 22785 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 mai 2024 1 481
19 juil. 2020 à 22:58
bonjour,
tu ne précises pas quel logiciel tu utilises. de quel genre de tableau structuré s'agit-il? quel est le rôle de Outlook dans tout ceci?
je crois comprendre que tu as mis des formules à un mauvais endroit, et que, du coup, elles sont effacées. il suffit, en effet, soit de les mettre à un meilleur endroit, soit d'éviter de les affacer.
par contre, ta phrase "un code vba lié au "datepart" qui permettrait de faire le même travail que les formules excels" me semble pleine de flou et de mystère.
peux-tu décrire cela de façon précise et concrète? qu'attends-tu du code VBA, en réalité? donne peut-être en exemple concret.
0
Tikazor Messages postés 17 Date d'inscription vendredi 17 juillet 2020 Statut Membre Dernière intervention 28 août 2020
19 juil. 2020 à 23:15
Désolé je n'ai toujours pas les réflexes, je suis sous excel 2010, les tableaux structurés à 2 dimensions, et outlook me sert de base de données.

Je pensais à Datepart car c'est ce que j'ai utilisé pour convertir certaines dates sur des cellules bien spécifique, ici l'idée serait sur une plage de donnée.

Je voulais passer par un code vba, car j'ai cru comprendre que les formules pouvaient avoir une influence sur la lenteur d'un fichier lors d'une execution de Macro. Et depuis que j'ai rajouté ces colonnes c'est ce que j'ai pu observer.

Je joins mon fichier en exemple, c'est encore un brouillon, j'essaye justement de finaliser les derniers ajustements permettant d'éviter bug,, lenteur etc...

le problème demandé se trouve sur la feuille "Agenda"

https://www.cjoint.com/c/JGtvlSKpxA3
0
yg_be Messages postés 22785 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 mai 2024 1 481
20 juil. 2020 à 09:13
qu'essaies-tu de faire avec la formule en J7?
moi je ferais
=ENT([@Date])

il est bien sûr possible d'écrire du code VBA pour mettre les données à jour, par exemple via une macro.
0
Tikazor Messages postés 17 Date d'inscription vendredi 17 juillet 2020 Statut Membre Dernière intervention 28 août 2020
20 juil. 2020 à 14:24
Je voulais en J7 la date simplifiée de la colonne [@Date], au lieu d'avoir 43901,6875 je voulais juste 43901.
Effectivement je n'avais pas pensé à cette formule, mais c'est ce que je voulais en moins de caractère.
Alors je ne sais pas si le VBA est nécessaire ou pas, mais si ça permet d’alléger le fonctionnement du fichier je suis preneur pour les colonne J à M.

D'ailleurs j'ai cette autre problématique où le chargement de mon agenda outlook met des minutes à charger alors qu'avant il prenait juste quelques secondes.
0
yg_be Messages postés 22785 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 mai 2024 1 481
20 juil. 2020 à 15:22
comment se fait ce téléchargement?
0
Tikazor Messages postés 17 Date d'inscription vendredi 17 juillet 2020 Statut Membre Dernière intervention 28 août 2020
20 juil. 2020 à 15:33
via la macro dans la feuille "Agenda"
0
yg_be Messages postés 22785 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 mai 2024 1 481
20 juil. 2020 à 18:23
je n'y vois rien de suspect. as-tu une idée depuis quand cela prend plus de temps?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Tikazor Messages postés 17 Date d'inscription vendredi 17 juillet 2020 Statut Membre Dernière intervention 28 août 2020
20 juil. 2020 à 18:38
J'ai un doute soit au moment où j'ai ajouté la feuille sur le calcul des heures soit au moment ou j'ai ajouté les colonnes de droites à l'agenda ! Je refais d'ici demain le fichier de 0 pour voir
0
yg_be Messages postés 22785 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 mai 2024 1 481
Modifié le 20 juil. 2020 à 18:46
tu n'avais pas mentionné le calcul des heures.
il faut suspendre ce calcul pendant l'importation.

suggestion:
ajouter au début de la fonction d'importation:
Dim savedcalcoption As Variant
savedcalcoption = Application.Calculation
Application.Calculation = xlCalculationManual

et ajouter à la fin:
Application.Calculation = savedcalcoption
0
Tikazor Messages postés 17 Date d'inscription vendredi 17 juillet 2020 Statut Membre Dernière intervention 28 août 2020
20 juil. 2020 à 21:12
Merci yg_be, effectivement je n'ai pas pris(pensé) à cet élément, je test et te fait un retour.
0
Tikazor Messages postés 17 Date d'inscription vendredi 17 juillet 2020 Statut Membre Dernière intervention 28 août 2020
20 juil. 2020 à 22:42
J'ai entré ton code mais le problème s'est représenté. j'ai donc recommencé depuis 0, et au fur et à mesure des différentes étapes j'ai constaté que le code s'exécutait en moins de 20s lancé de la fenêtre VBA, mais plus d'une minute 20 via le bouton...formulaire, j'ai switché sur le bouton active X et le problème est résolu, j'ajouterai le code que tu m'as fourni en prévention de trop de calcul.
Je progresse au fur et à mesure de mes erreurs...
En tout cas merci yg_be de l'assistance, et de me pousser à réfléchir. Je pense que je vais arrêter de te solliciter car après le problème de copier/coller, date et de lenteur résolu mon fichier est terminé....jusqu'au prochain bug!

Bonne soirée
0
yg_be Messages postés 22785 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 14 mai 2024 1 481
21 juil. 2020 à 09:08
tb, peux-tu alors marquer la discussion comme résolue?
0