Création automatisée de tableaux

Y compris Power BI, Power Query et toute autre question en lien avec Excel
Avatar du membre
fred2406
Membre impliqué
Membre impliqué
Messages : 2'039
Appréciations reçues : 36
Inscrit le : 13 mai 2014
Version d'Excel : O365Pro-2019-2011MAC
Version de Calc : 6.3

Message par fred2406 » 6 janvier 2015, 20:31

a bah ça c'est pas grave il suffira seulement récupérer le nom su fichier et supprimer des caractères avant et après pour avoir la date.... et la version du fichier (A ou B) avec de la manipulation de chaine de caractère.
donc cela repond a ta question :
Comment faire pour obtenir fichierC_jour.xls de façon automatique ? Sans que j'ai besoin de créer ce fichier moi-même et d'exécuter une macro ?
pour ce qui est de lancer un fichier avec le planificateur de tache ne sais pas, mais je pense que cela reste possible



fred
Je ne réponds pas aux M.P. non sollicités.
Ne pas oublier :
:btres:
Fred :O-O:
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 417
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 6 janvier 2015, 21:04

Re,

Effectivement .... si la date se trouve sous une forme ou sous une autre dans le nom du fichier ... cela facilte le traitement ...

mais si le nom ne change pas ...on peut également travailler avec la date de création du fichier pour être sûr de toujours traiter le plus récent ... :wink:
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
j
joreitapo
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 6 janvier 2015
Version d'Excel : 2010 FR

Message par joreitapo » 28 janvier 2015, 09:46

Bonjour,

Mon projet a bien avancé et j'ai décidé de passer en effet par du VBA mais également par du MS Access.
Je récupère les informations utiles dans les différents classeurs excel puis je les incrémente dans une base access.

Je rencontre un soucis (de syntaxe surement) afin d'éviter la création d'entrée en doublon dans la table access.
L'approvisionnement dans la base de données doit être soumis à deux conditions (un nom et une date).
Pour cela j'utilise la méthode suivante:
DCount("*", "[TABLE]", ("[Nom] LIKE '" & oWSht.Cells(i, 1) & "'")) = 0 Then
DCount("*", "[TABLE]", ("[Date] LIKE '" & oWSht.Cells(i, 2) & "'")) = 0 Then
En testant l'existence de l'entrée "Nom" puis l'existence de l'entrée "Date" individuellement, le code passe, mais si j'essaie de réunir les conditions avec "And"... crac!

Quelqu'un saurait-il comment écrire les deux conditions en une fois ?

Merci par avance.
j
joreitapo
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 6 janvier 2015
Version d'Excel : 2010 FR

Message par joreitapo » 28 janvier 2015, 10:57

J'ai finalement contourné le problème...

J'ai créé un champ "ID" dans ma table dans lequel je concatène "Nom" avec "Date", me générant une valeur qui devrait être unique.
J'effectue ensuite ma condition sur cette unique valeur.
L'ID n'est pas très "joli", mais ça a le mérite de marcher...
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 417
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 28 janvier 2015, 13:16

Bonjour,

L'identifiant Unique n'est pas du tout une mauvaise idée comme tu le laisses entendre ... :wink:

Bien au contraire, c'est non seulement une excellente idée ... mais certainement la plus pertinente ... :!: :!: :!:
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
j
joreitapo
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 6 janvier 2015
Version d'Excel : 2010 FR

Message par joreitapo » 30 janvier 2015, 09:19

Bonjour,

Le projet se poursuit (et se termine presque) et je coince sur quelque chose de tout bête:

Mes 2 fichiers sont nommés en fonction de la date de la veille.

Je crée donc une variable me permettant de récupérer la date d'hier de la façon suivante:
Dim date_jour As Date
Dim date_hier As Date
date_hier = date_jour - 1
Mon soucis est que dans un de mes fichiers, le format de la date est du type JJ-MM-AA et dans l'autre fichier du type JJ_MM_AA.
J'ai beau indiqué le format comme suit:
date_jour = Format(Now, "dd-mm-yy")
Il m'affiche la date systématiquement de la façon JJ-MM-AAAA.

Où fais-je erreur ? :(
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 417
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 30 janvier 2015, 09:24

Bonjour,

Concernant les dates ... tu dois faire attention car ce ne sont jamais des dates ... la preuve tu utilises Format ... pour les formatter ..:wink:


Il s'agit de nombres ... et je te conseille dans tes macros d'utiliser DateSerial() pour éviter toutes les confusions possibles ...
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
j
joreitapo
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 6 janvier 2015
Version d'Excel : 2010 FR

Message par joreitapo » 30 janvier 2015, 09:51

Merci pour la réponse.

J'ai donc appliqué la fonction suivante:
date_hier = Format(DateAdd("d", -1, Date), "dd-mm-yy")
Et ça me renvoie encore 29/01/2015 au lieu de mon 29-01-15 attendu.
Avatar du membre
James007
Fanatique d'Excel
Fanatique d'Excel
Messages : 12'007
Appréciations reçues : 417
Inscrit le : 30 août 2014
Version d'Excel : 2007 EN

Message par James007 » 30 janvier 2015, 09:58

joreitapo a écrit :Merci pour la réponse.

J'ai donc appliqué la fonction suivante:
date_hier = Format(DateAdd("d", -1, Date), "dd-mm-yy")
Et ça me renvoie encore 29/01/2015 au lieu de mon 29-01-15 attendu.

:roll:
je te conseille dans tes macros d'utiliser DateSerial()
:roll:
A+

:)

Quand on n’a qu’un marteau, tous les problèmes deviennent des clous…
j
joreitapo
Jeune membre
Jeune membre
Messages : 10
Inscrit le : 6 janvier 2015
Version d'Excel : 2010 FR

Message par joreitapo » 30 janvier 2015, 10:06

Alors je me corrige tout seul.
La fonction me renvoie la date au bon format si je ne déclare pas ma variable "As Date".
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message