Copier certaines lignes d'un tableau via VBA

Bonjour à tous,

Je dispose d'un tableau sur un Excel, qui a la disposition suivante :

tableau min

Voici mon problème :

Je possède déjà une macro me permettant de copier uniquement les lignes du tableaux lorsque quelques choses est écrit dans la ligne "Code de commande" (Colonne B). Cette copie se transfert automatiquement dans la feuille "Feuille de commande".

Voici la macro que je possède :

Sub transpose()

Dim Plg As Range

Dim Cel As Range

Dim Cmpt As Variant

Set Plg = Range("b5:b4000")

For Each Cel In Plg

If Cel.Formula <> "" Then

Sheets("feuille de commande").Activate

Range("a6").Offset(Cmpt).Formula = Cel

Cmpt = Cmpt + 1

Else: End If

Next Cel

End Sub

J'aimerais à présent modifier cette macro pour que la macro ne copie que les lignes ou il y a quelques choses d'écrit dans la ligne "code commande" (colonne B) mais aussi si il y a écrit "Walter" dans la ligne "Fournisseur" (colonne F).

J'ai donc besoin de votre aide car je ne trouve pas comment faire.

D'avance, merci.

Cordialement

Slyss.

Bonjour et bienvenue sur le fourm

Remplace ;

If Cel.Formula <> ""  Then

par :

If Cel.Formula <> "" And Cel.Offset(0, 4).Value = "Walter" Then

Bye !

Bonjour,

Tout d'abord merci beaucoup gmb pour votre réponse c'est tout à fait la macro que je recherchais ! Cependant j'ai un petit souci avec celle-ci que je ne comprends pas. En effet lorsque je l'utilise de la manière suivante :

If Cel.Formula <> "" And Cel.Offset(0, 4).Value = "Walter" Then

rien ne se passe !

Cependant lorsque j'utilise la formule que tu m'as donnée en remplaçant "Walter" par "Sandvik" tout marche impeccable :

If Cel.Formula <> "" And Cel.Offset(0, 4).Value = "Sandvik" Then

Je ne comprends donc pas pourquoi la formule que tu m'as donné marche avec l'un et non l'autre. De ce fait j'ai aussi essayé avec d'autres noms que "sandvik" et cella marche parfaitement également. Il n'y a qu'avec "Walter" que rien ne se passe.

Il y aurait t-il une explication ?

Merci.

Cordialement

Slyss

Sans ton fichier, je ne vois pas comment t'aider...

Bye !

Re-bonjour,

Je t'ai mis le fichier :

La manipulation à réaliser est la suivante : dans la feuille saisie de commande, tu notes dans la colonne "code commande" le même numéro que la colonne "code" (si c'est correct le fond de la case sera vert) et puis tu appuies sur imprimer en haut de la page et si tout va bien tu te retrouves sur la feuille "feuille de commande".

Merci,

Cordialement

Slyss

Slyss a écrit :

lorsque j'utilise la formule que tu m'as donnée en remplaçant "Walter" par "Sandvik" tout marche impeccable

Les valeurs de cellules en colonne F sur ta feuille ‘’saisie ce commande’’ se réfèrent par formules aux valeurs de la colonne C de la feuille ‘’Ajout de commande’’.

Or, sur cette feuille, on ne trouve aucun ‘’Walter’’ mais des ‘’Walter ‘’, avec un espace à la fin.

Pour que la macro marche, tu as donc 2 solutions possibles :

• Soit tu mets un espace dans l’instruction correspondante de la macro :

If Cel.Formula <> "" And Cel.Offset(0, 4).Value = "Walter " Then

• Soit tu supprimes tous les espaces en fin nom de ‘’Waltelr ‘’ dans la feuille ‘’Ajout de commande’’. L’outil Remplacer peut t’aider…

OK ?

Bye !

Re

Génial ! Ça marche implacable ! J'avais pourtant revérifier l'écriture mais j'ai pas fait attention à l'espace !

Je te remercie beaucoup pour ton aide très précieuse !

Bonne journée,

Cordialement

Slyss

Rechercher des sujets similaires à "copier certaines lignes tableau via vba"