Recopie automatique

Bonjour à tous,

Tout d'abord, Dans mon onglet 1 qui est ma base de donnée (BDD) j'ai en colonne J plusieurs types de TVA.

J'aimerai que chaque type de TVA soit copier dans chaque feuille correspondante.

Exemple type de tva dans ma BDD : TRIM-05 / CA12-A / MENS-24 ...

Ma feuille 2 serait = TRIM-05

Ma feuille 3 = CA12-A ...

Donc j'aimerais que tout les TRIM-05 de ma BDD se copie automatiquement dans ma feuille 2

Petite précision: ma BDD comporte 164 lignes et mes types de TVA sont tous mélangés car ma chronologie de donnée est par rapport aux mois

J'aimerais également que la macro permette le copier coller automatique, c'est-à-dire que si je rajoute une ligne dans ma BDD dans 3 mois elle se copie automatiquement dans la feuille de calcul correspondante à mon type de TVA et à l'inverse si je supprime une ligne dans ma BDD elle se supprime toute seule dans les autres feuilles.

J'ai essayer le codage suivant mais je n'arrive pas à l'exécuter :

Sub CopierLignesSiCondition()
Dim wsBDD As Worksheet
Dim wsCA12A As Worksheet
Dim lastRow As Long
Dim J As Long

' Définir les feuilles de travail
Set wsBDD = ThisWorkbook.Sheets("BDD")
Set wsCA12A = ThisWorkbook.Sheets("CA12A")

' Trouver la dernière ligne dans la colonne J de l'onglet BDD
lastRow = wsBDD.Cells(wsBDD.Rows.Count, 1).End(xlUp).Row

' Parcourir les lignes
For J = 8 To lastRow ' Commencer à la huitieme ligne (en supposant que la première ligne contient des en-têtes)

If wsBDD.Cells(J, 12).Value = "CA12A" Then

' Copier la ligne entière vers l'onglet CA12A
wsBDD.Rows(J).Copy Destination:=wsCA12A.Rows(wsCA12A.Cells(wsCA12A.Rows.Count, 1).End(xlUp).Row + 1)
End If
Next J
End Sub

J'espère avoir été compréhensible, et vous remercie d'avance des réponses que vous m'apporterez.

Madison.

Edit : merci d'utiliser les balises de code en cliquant sur l'icone </> lorsque vous postez un code. --> J'ai corrigé votre post

Bonjour Mad02,

Tu pourrais probablement utiliser uniquement des tableaux croisés dynamiques dans chaque feuille avc un filtre sur le type de TVA ?

Peux-tu poster ton fichier, éventuellement avec des modifications si les données sont sensibles ?

Bonjour Valky68,

Je vous joint mon fichier que j'ai modifié pour ne pas vous transmettre de données sensible.

Je vous ai fais des annotations dans la BDD.

D'avance, je vous remercie

Madison.

Bonjour Mad02,

1re étape : je créé un TCD dans une nouvelle feuille avec le code TVA coomme filtre les les informations que tu souhaites comme des «lignes» du TCD.

2e étape, je créé une page par code TVA en utilisant le menu suivant (c’est beaucoup plus rapide de les faire un par un :

image

Une fois que tu as modifié tes données dans la feuille BDD, tu cliques sur le menu Données/Actualiser tout et hop

! Tout s’actualise !

Bonjour Valky68,

Je vais regarder à cela.

Merci.

Bonjour Valky68,

J'ai un petit souci avec le fichier, j'essaye de m'expliquer :

Dans chaque onglet je reprend des éléments de ma BDD comme vous me l'avez montré mais suivant l'onglet je dois rajouter des colonnes qui ne sont pas toutes identiques suivant l'onglet et qui ne figure pas dans ma BDD:

exemple : dans mon onglet saisie je dois rajouter les mois de l'année, dans mon onglet CA12-A je dois rajouter des colonne qui me permettrons de renseigner la date à laquelle j'ai effectue la tâches...

Sauf que, quand j'actualise mon TCD après modif de ma BDD ça ne rajoute pas une ligne complète dans mon onglet concerné par la MAJ mais ça me rajouter uniquement la ligne dans les colonnes concernées par le TCD.

Avez-vous un moyen, pour que ma ligne supplémentaire se rajoute sur toute la ligne de l'onglet (TCD et autres colonnes)?

Bonsoir Mad02,

Houla ! Pas sûr de bien comprendre...

Tu voudrais pouvoir ajouter des informations supplémentaires dans les onglets qui ont des TCD et faire en sorte que ces informations s'ajoutent dans ta BDD ? C'est impossible. Les TCD agrègent les données de ta BDD et en fait une somme, par exemple. Impossible de savoir à quelle ligne de ta BDD les informations ajoutées se rapportent.

À moins que j'aie mal compris...

Bonjour Valky68,

Je vous joint mon tableau avec des annotations dans l'onglet TCD, en espérant être plus précise avec l'exemple.

Merci beaucoup.

Mad'

Bonsoir Mad02,

C’est bien ce que j’avais imaginé. Je ne connais pas de solution facile (sans du VBA bien lourd !) pour faire ce que tu souhaites. J’ai essayé, en considérant que dans chaque onglet, il y a un tableau indépendant, de rassembler les données de chaque tableau en un seul endroit (ta BDD, du coup), mais ta BDD serait un réceptacle des informations que tu auras enregistrées dans tes différents tableaux et les colonnes supplémentaires de la feuille BDD auraient le même problème de décalage en cas d’ajout d’un nouveau client dans l’une des feuilles. Je t’envoie un exemple…

Bonjour Valky68,

Je n'ai pas compris ce que vous avez fait.

Les colonnes que je rajoute dans mes différents onglets ne doivent jamais apparaitre dans ma BDD, les informations renseigner manuellement n'ont pas d'intérêt pour moi à être dans la BDD.

En faite votre idée de TCD est parfait mais il faudrait que quand je rajoute une ligne dans ma BDD, que j'actualise le TCD les informations inscrites manuellement a coté du TCD se décale vers le bas, ce qui me permettrait de rentrer manuellement à coter du TCD les infos du nouveau client au moment venu (date de réalisation de ta TVA par exemple)

Je ne sais pas si on se comprend bien.

Et sinon faite-vous du VBA ?

Mad02

Bonjour Mad02,

Tu peux me tutoyer sans aucun problème.

J’ai bien compris ton besoin. Je vais tenter une nouvelle approche avec Power Query. Chaque feuille reprendra la partie «de base» de la BDD à laquelle tu pourras ajouter les colonnes qui t’intéressent. Por qu’une nouvelle ligne de la BDD apparaisse dans une feuille, il semble suffire (mais c’est à valider pour tous les cas d’usage…) d’ajouter une ligne vide à la fin de chaque tableau dans chaque onglet, puis d’« actualiser tout » (CTR

L + MAJ + F5).

Bonjour Valky68,

Je ne connais pas Power Query.

Je viens d'essayer d'ajouter une ligne à la BDD puis d'actualiser le tableau dans cA12A mais malheureusement les données dans la colonne ETAT ne se décale pas.

Bonsoir Mad02,

Avais-tu pris soin d’ajouter une ligne vide en bas du tableau de l’onglet CA12A avant d’actualiser les données ?

Bonjour Valky68,

Je viens de réessayer mais la ligne supplémentaire ne s'ajoute pas au bon endroit.

La ligne c'est ajouter sur les TEST 11 Bis (case bleu).

image

Je pense qu'il y a quelque chose que je n'ai pas fais correctement, non ?

Bonsoir Mad02,

Je pars de la situation suivante où les colonnes supplémentaires ont été remplie et une ligne vide est ajoutée en bas du tableau CA12A.

image

Ensuite, dans la BDD, j’ajoute une nouvelle ligne qui devra s’afficher entre les lignes existantes (client TEST 11 ter, ci-dessous) :

image

Je reviens dans la feuille CA12A et j’actualise (CTRL + ALT + F5) :

image

Le client 11 ter est bien position au milieu du tableau comme prévu, mais les colonnes supplémentaires ont leurs lignes complètement dans le désordre.

Ce n’est donc pas encore la bonne solution !

Rechercher des sujets similaires à "recopie automatique"