Aide pour une macro (Ajout à une Base de donnée ayant de nombreuses données)

lisa_mariegilbert

XLDnaute Nouveau
Bonjour,

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 excel 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...
 

Pièces jointes

  • exemple.xls
    23 KB · Affichages: 78
  • exemple.xls
    23 KB · Affichages: 79
  • exemple.xls
    23 KB · Affichages: 77

JNP

XLDnaute Barbatruc
Re : Aide pour une macro (Ajout à une Base de donnée ayant de nombreuses données)

Bonjour Lisa-Marie :),
J'ai besoin d'aide pour me faire une macro. Normalement je me débrouille mais la je ne sais pas trop ou commencer ....
Si on remet dans l'ordre tes idées diverses (et si j'ai tout compris :rolleyes:), je suivrais le raisonnement suivant :

1) Tu dois avoir autant de feuilles que de postes :
-> Il te suffit de balayer la ligne 1, si la case est non vide, tu balaies le nom des feuilles pour vois s'il existe ou pas, et tu crées la feuille si nécessaire.

2) Tu rapatries les données sur chaque feuille :
-> Tu balaies les feuilles du classeur sauf "base de donnée", et pour chaque, tu utilises un Find pour trouver le nom de la feuille dans la ligne 1. Si pas de résultat, feuille suivante, si résultat, copie des données des 3 colonnes avant de passer à la feuille suivante.

3) Suppression des doublons :
-> Tu rebalayes les feuilles du classeur et comme tu est en 2007, tu utilises la suppression de doublons automatiques (à noter que ça peut être associé au point 2 pour éviter de balayer 2 fois les feuilles, mais il est plus prudent de coder étape par étape et d'optimiser ensuite :rolleyes:...)

4) Vider la feuilles "base de donnée"
-> Avec Clear, pas de soucis :p...

Voilà, commence à coder et reviens vers nous si tu rencontres une difficulté particulière sur un point ou un autre ;).

Bonne journée :cool:
 

lisa_mariegilbert

XLDnaute Nouveau
Re : Aide pour une macro (Ajout à une Base de donnée ayant de nombreuses données)

Ah oui j'oubliais, comme je dois additionner les colonnes de la base de données à celle déjà présente dans les autre feuilles, je ne suis pas trop sure de comment procéder, J'imagine qu'il faut faire une recherche pour trouver la prochaine cellule vide ... et copier sur cette cellule mais je ne suis pas sur de pouvoir le représenter en VBA.

Merci !
 

JNP

XLDnaute Barbatruc
Re : Aide pour une macro (Ajout à une Base de donnée ayant de nombreuses données)

Re :),
Code:
Sub Test()
Dim Feuille As Worksheet
With Sheets("Base de donnée")
MsgBox .Cells(1, Columns.Count).End(xlToLeft).Column
' Te donne la colonne de la dernière cellule utilisée en ligne 1
MsgBox .Cells(Rows.Count, 1).End(xlUp).Row
' Te donne la ligne de la dernière cellule utilisée en colonne A
End With
For Each Feuille In ThisWorkbook.Worksheets
MsgBox Feuille.Name
Next Feuille
' Balaie toutes les feuilles
End Sub
Bon courage :cool:
 

Statistiques des forums

Discussions
312 195
Messages
2 086 072
Membres
103 110
dernier inscrit
Privé