copie automatique de données avec restructuration, insertion à la suite d'un tableau

friseb

XLDnaute Occasionnel
Bonjour,


Je dois créer un fichier Excel dans lequel je récupère des données d'un logiciel tiers. Ces données sont présentées d'une certaines manière qui ne me permet pas de les exploiter en l'état. ( Ces données sont présent dans la feuil1).

L'objectif est de recopier ces données et de les recopier en feuil2 mais en les restructurant. De plus, en feuils2 sont déjà présents des informations des années précédentes et il faut donc que les données présent en feuil1 se recopie en feuil2 à la suite des informations déjà présentes. De plus systématiquement la 1ere ligne de la feuil1 ne doit pas être recopier.

Ci joint le fichier Excel.

Les conditions :
- Je ne peux absolument pas modifier la feuil1.
-La colonne A de la feuil2 correspond à la colonne A de la feuil1
-La colonne B de la feuil2 correspond à la colonne C de la feuil1 ( la colonne B de la feuil1 n'est pas exploité).
- La colonne C de la feuil2 correspond aux informations contenu dans les cellule de la colonne D feuil1 avant les 1eres parenthèse []
-La colonne D de la feuil2 correspond à la date contenu dans la 1ere parenthèse de la colonne D feuil1
-La colonne E de la feuil2 correspond à la date contenu dans la 2eme parenthèse de la colonne D feuil1
-La colonne F de la feuil2 correspond à la colonne E de la feuil1, cependant si la colonne E contient 0 et qu'il y a donc un montant dans la colonne F de la feuil1 alors le montant figurant dans la colonne F de la feuil2 doit être négatif.

J'espère que tout cela est faisable.


merci de votre aide.

Cordialement.
 

Pièces jointes

  • projet excel.xlsx
    13 KB · Affichages: 64

friseb

XLDnaute Occasionnel
Re : copie automatique de données avec restructuration, insertion à la suite d'un tab

Super travail. merci.
J'essaye d'apprendre le langage VBA mais c'est pas évident la mise en application de cas concrets.

Par contre, j'ai une question. Je voudrais savoir si c'est possible de faire cela sur ce projet.

En feuil1, comme je l'ai déjà expliqué, je récupère des données d'un logiciel de gestion. En fait les données se mettent à jour automatiquement en ouvrant le fichier Excel, en allant pomper les informations dans ce logiciel. Cependant je vais récupérer que les données de l'année en cours. A ce jour je récupère ainsi toutes les données de l'année 2012.

En feuil2, avant le traitement et la recopie des données grâce au code VBA, sont inscrites les données des années précédentes que je souhaite garder. Ensuite donc j'applique le traitement élaboré par Gelinotte en VBA. Et ainsi se rajoute les données 2012. Je vais devoir faire ce traitement plusieurs fois par an pour avoir les données les plus récentes. par contre je serai obligé de supprimer les données 2012 pour ne pas avoir des doublons après une nouvelle exécution du code VBA.

J'espère que mes explications étaient claires.

connaissez vous une solution dans la gestion de ces doublons ? ou peut être qu'il faudrait faire juste au début de l’exécution de la macro un code qui permet de supprimer toutes les lignes de données qui avait été recopier précédemment( sans supprimer les infos que je souhaite garder des années précédentes).

Y a t-il donc une solution ?


merci
 

Gelinotte

XLDnaute Accro
Re : copie automatique de données avec restructuration, insertion à la suite d'un tab

Bonsoir,

Pas sûr de tout avoir compris ... mais :
Oui, on peut faire aisément vider la feuil2 avant le traitement.
On ajouter au début de la macro :
Sheets("Feuil2").Range("A2:F65535").clear
À la fin de l'année 2012, on copie la Feuil2 et donne le nom "2012" à la copie
Puis on recommence.

Est-ce acceptable ??


G
 

friseb

XLDnaute Occasionnel
Re : copie automatique de données avec restructuration, insertion à la suite d'un tab

Le problème en insérant " Sheets("Feuil2").Range("A2:F65535").clear " c'est que nous allons effacer les données des années précédentes.

Je re-explique : en feuil2 j'ai les données des années précédentes (que je dois garder sur cette feuil car elle me serviront à effectuer des calculs) + j'ai les données de 2012 qui sont insérés grâce à ta macro et qui proviennent donc de la feuil1.

Donc il faut effacer les données de la feuil2 sauf on les données permanentes ( que je dois impérativement garder et qui correspond aux informations des années précédentes).

merci
 

Gelinotte

XLDnaute Accro
Re : copie automatique de données avec restructuration, insertion à la suite d'un tab

Bonjour,

Dans ce cas, il va falloir utiliser un pointeur quelconque dans la feuille qui donnera le numéro de ligne jusqu'où conserver.
Exemple, supposons que la colonne G n'est pas usitée. Si en G51 (cas du dernier fichier test), j'inscris à la main 2011 (dernière ligne de 2011).
Cette cellule pourrait servir de pointeur de l'année en cours. On efface jusque-là pour inscrire le data de l'année en cours.
Quand l'année sera terminée, il y aura à inscrire à la dernière ligne de data 2012. À partir de là, les données ne seront plus effacées.
On pourrait aussi utiliser la date de la colonne A. Mais on sait bien que des données datées 2013 pourraient être la conciliation de l'année 2012.

Pour l'instant, je n'ai pas idées plus brillante. :(


G
 

friseb

XLDnaute Occasionnel
Re : copie automatique de données avec restructuration, insertion à la suite d'un tab

Oui dans le code est ce qu'on peut demander de supprimer les lignes dont les dates en colonne A correspondent à 2012 ?
Et je mettrai donc à jour le code tous les ans pour qu'il ne supprime à chaque fois que l'année en cours.

Et est ce que c'est possible à l'ouverture du fichier d'ouvrir une message box pour me demander quelle année je veux supprimer.

merci
 

Gelinotte

XLDnaute Accro
Re : copie automatique de données avec restructuration, insertion à la suite d'un tab

Bonjour,

Oui, c'est possible, mais il va falloir stocker ce chiffre dans le classeur quelque part.
Mais au lieu de le mettre à l'ouverture du fichier, je le mettrais au clic clique sur le bouton, là, ce chiffre peut être stocké dans une variable, puis le traitement continue.

Je te fais cela ce soir, car là, je dois partir au boulot.


G
 

friseb

XLDnaute Occasionnel
Re : copie automatique de données avec restructuration, insertion à la suite d'un tab

Bonsoir,

J'ai tenté d'écrire quelque chose mais ca ne marche pas.

J'ai rajouté au début du code dans la colonne M la formule année.

Puis je demande de supprimer toutes les lignes contenant 2012.

Si j'utilise ma macro seule renvoyant l'année des cellules de la colonne A, elle marche nickel.
Si j'utilise ma macro seule supprimant toutes les lignes contenant l'année 2012 dans les cellules de la colonne M, elle marche également.
mais les deux ensemble cela ne marche pas.

Pouvez-vous me dire ce qui pose problème.
 

Pièces jointes

  • Copie de donnees avec na(4).xlsm
    38.8 KB · Affichages: 22
Dernière édition:

Gelinotte

XLDnaute Accro
Re : copie automatique de données avec restructuration, insertion à la suite d'un tab

Bonsoir,

Désolé du délai, je ne t'avais pas oublié ... il y a aussi une vie en dehors du forum :cool:

La macro supprime en feuil2 l'année en cours (demandé par un Input) et proposée par la cellule G1.

Je fais aussi colorer une partie de la dernière ligne conservée.

Pour effacer l'année en cours, une recherche part de la dernière ligne et remonte ligne par ligne et cherche sur les 4 premiers caractères de la colonne A.

Je n'ai pas trouvé de boucle plus rapide. Mais pour l'instant, le temps d'exécution ne semble pas poser problème.

Examine cela


G
 

friseb

XLDnaute Occasionnel
Re : copie automatique de données avec restructuration, insertion à la suite d'un tab

Bonjour,

Gelinotte il y a aucun soucis, c'est normal d'avoir une vie en dehors du forum.

J'ai testé ton fichier et chez moi il ne marche pas. A chaque fois cela rajoute des lignes des années 2012 mais sans supprimer dans un 1er temps.

Merci
 

Gelinotte

XLDnaute Accro
Re : copie automatique de données avec restructuration, insertion à la suite d'un tab

Bonjour,

Dans cette macro, je fais faire une pose afin de vérifier si les données sont effacées, avant de refaire le traiment à nouveau.

Cela devrait convenir, à moins que je n'ai pas bien compris la problématique


G
 

Discussions similaires

Statistiques des forums

Discussions
312 682
Messages
2 090 891
Membres
104 689
dernier inscrit
phlentier