Copier/Coller nouveaux onglets dans 1 onglet

Fermé
kxvelt - 6 juin 2017 à 08:29
kxvelt Messages postés 1 Date d'inscription lundi 5 juin 2017 Statut Membre Dernière intervention 6 juin 2017 - 6 juin 2017 à 14:46
Bonjour,

J'ai un fichier qui génère tous les jours un nouveau onglet ayant comme nom la date du jour. Dans ces onglets on retrouve des informations lié à la journée.

Je dois exploiter les données de chaque onglet et pour cela je dois (je pense, à valider par vous) créer une base de donnée dans 1 seul onglet appelé Data. Pour cela, je n'ai pas d'autre idée que de passer par VBA.

Ma question est : est que vous avez une idée du code qui va me permettre de copier automatiquement les données du jour J-1 dans l'onglet data? Je m'explique :

Par exemple : Aujourd'hui nous sommes le 06/06/17, donc j'ai un nouveau onglet dès l'ouverture du classeur. Il faut donc que dès l'ouverture les information de l'onglet 05/06/17 soient copié dans l'onglet DATA afin de mettre à jour mes indicateurs.

J'ai pensé utilisé la fonction : m'en servir de worsheet(2).copy after:= ... Vu que le nouveau onglet est toujours le 2eme onglet du classeur. Par contre avec cette technique si la personne oublie un jour il va falloir copier.coller manuellement.

Enfin, je déboute en VBA. Je reste en attente de vos aides.

D'avance merci pour votre aide.
A voir également:

1 réponse

kxvelt Messages postés 1 Date d'inscription lundi 5 juin 2017 Statut Membre Dernière intervention 6 juin 2017
Modifié le 6 juin 2017 à 14:58
Voici ce que j'ai fait :

Private Sub Worksheet_Change(ByVal Target As Range)

ligne_jour As Integer
ligne_data As Integer

ligne_jour = 5
ligne_data = 1399 'car le ficher commence déja avec 1420 ligne, donc ceci permet de gaganer du temps

While Worksheets(3).Range("A5").Offset(ligne_jour, 0) <> ""
ligne_jour = ligne_jour + 1
Wend


While Worksheets("DATA").Range("A1399").Offset(ligne_data, 0) <> ""
ligne_data = ligne_data + 1
Wend


Worksheets(3).Range("A5", "AP" & ligne_data).Copy
Worksheets("DATA").Range("A" & ligne_data).PasteSpecial

End Sub


J'obtiens ceci comme erreur :

"Erreur d'exécution '--2147417848(800101108)':
La méthode 'Range' de l'objet '_worksheet' a échoué"


Le code copie et colle bien comme voulu mais il copie toute les cellules de la worksheet(3) et non pas les non vide.
De plus il bug au point que l'Excel cesse de fonctionner. À mon avis c'est dans les bouvles while qu'il y a un problème.

Pouvez vous m'aider?
0