VBA, Repporter les lignes contenant un mot

Fermé
toto - 9 nov. 2011 à 14:03
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 - 16 nov. 2011 à 09:28
Bonjour,

J'ai une feuille Excel nommée « Statue commande » dans laquelle j'ai un tableau. Dans la colonne A, j'ai le nom du fournisseur, dans la colonne B la référence du produit et dans la D, le statue de la commande sous forme de liste déroulante avec 3 choix ( commander, en commande, reçu) J'aimerai que lorsque je clique sur le commande bouton1 de cette feuille, les lignes pour lesquelles j'ai « A commander » dans la colonne D, les valeurs des colonne A et B soient retranscrites dans les colonnes A et B de la feuilles « A commander », les une après les autres à partir de la première ligne vide.


Merci pour votre aide



5 réponses

michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
9 nov. 2011 à 18:27
bonjour,

Et tu veux absolument du VBA ? cela se fait avec des formules pas trop compliquées...
Tu dis
0
Bonjour, merci pour l'aide,

Oui en VBA serait top,
Je n'y arrive pas...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
10 nov. 2011 à 11:49
bonjour,
envoie un extrait de ton classeur, merci

pour joindre une pièce
mettre le classeur sans données confidentielles en pièce jointe (format XL97-2003) sur
https://www.cjoint.com/
et faire un clic droit sur le lien proposé puis "copier l'adresse du lien" et coller dans le message de réponse

0
Bonjour,

Voici l'exemple:
http://cjoint.com/?AKpmzHTNHVp

Merci pour l'aide
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
Modifié par michel_m le 16/11/2011 à 09:29
Bonjour,

On ne peut pas dire que tu te sois trop fatigué pour faire ton exemple: 2 lignes alors qu'il faut envisager plusieurs "a commander"; ta demande différente du classeur (colonnes AB ---> ABC)...c'est pas grave, les bénévoles bossent un peu plus... :-(

voici la macro
Option Base 1 
Sub macroinutile() 
Dim Nbre As Byte, Lig As Byte 
Dim T_out, Ligvid As Byte 

With Sheets("statut commande") 
     Nbre = Application.CountIf(.Columns("D"), "A commander") 
     If Nbre = 0 Then GoTo vide 
     ReDim T_out(Nbre, 3) 
     Lig = 4 
     For cptr = 1 To Nbre 
          Lig = .Columns("D").Find("A commander", Cells(Lig, "D"), xlValues).Row 
          T_out(cptr, 1) = .Cells(Lig, "A") 
          T_out(cptr, 2) = .Cells(Lig, "B") 
          T_out(cptr, 3) = .Cells(Lig, "C") 
     Next 
End With 

With Sheets("A commander") 
     Ligvid = .Columns("A").Find("", .Range("A5")).Row 
     .Cells(Ligvid, "A").Resize(Nbre, 3) = T_out 
     .Activate 
End With 
Exit Sub 
vide: 
MsgBox " toutes les achats sont passés en commande,vbcritical"

Michel
0