Copie d'un tableau avec traitement

Bonjour,

Je débute en macroexcel et cherche comment faire le plus simplement une copie d'un tableau d'un onglet A vers un onglet B avec un traitement.

Le traitement est de copier seulement les colonnes ayant des noms bien définies, et reformater en Euros certaine colonne.

extrac

De ce tableau dans l'onget A, je ne veux garder que les colonnes ayant pour nom "Ref", "Valeur", "Stock" (Attention le tableau de l'onglet A ...peut avoir des colonnes nouvelles qui peuvent venir s'intercaler entre 2, il faut donc bien vérifier le nom)

Copier ces colonnes dans un onglet B de la même feuille.

Et au passage formater la colonne valeur en Euro

trait

Bref pour un expert c'est facile, mais pour moi, cela tourne en rond.

Un petit coup de main sur ce problème serait sympa

Olivier

bonjour

en A3 de feuille2, tu fais = et tu cliques dans B3 de feuille1. Valide.

en B3 de feuille2, tu fais = et tu cliques dans C3 de feuille1. Valide.

etc pour toutes les colonnes que tu veux

tire les formules vers le bas (loin car il y aura de plus en plus de ligne en feuille1)

En Feuille2, tu as une image de Freuille1, mais seulement avec les colonnes voulues.

C'est stable même si on insère des colonnes en Feuille1

Modifie la colonne des prix de Feuille2 au format que tu veux.

Tout ceci est à faire une unique fois dans ta vie !

il reste dasn feuille2 à faire Menu Données, Filtrer et à filtrer les lignes que tu veux. Ce filtre (rien que ce filtre) peut être enregistré en macro pour être rejoué à chaque modification de feuille1.

Note : il n'y a aucune "recopie" de données.

Bonsoir jmd, osegouin

Vois ceci :

Sub Copier()
Dim e, x, t As Byte
    For Each e In Array("Ref", "Valeur", "Stock")
        With Sheets("Feuil1").Range("a1").CurrentRegion 'onglet A
            x = Application.Match(e, .Rows(1), 0)
            If IsNumeric(x) Then
                t = t + 1
                .Columns(x).Copy Sheets("Feuil2").Cells(1, t) 'Onglet B
            End If
        End With
    Next
    Sheets("Feuil2").Cells(1).CurrentRegion.Columns(2).NumberFormat = "#,##0.00 $"
End Sub

klin89

Merci Jmd et Klin89,

Je pense que la fonction de Klin89 est plus adaptée à ma problématique et à mes colonnes qui peuvent se modifier,

@Klin89, par contre je n'arrive pas a faire marcher ta macro,

J'ai en mode debug pas à pas toujours erreur 2042 sur la variable x ?

Et rien ne se copie en Feuil1 ?

Des pistes de recherche ?

Olivier

annulé

Rechercher des sujets similaires à "copie tableau traitement"