Importer des données d'un classeur ext

Bonjour,

Je me permets de vous contacter car j’ai besoin d’une aide sur un document.

Tous les matins, nous imprimons un récapitulatif pour le travail.

Nous saisissons ensuite manuellement ces données dans un suivi.

Une mise à jour permet désormais d’extraire ce récapitulatif en Excel.

Je me suis donc dit : « Bingo, on va pouvoir automatiser la tâche ».

Sauf que le « bingo » devient moins fun car je suis incapable de réaliser cette macro.

Malgré mes recherches sur le net, je n’y arrive pas.

J’ai des bouts de macros d’autres tableaux, ainsi que de mes recherches mais cela ne donne rien, je n’y arrive pas

Ce que je souhaiterais que la macro réalise :

1. Je sélectionne dans une boite de dialogue le récapitulatif au format Excel.

2. La macro ajoute les données à une base de données qui alimente un tableau croisé dynamique

Ca a l’air simple mais là où je bloque c’est que je n’ai besoin que des lignes « 50000088 » et « 30000089 »

De plus, le nombre d’identifiant peut changer (plus ou moins nombreux)…

Enfin, il faut trouver les lignes comportant les infos, puis prendre la quantité qui se trouve sur cette même ligne et en faire le rapprochement avec la région au-dessus

Pouvez-vous m’aider ?

Je vous joins un récapitulatif exemple, le récapitulatif avec en couleur les données qui m'interessent et mon tableau de suivi en exemple avec les infos dont j’ai besoin.

Si je ne suis pas assez clair, redites moi

Merci d’avance à tous,

Excellente journée,

Loïc

6ex-recap-gv.zip (11.52 Ko)
4ex-suivi-gv.xlsx (12.23 Ko)

Bonjour Loïc,

J'ai pas tout compris à ta demande... ^^

Quand tu dis

Une mise à jour permet désormais d’extraire ce récapitulatif en Excel

le récapitulatif il sort au format des fichiers EX.RECAP.GV.xls joints à ton message?

Je sélectionne dans une boite de dialogue le récapitulatif au format Excel

la boîte de dialogue, elle apparaît dans un fichier excel vierge? ou dans le fichier contenant la base de données à alimenter?

La macro ajoute les données...

quelles données? si j'ai bien compris, tu n'as besoin que des lignes concernant les références « 50000088 » et « 30000089 » ?

...à une base de données qui alimente un tableau croisé dynamique

les lignes contenant les références « 50000088 » et « 30000089 » doivent être ajouter à la base de données dans la bonne région?

A quoi ressemble la base de données? Est-elle structurée comme le fichier récap?

Est-ce que les lignes totaux de ton fichier récap (lignes 60 à 69) sont à prendre en compte?

et enfin: pourquoi pas une macro qui automatiserait le fichier Suivi (j'ai pas trop compris s'il interviendrait dans ton projet actuel de macro) ?

Bonjour

merci pour ta réponse

Je vais essayé d'être plus clair :

Le document que j'ai joint nommé "EX.RECAP.GV" est l'extraction provenant de mon logiciel.

Le document "EX.SUIVI.GV" est un exemple du suivi que j'en fais.

Sur "EX.SUIVI.GV" je souhaiterais avoir sur l'onglet "SUIVI GV" un bouton.

Je clique sur ce bouton, une fenêtre s'ouvre dans laquelle je sélectionne mon récap du jour.

La macro se lance et importe dans l'onglet "BDD GV" les données à récupérer.

Le tableau croisé dynamique se met alors à jour.

Fin de la mcro

Ca a l'air si simple comme ca :p

La partie total en bas du récap ne m'interesse pas, il s'agit uniquement des résultats par région pour les deux données : « 50000088 » et « 30000089 »

Suis je plus clair ? :s

Merci encore,

Bonne journée,

Loic

en effet, c'est plus clair...

je reviens vers toi si j'arrive à qqchose ou si je constate que c'est trop compliqué pour moi

Merci à toi pour ton aide !

Au top

Bonne soirée,

Loic

Loïc,

regardes ce que je te propose dans fichier joint.

Bon, mon code est très moche (sauf pour la partie pour choisir le fichier à ouvrir dans une boîte de dialogue que j'ai trouvé sur un forum , merci le web!! ), mes plus plates excuses aux connaisseurs VBA qui me liraient...

mais ça semble fonctionner, jusqu'à un certain point du moins! la macro ne fonctionnera pas si la mise en page de ton fichier récap diffère en quoi que ce soit de ceux que tu as joint à ta demande initiale (ou modifier la macro en conséquence).

Je sais pas s'il peut y avoir bcp de lignes sous chaques lignes Région(ligne 29, 36 et 43 dans ton fichier recap couleur), je suis partie sur une quantité de 4.

Teste tout ça et dis moi si c'est OK.

18ex-suivi-gv.xlsm (26.25 Ko)

Bonjour,

Ca fonctionne au top

EDIT : je viens de voir en lisant la macro que ca ne cherche que les régions alors qu'il peut y en avoir encore plus comme DOM, TOM, Centre...

En fait il faudrait que ca prenne toutes les régions, quelles qu'elles soient. Seules les ...88 et ...89 sont importants en réalité.

Juste une petite question qui me vient mais que je n'ai pas testé.

Est ce que, si il n'y a pas de données ou que la feuille sélectionnée est incorrecte ca arrete la macro ou ca la bug?

Enfin, pour répondre à ta question, il peut y avoir jusqu'a 40 lignes sous les lignes de régions.

Comment puis je modifier la quantité de 4 que tu as mise, est ce que la grande quantité peut être bloquante ?

Un grand merci,

Excellente journée,

Loic

En fait il faudrait que ca prenne toutes les régions, quelles qu'elles soient

tu parles des nouvelles régions administratives ou des anciennes? avec les DOM-TOM aussi donc.

Il devrait être possible de les lister dans un autre onglet de ton fichier suivi, de nommer cette plage et de l'utiliser comme plage de référence pour la recherche (suis-je claire?? )

Est ce que, si il n'y a pas de données ou que la feuille sélectionnée est incorrecte ca arrete la macro ou ca la bug?

La macro va chercher les données à "importer" la feuille nommées Sheet1.
  • Si pas de feuille nommée Sheet1 => bug
  • si les données sont sur une autre feuille que Sheet1 => pas de bug mais les données ne seront pas copiées
De même, les données sont copiées dans le fichier suivi dans la feuille nommée BDD_GV. Si aucune feuille à ce nom => bug

il peut y avoir jusqu'a 40 lignes sous les lignes de régions.

Comment puis je modifier la quantité de 4 que tu as mise

dans le code, là où c'est écrit :
For j = l1 To l1 + 4

, tu remplaces par

For j = l1 To l1 + 40

Je pense pas que la quantité puisse être bloquante mais ça pourra ralentir le temps d'exécution. A tester...

Re

Je fais la modif pour le 4 en 40.

Concernant, le possible bug, comment puis je corriger que si on se trompe de feuille en selectionnant, et qu'il n'y a pas de "feuil1" ca quitte la macro sans bug?

Je voulais egalement savoir ci qu'il en est si il n'y a aucune région ou aucune donnée à importer.

Pour la liste des régions, en toute franchise, j'ai mis "région" dans mon exemple pour "anonymer" le document.

Reellement il s'agit de numéro qui ne peuvent pas être listés car il y en a des centaines et ils changent régulièrement sans le savoir...

Désolé

Merci encore,

Bonne journée,

Loic

Re

Concernant la gestion des erreurs, j'ai testé avec On error go to Action qui doit être placé en début de macro.

En fin de macro, l'action doit être définie.

Par exemple, dans ton code :

Sub ImportRecap()
    Dim objOuvrir As FileDialog
    Dim objFichiers As FileDialogSelectedItems
    Dim x As Long, nblgn As Long
    Dim Wb As Workbook

    'Gestion si erreur d'exécution
    On Error GoTo gestionErreur

    'corps de la procédure
    '[...]

gestionErreur:
'affiche un message d'erreur
    MsgBox "Une erreur est survenue et l'import des données n'a pas pu être effectué."

End Sub

Je met un fichier v2 en PJ, si tu veux faire un test avec une feuille ne contenant pas d'onglet nommé Sheet1 par exemple.

Voilà, j'espère que tu arriveras à finaliser ton fichier comme tu le souhaites.

A+

14ex-suivi-gv-v2.xlsm (25.12 Ko)
Rechercher des sujets similaires à "importer donnees classeur ext"