Exporter certains données d'un tableau vers un autre

Bonjour

J'ai un tableau dans la feuille CM1 que j'alimente quotidiennement (tableau avec une centaine de lignes)...je veux qu'une fois copié il m'exporte automatiquement vers la feuille CM2, par macro ou code, les lignes qui contient dans la colonne J les cellules contenant le produit "IMM" . Les deux tableaux sont semblables 'même colonnes même titre.

NB: une fois les lignes contenant IMM exportées vers CM2, elles doivent disparaître du tableau CM1

J'ai mis en joint un fichier exemple (ne faites pas attentions aux données).

Merci beaucoup

7donnees.xlsx (10.97 Ko)

Bonjour,

Une proposition à étudier.

Cdlt.

53donnees.xlsm (26.22 Ko)

Bonjour et bienvenue sur le forum

Bonjour à tous

Une variante.

Bye !

6donnees-v1.xlsm (29.52 Ko)

Re

Merci gmb...y a un problème à chaque fois qu'on clique sur le bouton il y a exportation encore une fois des mêmes données même s'ils n'y figurent plus dans le CM1

Bonjour,

Une proposition à étudier.

Cdlt.

données.xlsm

j'ai testé ça marche...je crois que je ne vais pas utiliser le bouton RAZ puisque les données sont supprimés automatiquement après export.

NB: je veux mettre ça au propre

la feuille CM1 c'est CMT et CM2 c'est IMMO

comme adapter le code de la macro...j'ai essayé de les remplacer dans le code ça marche pas

Public Sub CopyAndDeleteData()
Dim lo As ListObject, lo2 As ListObject
Dim rCell As Range
Dim lr As ListRow
Dim i As Long
    Application.ScreenUpdating = False
    Set lo = Range("T_CM1").ListObject
    Set lo2 = Range("T_CM2").ListObject
    If lo.ShowAutoFilter Then lo.AutoFilter.ShowAllData
    If lo2.InsertRowRange Is Nothing Then
        Set rCell = lo2.HeaderRowRange.Cells(1).Offset(lo2.ListRows.Count + 1)
    Else
        Set rCell = lo2.InsertRowRange.Cells(1)
    End If
    For i = 2 To lo.ListRows.Count
        If lo.Range.Cells(i, 10).Value = "IMM" Then
            Set lr = lo.ListRows(i - 1)
            lr.Range.Copy
            rCell.PasteSpecial xlPasteValuesAndNumberFormats
            Application.CutCopyMode = 0
            lr.Delete
            Set rCell = lo2.HeaderRowRange.Cells(1).Offset(lo2.ListRows.Count + 1)
        End If
    Next i
End Sub

Nouvelle version.

Bye !

6donnees-v2.xlsm (29.65 Ko)

Nouvelle version.

Bye !

Merci...on peut supprimer la feuille CM1 (2) ? ça va pas affecter le code ?

Re

pour améliorer le fichier et le rendre évolutif....si c'est possible d'ajouter d'autres mots clés en plus de "IMM"..au lieu de mettre ce bout de code ..il va les chercher dans la feuille "utilisateurs" dans toute la colonne K (voir nouvelle pièce jointe)

For i1 = 2 To UBound(tablo1, 1)
        If tablo1(i1, 10) = "IMM" Then
            ReDim Preserve tablo2(1 To UBound(tablo1, 2), 1 To k2 + 1)
            For j = 1 To UBound(tablo1, 2)
                tablo2(j, k2 + 1) = tablo1(i1, j)
            Next j
            k2 = k2 + 1
5donnees-v22.xlsm (20.44 Ko)

Bonjour,

Pour le post de 09:56,

Dans ma proposition, je ne fais pas référence aux feuilles mais aux nomx des tableaux (structurés).

Set lo = Range("T_CM1").ListObject  '(tableau T_CM1 dans feuille CM1)
    Set lo2 = Range("T_CM2").ListObject '(tableau T_CM2 dans feuille CM2)

Tu dois éventuellement changer le nom des tableaux dans les feuilles de calcul et dans la procédure.

Cdlt.

Pour ta dernière question, envoie un classeur représentatif !...

Colonne J ou K ? Mets un exemple concret...

Bonjour,

Pour le post de 09:56,

Dans ma proposition, je ne fais pas référence aux feuilles mais aux nomx des tableaux (structurés).

Set lo = Range("T_CM1").ListObject  '(tableau T_CM1 dans feuille CM1)
    Set lo2 = Range("T_CM2").ListObject '(tableau T_CM2 dans feuille CM2)

Tu dois éventuellement changer le nom des tableaux dans les feuilles de calcul et dans la procédure.

Cdlt.

Ah d'accord....mais je n'avais donné aucun nom à mes tableaux ...

Re,

j'ai édité mon précédent message.

RE

si c'est possible d'ajouter d'autres mots clés en plus de "IMM"..il doit les chercher dans la feuille "utilisateurs" dans toute la colonne K (voir nouvelle pièce jointe)

Et aussi un msgbox informant le nbr de ligne exportées....svp utiliser les noms des feuilles au lieu des tableaux

Merci bcp.

2donnees-3.xlsm (16.07 Ko)

Merci...on peut supprimer la feuille CM1 (2) ? ça va pas affecter le code ?

Cette feuille n'est là que pour pouvoir récupérer les données initiales si quelque chose ne va pas.

Oui, on peut la supprimer sans affecter la macro.

Bye !

Merci

si vous avez le temps pour donner suite aux autres questions

Nouvelle version.

Bye !

8donnees-v3.xlsm (43.55 Ko)

Nouvelle version.

Bye !

Good job....Merci beaucoup. ...ça marche très bien

Franchement userform est très bien fait et j'hésite entre l'utiliser ou non. Car je serai obligé de valider à chaque fois (c'est ce qui va poser problème) alors que les codes ne seront mis à jour que rarement.

S'il y a une version sans userform ça sera super bien.

Re

Après plusieurs test je crois qu'il y a problème...parfois certaines lignes ne sont pas exportées (elles sont effacées mais pas exportées.... je ne les trouve pas dans l'autre tableau)

et aussi dans le msgbox...parfois 2 lignes exportées et m'informe qu'une ligne a été exportée.

Tu devrais me joindre un fichier avec lequel se produisent ces erreurs et m'indiquer ce que tu as choisi dans l'userform quand elles se produisent.

Bye !

Re

Je crois que c'était un problème de code écrit en minuscule que ne s'exportait pas.

Sinon y a pas moyen de ne pas utiliser le userform ?

Sinon y a pas moyen de ne pas utiliser le userform ?

Alors, comment veux-tu pouvoir choisir le ou les mots clé dans la liste que tu proposes ": IMM, TAL, KHG, ...?

L'userform proposé te permettait d'en choisi plusieurs à la fois mais il fallait ensuite cliquer sur le bouton "Valider"

Si tu veux choisir un seul mot clef, on peut faire une modification de l'userform et la macro s'exécutera automatiquement dès que tu auas cliqué dessus.

A moins que tu aies d'autres idées...

Bye !

Rechercher des sujets similaires à "exporter certains donnees tableau"