Enchaînement d'une MACRO sur plusieurs onglets

Bonjour le forum,

J'ai un problème qui me paraît a priori pas très compliqué mais que je n'arrive pas à résoudre !

J'ai une MACRO qui me permet de transférer 2 plages de données (D9:X28 & D44:X49)de la feuil1 (intitulée "Tableau Référence")sur la feuil2 (appelée "Janvier") et cette même macro récupère ainsi successivement les données des 2 mêmes plages des feuils suivantes (les 2 plages de "Janvier" sont transférées à l'aide de cette MACRO sur Février ; puis les 2 plages de Février sur Mars, etc...)

Sauf que cette MACRO ne fonctionne que pour le transfert de la feuil 1 (Tableau Référence) sur la feuil 2 (Janvier), pour les autres : une fois exécutée elle fait apparaître puis automatiquement disparaître les informations transférées. Sûrement un problème de liaison mais je ne comprends pas quoi précisément ... (j'ai copié/collé sur chaque feuil cette Macro de transfert + une autre Macro qui me permet de double cliquer sur une ligne pour qu'elle décende en 2ème partie de tableau)

Merci pour le temps que vous pourrez consacrer pour m'aider

Bonjour,

Quel foutoir !

Voir en pièce jointe (si j'ai bien compris...)

A+

17jonathan-vg.xlsm (553.67 Ko)

bonjour

salut galopin01

ma suggestion : faire des onglets par mois c'est vouloir imiter les feuilles de papier dans un classeur à levier. L'informatique en gestion de données ne fonctionne pas du tout comme ça.

Il faut TOUT mettre sur un unique onglet, avec en colonne A le mois (format AAAA-MM)

on fait la saisie dans cet onglet sans jamais en changer, des milliers de lignes au fil des années qui passent

ensuite tout devient plus simple

on fait des TCD, GCD et autres synthèses comparatives ou filtrages/tris pour présentations

tous les progiciels fonctionnent ainsi. C'est la base de leur fiabilité durant les années.

autre : ne JAMAIS fusionner de cellules !

VBA est inutile.

Bonjour galopin01 et jmd,

Galopin : Merci pour ta solution qui semble très bien marcher.

Subsiste un problème et de taille : Il n'est plus possible du tout de remplir les autres cellules des tableaux et notamment parce qu'on ne peut plus faire apparaître les listes déroulantes prévues à cet effet ... L'idée étant quand même de pouvoir transférer les informations d'un tableau à un autre tout en ayant encore la main mise sur les données importées

Jmd : Merci pour ta recommandation, je vais d'abord essayer de finir celle-ci, même si plus complexe, ayant déjà beaucoup travaillé dessus. L'idée de tout faire sur un onglet me simplifierait certainement la tâche pour les macros et formules que je souhaite intégrer, mais un peu moins pratique pour avoir une vue rapide des résultats mensuels...

, mais un peu moins pratique pour avoir une vue rapide des résultats mensuels...

re

tu sacrifies le programme au profit d'une vue comme sur un papier. C'est un mauvais principe de base.

AUCUN progiciel ne fait ainsi.

Bon travail

amitiés à tous

Bonjour Clem3411,

L'idée de tout faire sur un onglet me simplifierait certainement la tâche pour les macros et formules que je souhaite intégrer, mais un peu moins pratique pour avoir une vue rapide des résultats mensuels...

Erreur : TOUT est plus rapide, plus simple, plus puissant avec le mode liste et les tableaux et graphiques croisés dynamiques ! Un simple exemple : un graphique illustrant l'évolution des données sur plusieurs mois, voire plusieurs années... et sans fatigue, sans délai, sans prise de chou !

A voir... cordialement, Daniel

Merci pour vos conseils. J'essaierai de transformer au plus vite cette matrice "format papier" en TCD dans ce cas, vous m'avez convaincus.

J'ai de mon côté réglé le pb : En fait l'emplacement de la MACRO est primordial, il fallait juste faire copier/coller la macro de référence à savoir : Sub MACROTRANSFERTFévrier()

'Transfert Référence --> Janvier

Sheets("Janvier").Select

Range("D9:X28").Select

Selection.Copy

Sheets("Février").Select

Range("D9:X28").Select

ActiveSheet.Paste

If Range("D10") = "" Then

Cellule_depart = Cells(10, 4).Address

Else

Cellule_depart = Cells(Range("D9").End(xlDown).Row + 1, 4).Address

End If

Sheets("Tableau Référence").Select

If Range("D44") = "" Then

Exit Sub

End If

Sheets("Tableau Référence").Select

Range("D44:X49").Select

Selection.Copy

Sheets("Janvier").Select

Range(Cellule_depart).Select

ActiveSheet.Paste

End Sub

Puis insérer tout bêtement à la suite la même macro en changeant les références sur visual basique et non créer une macro indépendante (sinon s'affiche problème de variable alors que les plages copiées avant transfert sont exactement les mêmes...)

Rechercher des sujets similaires à "enchainement macro onglets"