Aide pour une macro (base de donnee immense)

Y compris Power BI, Power Query et toute autre question en lien avec Excel
l
lisa_mariegilbert
Jeune membre
Jeune membre
Messages : 39
Inscrit le : 17 février 2011
Version d'Excel : 2007

Message par lisa_mariegilbert » 14 juillet 2011, 00:54

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...
exemple.xlsx
(13.24 Kio) Téléchargé 83 fois
j
jmd
Fanatique d'Excel
Fanatique d'Excel
Messages : 10'366
Appréciations reçues : 232
Inscrit le : 8 décembre 2007
Version d'Excel : 365 + PowerBI

Message par jmd » 14 juillet 2011, 08:57

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
http://office.microsoft.com/fr-ch/excel ... 42918.aspx

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
Apprenez les fonctions d'Excel.
Exemple "Mettre sous forme de tableau", TCD, "Récupérer des données".
Apprendre les fonctionnalités "récentes".
v
vba-new
Passionné d'Excel
Passionné d'Excel
Messages : 3'003
Appréciations reçues : 2
Inscrit le : 13 mai 2009
Version d'Excel : 2010 FR - 2013 FR

Message par vba-new » 14 juillet 2011, 10:06

Bonjour à tous,

Je ne sais pas ce que ça donnerait sur 80000 données mais voici une solution, qui restera à adapter :
BDD_lisa_marie_V1.xlsm
(24.04 Kio) Téléchargé 98 fois
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.
vba-new
M
Misterno
Membre fidèle
Membre fidèle
Messages : 184
Inscrit le : 1 juin 2011
Version d'Excel : 2003 FR

Message par Misterno » 14 juillet 2011, 11:03

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
AjoutDansBaseDeDonnées.xls
(62 Kio) Téléchargé 79 fois
Définir son besoin est souvent la solution du problème.
v
vba-new
Passionné d'Excel
Passionné d'Excel
Messages : 3'003
Appréciations reçues : 2
Inscrit le : 13 mai 2009
Version d'Excel : 2010 FR - 2013 FR

Message par vba-new » 14 juillet 2011, 11:17

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.
vba-new
l
lisa_mariegilbert
Jeune membre
Jeune membre
Messages : 39
Inscrit le : 17 février 2011
Version d'Excel : 2007

Message par lisa_mariegilbert » 15 juillet 2011, 13:23

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 !!!!
exemple.xlsx
(12.77 Kio) Téléchargé 62 fois
v
vba-new
Passionné d'Excel
Passionné d'Excel
Messages : 3'003
Appréciations reçues : 2
Inscrit le : 13 mai 2009
Version d'Excel : 2010 FR - 2013 FR

Message par vba-new » 15 juillet 2011, 14:19

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.
vba-new
l
lisa_mariegilbert
Jeune membre
Jeune membre
Messages : 39
Inscrit le : 17 février 2011
Version d'Excel : 2007

Message par lisa_mariegilbert » 15 juillet 2011, 16:05

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
v
vba-new
Passionné d'Excel
Passionné d'Excel
Messages : 3'003
Appréciations reçues : 2
Inscrit le : 13 mai 2009
Version d'Excel : 2010 FR - 2013 FR

Message par vba-new » 16 juillet 2011, 09:34

Bonjour lisa_mariegilbert,

Là c'est parfaitement clair ! :D
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à ?
vba-new
l
lisa_mariegilbert
Jeune membre
Jeune membre
Messages : 39
Inscrit le : 17 février 2011
Version d'Excel : 2007

Message par lisa_mariegilbert » 16 juillet 2011, 14:20

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 !!!!
Répondre Sujet précédentSujet suivant
  • Sujets similaires
    Réponses
    Vues
    Dernier message