Mise à jour d'un fichier excel

bonjour à tous
j’ai un problème et j’espère que quelqu’un pourra m’aider .
dans le cadre de mon stage je dois effectuer la mise à jour d’un fichier (fichier ressources ) excel qui contient des données sur le matériel (identifiant de PC , de l’écran , nombre de PCs , nombre d’écrans , nom et prénom de l’utilisateur etc…)
il existe une base de donnée qui contient toutes ces infos avec la possibiliter d’exporter sous excel et qui est à jour et je dois me servir de cette base de données pour mettre mon fichier ressources à jour c’est à dire attribuer à chaque personne le nombre de materiel qu’il possède et l’identifiant de ce matériel.
je ne sais pas si je dois utlliser une macro , un programme VBA , ou des requêtes SQL .
si quelqu’un a une idée merci de m’en faire part.
merci d’avance

Si tu as une base de données à jour, quel besoin de doublonner avec un fichier excel ?

Ton export, tu vas le faire sous quel format ?
Format natif excel (.xls) ou compatible, genre .csv ?

Quelle différence fais-tu entre une macro et un programme vba ? j’espère que tu n’envisages pas de faire une macro excel4 au moins ?
Comment fais-tu tes requêtes SQL sans code vba ?
D’un autre côté, faire un export pour ensuite envisager des requêtes SQL, je ne vois pas très bien la logique

Le mieux serait que tu nous montres quelques lignes de ton fichier export pour en voir la forme (données fictives, bien sûr)
et ensuite une copie d’écran du résultat à obtenir avec excel, avec l’emplacement des-dites données

en fait j’ai une base de données oracle qui gère le matériel de toute l’entreprise y compris l’internationale.
je n’extrait que les données dont j’ai besoin , paris en l’occurence et l’export obtenu est au format .xls.
d’un autre côté j’ai un fichier excel qui contient les données sur le personnel ainsi que les infos sur le materiel de ce personnel mais il n’est pas à jour .
je dois donc utiliser la base de données pour mettre à jour automatiquement mon fichier excel et je ne sais pas quel outil utiliser.

Si ta sortie se fait déjà au format xls, ça veut dire que tu vas chercher à mettre à jour une feuille excel par rapport à une autre feuille excel.
Ca ne pose pas de problème, à partir du moment où tu auras identifié un champ (une colonne) qui puisse de te servir de clé, autrement dit qui soit toujours remplie, et jamais en doublon.
Si tu n’en as pas, tu peux t’en créer une temporaire pour l’occasion par concaténation de deux existantes, comme par exemple nom+prénom, ou type PC + localisation.

Ensuite, tu as deux solutions :
La solution VBA : tu balaies la feuille source (celle qui vient de la BdD), tu recherches la clé équivalente dans la feuille cible, et tu fais la mise à jour champ par champ.

La solution Excel pur :
Tu intègres ta feuille source au classeur final
Dans ta feuille de restitution, tu utilises la fonction RechercheV() pour chacune des cellules à renseigner
attention, l’emploi de RechercheV() suppose qu’on respecte absolument les contraintes qui sont données dans l’aide associée

Dans les deux cas, c’est assez simple si

  • toutes les “fiches” existent dans ton programme excel
  • la présentation des données ne change pas entre deux mises à jour (pas d’ajout de colonne)

Difficile d’en dire plus sans avoir le format final sous les yeux

que veux tu dire par "fiches "?


aussi , quand j'exporte les données de la BdD je dois faire un tableau croisé dynamique pour avoir les données synthétiques et c'est à partir de ce tcd que je dois faire la mise à jour je ne sais pas si ca change quelque chose à la facon de programmer !

merci beaucoup pour ton aide

Ce que j’appelle fiche, c’est l’ensemble des données qui correspondent à une personne.
Pour ce qui est du tableau croisé, ça complique un peu les choses, mais dans le principe, ça reste pareil.
Peut être une raison de plus pour utiliser l’option Excel plutôt que le VBA, histoire de rester cohérent de bout en bout