Aide pour une macro (base de donnee immense)

onjour,

J'ai besoin d'aide pour me faire une macro. Normalement je me débrouille mais la je ne sais pas trop ou commencer ....

Je vous joint en piece jointe un fichier. J'ai besoin d'une macro et je ne sais pas trop comment faire. Voici la base

J'extrais d'un programme pour 1 mois environ 80 000 données par item (J'ai le 2007)

Je copie des données d.un autre programme et sa me donne 3 ligne( Ladate+l'heure-Mon résultats-un ligne avec le chiffre 262336(toujours la meme chose)) et dans la premiere ligne il met le nom d'appareil.

Je rajouter une ligne entre l'heure et la date afin de séparer les deux pour faire une recherche(pas de prob pour faire sa) et je laisse toujours une ligne entre 2 appareils. Cependant j'ai parfois différent appareil et il ne sont pas toujours dans le même ordre sur ma feuille excel.

Voici ce que j'aurais besoin.

Je met des données dans la base de donnée vierge ex: postex-postey-poste w(J'en aurai au total autour de 20). En un clique je voudrais que les données nouvellement entré (de la base de donnée) du postex s'ajoute au données déjà présente de la feuille postex. S'il n'y a pa de feuille j'aurais besoin que celle-ci soit créer.

à la fin je veux effacer la banque de donnée et conserver les données dans le poste x.

Autre chose, de facultatif, je voudrais que si on ajoute une donnée dans la feuille poste x et qu'il y a déjà une meme donnée pour une meme date et une meme heure.

La donnée soit effacée.

OUF....

Je ne sais pas si qq peut m'aider mais se serait réellement apprécier !

PS: J'aurais également la possibilié d'avoir les 3 collonnes de chaque appareil dans une seule collone, le titre séparerait chaque série de donnée voir exemple en ligne O à R , mais je pense que ce serait encore plus compliqué de traiter les données de cette manière...

91exemple.xlsx (13.24 Ko)

bonjour

1/

réflexe pour les grosses quantités de données, prendre Access (ou un autre SGBD) à la place d'Excel

c'est l'opinion de Microsoft créateur d'Excel

2/

sais-tu faire ce que tu décris à la main, sans automatisme ?

si oui, essaye l'enregistreur de macro. Il fait des miracles

3/

utilise toutes les fonctions du menu Données d'Excel : on les sous utilise trop souvent

courage

bgrvfe

Bonjour à tous,

Je ne sais pas ce que ça donnerait sur 80000 données mais voici une solution, qui restera à adapter :

Cliquer sur le bouton "Tout faire !"

NB : Cette macro ne marchera pas sur excel < 2007 car elle utilise la fonction de suppression des doublons d'excel 2007 et supérieur.

Bonjour à tous,

J'ai répondu à 75% de la question , car pour les doublons , s'agit-il de doublons lignes complete ou d'une portion de la ligne.

Voici l'avancement de ma proposition , mais risque de devenir lourd si trop de données , a voir.

une autre possibilité est de tous traiter dans des fichiers texte

Bonjour Misterno,

Comme l'a dit lisa_marie pour les doublons :

lisa_mariegilbert a écrit :

Autre chose, de facultatif, je voudrais que si on ajoute une donnée dans la feuille poste x et qu'il y a déjà une meme donnée pour une meme date et une meme heure.

La donnée soit effacée.

Wow Merci a tous pour votre aide !!!

Je recours encore a vous pour une demande spéciale .

Je dois à chaque fois qu'il y a un titre de colonne, ajouter une colonne a droite de la première collone puis convertir toutes la colonne se trouvant sous le nom de l'appareil (PS sa ne doit pas inclure le nom car il y a des espaces et on doit séparer les données par espace, donc on sépare le nom si on ne fait pas sa). (J'ai joint un nouvel exemple)

J'aimerais également avoir un exemple pour chaque nom d'appareil que je vais avoir je vais devoir faire un tri. Soit retirer les cellules plus grande ou plus petite que ... les chiffres vont variés selon chaque nom de l'appareil.

Merci d'avance pour votre aide !!!!

70exemple.xlsx (12.77 Ko)
lisa_mariegilbert a écrit :

Je dois à chaque fois qu'il y a un titre de colonne, ajouter une colonne a droite de la première collone puis convertir toutes la colonne se trouvant sous le nom de l'appareil (PS sa ne doit pas inclure le nom car il y a des espaces et on doit séparer les données par espace, donc on sépare le nom si on ne fait pas sa). (J'ai joint un nouvel exemple)

Tu peux donner un exemple concret et le résultat de ce que tu souhaites obtenir ? Car là, je ne comprends ce qu'il faut convertir. Et que faut-il mettre dans la colonne ajoutée ?...
lisa_mariegilbert a écrit :

J'aimerais également avoir un exemple pour chaque nom d'appareil que je vais avoir je vais devoir faire un tri. Soit retirer les cellules plus grande ou plus petite que ... les chiffres vont variés selon chaque nom de l'appareil.

Encore une fois, donne un exemple pour que ça soit plus clair.

Bonjour,

Oui dsl je me suis p-e trop perdu dans les details de ma premiere explication .

Alors pour chaque appareil j'ai 3 collone. La premiere est une date + des minutes.Je dois séparer la première collone pour avoir date d'un coté et minute de l'autre. POur ce faire j'utilise l'outil de conversion et je sépare à chaque espace. Sa me permet d'avoir 2 collones une avec les minutes et une avec les dates.

Pour ce faire normalement j'ajoute une ligne a coté de la collone de date + minute et après je fais une conversion et ma nouvelle ligne intègre les minutes et mon autre ligne , celle initiale, devient uniquement la date. (Tu peux voir le résultats finals sur le premier fichier) (prendre note que la ligne 1 ne doit pas etre selectionner sinon on sépare le nom de l'appareil)

Je dois le faire pour chaque appareil qui sera sur la feuille. Le nom de chaque appareil est dans la ligne 1 de la première collone.(prendre note que la ligne 1 ne doit pas etre selectionner sinon on sépare le nom de l'appareil)

-- 15 Juil 2011, 10:14 --

Pour le tri.

DAns chaque feuille qui a été créer.

mettons qu'on prend le poste x. Alors je voudrais que pour le poste x les données plus grande que 20 et plus petite que 0 soit éliminés. Mais pas seulement le résultats, la ligne complète contenant cette information.

Alors que pour le poste a (qui n'est pas sur cette feuille), par exemple comme cet un appareil est différent j'aurais besoin que les données plus petite que 35 et plus grande que 55 soit éliminé. Tout comme cité plus haut c ne doit pas être seulement le résultats qui doivent être éliminés, mais la ligne complète contenant cette information.

Ce qui serait le mieux ce serait une feuille sommaire que je pourrais compléter au besoin et la macro irait y chercher son information et supprimerait pour chaque poste approprié les valeurs qui ne serait pas comprises entre la valeur minimum et maximum.

3 collone

nom du poste Val min Val max

-- 15 Juil 2011, 21:39 --

PS: j'oubliais les noms de mes appareil ne comprendront pas toujours le mot poste.... il seront tous tres différent

Bonjour lisa_mariegilbert,

Là c'est parfaitement clair !

Je reviens plus tard avec une solution.

-- 16 Juil 2011 11:06 --

Une petite question : est-ce que sur la feuille sommaire qui regroupera le nom des postes et les valeurs min et max, les noms des postes doivent-ils être extraits de la base de données ? Ou bien ces noms de postes existent déjà ?

Bonjour !

EN y pensant bien, il serait bien que tous les titres de la feuille soit récapitulé en un endroit, mais je ne veux pas que la macro aille chercher cette valeur pour le min et max.JE voudrais que toutes les valeurs de la feuille s'affiche par exemple Dans une sixième collone de la feuille.

Je m'en servirai par la suite pour remplir mes maximums et minimums et pour faire des raccourcis sur les feuilles.»:

collone 1 : titre que je vais écrire d'après la collone 6 (pour être sur de ne pas en oublier de rentrer des min ou des maxs et surtout il se peut que j<entre des donnees d avance sur des feuilles qui n<existerons pas encore voila donc pourquoi je prefere ne pas lier directement a tous les noms de feuilles presentes)

Collone 2 : min

Collone 3 : max

Collone 6 : des tous les noms des feuilles présentes sur la feuilles

Merci !!!!

Bonjour,

A tester :

Pour extraire les données de la base de données sur les différentes feuilles, cliquer sur le bouton de la feuille "Base de donnée".

Pour faire le filtre sur les min et max de chaque poste, cliquer sur le bouton 'Filtrer' de la feuille "Sommaire".

Attention, il est important que le nom du poste ne dépasse pas 31 caractères car tu ne pourras pas donner de nom à la feuille.

Super !!!!

Merci !

VOici la suite et apres mes calculs seront termine je ne sais comment te remercier !!!!

alors voila sous WQ-L933 POSTE3 PV SIG-- j, ai ajouter une ligne qui additione lheure et les minutes. grace a sa je vais chercher sous la feuillle resultats de bobine le no de bobine avec une fonction recherche v, puis je dois faire un sous totaux de le collone c par numero de bobine( une moyenne) et pour etre capable dutiliser les donnees ils doivent devenir des valeurs... car avec un simple sous totaux on ne peut pas juste copier coller.

je tai mis un exemple WQ-L933 POSTE3 PV SIG et des nouvelles donnes dans la base de donnees pour avoir au moins 2 bobines. (ps je n<ai pas fait le sous-totaux)

PS: il semble y avoir un accrochage avec la donne extraire les donnee avec les valeurs que jai entrer....

Encore une fois un gros merci !

-- 17 Juil 2011, 09:12 --

le fichier ....

Une question principale : que dois-je faire ??! Je n'ai pas compris ce que tu souhaites...

De plus, où et comment exactement fais-tu le sous-total ?

Rebonjour !

Dsl pour le manque de détails je suis tellement énervée !!!

Alors voilà

J'ai mis 2 nouvelles feuilles sous le nom wq-L933 poste PC-SIG

Je t'ai mis des détails dans le fichier mais je te remet ici

1. Ajouter une collone dans tous les équipements. Collone B+A

2. Ajouter une collone dans tous les équipeemnts. fonction recherchev ( on recherche par rapport a la collone E, le chiffre qui est le plus près dans la collone A de la feuille test de bobine et on renvoie la collone B de la feuille test de bobine)

3. (Voir feuille 2 wq-L933 poste PC-SIG) faire un sous totaux--- Faire la moyenne de la collone C a chaque changement dans la collone F.

4. Copier Coller ces données dans un autre fichier grace a la fonction atteindre- cellule visible seulement

(Le nouveau fichier doit contenir une feuille sommaire ou on retrouvera le nom de tous les équipements présents et il devra y avoir une feuille pour chaque équipement- même genre que précédement s'il n'y a pas de feuille on le créer sinon on ajouter les données a la suite. On supprimme les doublons)

5. Voir le deuxieme fichier pour le reste des details

Voila j'espere que c'est plus clair !!

-- 18 Juil 2011, 16:32 --

deuxieme fichier !!!

Bonjour lisa_marie,

Quand tu dis :

lisa_mariegilbert a écrit :

4. Copier Coller ces données dans un autre fichier

Ce sera toujours le même fichier ? Et où se trouvera-t-il, dans le même répertoire que le fichier contenant la base de données ?

Non un autre fichier ce serait vraiment un autre fichier car sinon je pense que le fichier sera trop lourd pour contenir le tout, (c pourquoi je t<ai envoyer un ature fichier qui s<appelait exemple)

-- 19 Juil 2011, 07:17 --

ah et oui je vais m organiser pour que les 2 fichiers soit toujours ensemble

dans le meme repertoire lorsque jexecuterai la macro

-- 19 Juil 2011, 07:25 --

PS: peut tu jeter un coup d<oeil dans la base de donner jai ajouter des donnees et la macro ne fonctionne pas je ne sais pas pourquoi

lisa_mariegilbert a écrit :

Non un autre fichier ce serait vraiment un autre fichier

En fait je demandais si cet autre fichier resterait le même ou bien à chaque fois que tu lances ta macro ça crée un nouveau fichier à chaque fois ?

Mais je crois que j'ai ma réponse :

lisa_mariegilbert a écrit :

ah et oui je vais m organiser pour que les 2 fichiers soit toujours ensemble

lisa_mariegilbert a écrit :

PS: peut tu jeter un coup d<oeil dans la base de donner jai ajouter des donnees et la macro ne fonctionne pas je ne sais pas pourquoi

Je m'en occupe (en fait c'est lorsqu'il y a qu'un seul poste dans la base de données.

C'est bon !!!

Et oui ce sera toujours le meme fichier dans laquelle je veux que les donnees soit ajouter !!!

Merci encore énormément pour toute l'aide que tu m'apportes

Bonjour forum, lisa_marie,

Une question :

Dans le fichier qui contiendra les moyennes, tu dis qu'il faut supprimer les doublons. J'imagine que ce sera en fonction du numéro de bobine ? Dans ce cas, si on se retrouve avec une bobine mais avec 2 moyennes différentes, quelle valeur garder ?

SAlut !

Quand je dis qu<il faut supprimer les doublons en fait je veut que les moyennnes soit copier coller dans un nouvel onglet dans le nouveau fichier et je veux que les onglets fasse comme une sorte de mise ajour. Il ne pourra pas y avoir pour un equipement 2 moyenne differente.

par exemple , le poste 3 dans le premier fichier on a ajouter des nouvelles donnes. SI on utilise la macro alors tout dependant si on copie colie toute l<onglet on pourra ecraser l<onglet de lequipement dans le nouveau fichier, car deja dans le deuxieme fichier il y aura une base de donnee (puisqu<on prendra compte des nouvelles donnes entrees)( en fait je pense que c<est ce qui sera le moins compliquer)

En fait je ne pense pas que l on puisse copier coller seulement les nouvelles donnes entreee....i mais ma demande de supprimer les doublons etait relative a cela de la meme maniere que je demandais au depart dIntegrer les donnes de la base de donnee au onglet equipement. Ici ce serait une integration de nouvelle moyenne dans le fichier.

Mais comme je disais si on fait toujours un copier coller alors jimagine que toute les donnees de longlet de lequipement seront mis a jour(toute les dates pas seulement le snouvelle donnees entree) et donc qu<il ne pourra pas y avoir de doublon car ils auront deja ete supprime avec la nouvelle macro....

jai tenter de lexpliquer de plusieurs maniere... jespere que cest clair....

Rechercher des sujets similaires à "aide macro base donnee immense"