Copier une ligne selon une valeur dans une autre feuille

poussy67

XLDnaute Occasionnel
Bonsoir le forum

Cela fait plusieurs jour que cherche dans le forum et d'adapter la vba mais sans résultat. Dans une feuille j'ai des sous total, je voudrais savoir si c'est possible de copier plusieurs cellules situé sur la ligne précédente de la ligne contenant "Commande xxxxxxx".

Je vous remercie d'avance pour le coup de pouce au pro de la vba

cdt Poussy
 

Pièces jointes

  • test.xls
    39 KB · Affichages: 69
  • test.xls
    39 KB · Affichages: 70
  • test.xls
    39 KB · Affichages: 79

pierrexld

XLDnaute Nouveau
Re : Copier une ligne selon une valeur dans une autre feuille

Bonsoir poussy,

J'ai fait une petite macro assez simple qui résoud le problème.
C'est prévu pour que de nouveaux champs puissent être rajoutés ou enlevés dans la feuille QA; il faudra juste adapter le code de la boucle.
Et ne pas faire de ligne vide entre les commandes, ça arrêterait la macro :)
En espérant que ça répond au pb.
 

Pièces jointes

  • test.xls
    53 KB · Affichages: 169
  • test.xls
    53 KB · Affichages: 175
  • test.xls
    53 KB · Affichages: 181

Staple1600

XLDnaute Barbatruc
Re : Copier une ligne selon une valeur dans une autre feuille

Bonjour le fil

Une autre façon de faire (qui copie aussi le format des cellules)
Code:
Sub copie()
Dim c As Range, p As Range
For Each c In Worksheets("QA").Range([D8], [D65536].End(xlUp))
If c.Text Like "Com*" Then
Set p = c.Offset(-1, -3)
Union(p, p.Offset(, 2).Resize(, 2), p.Offset(, 5).Resize(, 5)).Copy Worksheets("Resultat").[A65536].End(xlUp)(2)
Set p = Nothing
End If
Next
Application.CutCopyMode = False
End Sub
 

poussy67

XLDnaute Occasionnel
Re : Copier une ligne selon une valeur dans une autre feuille

Bonjour pierrezxld, bonjour le forum,

Cela correspond presque, est il possible lors des dernières importations ce font toujours à la dernière ligne dans la feuille resultat?

cdt poussy
 

Staple1600

XLDnaute Barbatruc
Re : Copier une ligne selon une valeur dans une autre feuille

Bonjour poussy, le fil, le forum

Je dois être transparent ...
Je suppose donc que tu n'as point vu (ni tester mon code VBA)

EDITION: bonjour Papou-net, toi au moins, tu as de bons yeux ;)
 
Dernière édition:

Paritec

XLDnaute Barbatruc
Re : Copier une ligne selon une valeur dans une autre feuille

Bonjour Tous,
est-il possible d'avoir une traduction pour le ci-dessous ??
Code:
est il possible lors des dernières importations ce font toujours à la dernière ligne
merci d'avance
Papou:)

EDIT: Oui JM cela doit être le cas, car dans ta macro tu le fais, c’est pour cela que je demande une traduction, car à la finale il veut quoi??????? a + Papou:)
 
Dernière édition:

poussy67

XLDnaute Occasionnel
Re : Copier une ligne selon une valeur dans une autre feuille

Re bonjour,

Non tu n'es pas transparent staple1600, je n'avais pas vu ton code je viens de tester ton code je retire ma deuxième question.
Ton code me convient parfaitement staple encore merci pour ton aide


cdt poussy
 

patsyl60

XLDnaute Occasionnel
Re : Copier une ligne selon une valeur dans une autre feuille

Bonjour à tous,

J'ai une application similaire à celle de de poussy 67 à faire.

la macro de staple1600 semble correspondre à ce que je veux faire mais la ligne qté ne semble pas reprendre le cumul (colonne j cellule en vert ).Est-il possible avec la fonction union de récuperer cette cellule à la place de celle du dessus.

D'avance merci de votre réponse.

Bonne journée.

Patsyl60
 

poussy67

XLDnaute Occasionnel
Re : Copier une ligne selon une valeur dans une autre feuille

Re bonjour

Effectivement il me manque le total dans la colonne J (merci Patsyl60), j'ai essayé de trouver une methode mais sans resultat. Si quelqu'un aurait une solution elle sera bien venu

Cdt Poussy
 

Staple1600

XLDnaute Barbatruc
Re : Copier une ligne selon une valeur dans une autre feuille

Bonsoir


Cela fonctionne si... seule la ligne 1 (les entêtes) de la feuille Résultat n'est pas vide
Code:
Sub copieII()
Dim c As Range, p As Range, q As Range
For Each c In Worksheets("QA").Range([D8], [D65536].End(xlUp))
If c.Text Like "Com*" Then
Set p = c.Offset(-1, -3)
Set q = c.Offset(, 6)
q.Copy Worksheets("Resultat").[H65536].End(xlUp)(2)
Union(p, p.Offset(, 2).Resize(, 2), p.Offset(, 5).Resize(, 4), p.Offset(, 5).Resize(, 3)).Copy Worksheets("Resultat").[A65536].End(xlUp)(2)
Set q = Nothing
Set p = Nothing
End If
Next
Application.CutCopyMode = False
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 508
Messages
2 089 136
Membres
104 043
dernier inscrit
SpideyCodeWarrior