XL 2016 Rechercher un mot dans une colonne et copier coller les lignes dans une autre feuille excel

broking

XLDnaute Nouveau
Bonjour,

J'aimerais que les mots "non conforme"et sa ligne soit copié et collé dans un autre tableau excel ainsi que les 10 lignes qui suivent
 

Pièces jointes

  • test.xlsx
    9.8 KB · Affichages: 11

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour Broking, bonjour le forum,

Essaie comme ça :

VB:
Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim PL As Range 'déclare la variable PL (PLage)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Set OS = Worksheets("Sheet1") 'définit l'onglet source OS
Set OD = Worksheets("non conforme") 'définit l'onglet destination OD
Set PL = OS.Range("A3").CurrentRegion 'déinit la plage PL
Set PL = PL.Resize(PL.Rows.Count, PL.Columns.Count + 2) 'redéfinit la plage PL a cause de la colonne G vide (mauvaise idée)
TV = PL 'définit le tableau des valeurs TV
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
    If TV(I, 8) = "non conforme" Then 'condition : si la donnée ligne I colonne 8 de TV vaut "non conforme"
        'définit la cellule de destination DEST
        Set DEST = OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0)
        OS.Cells(I + 2, 1).Resize(11, 8).Copy DEST 'copy et colle la ligne trouvée + 10 dans DEST
    End If 'fin de la condition
Next I 'prochaine de la boucle
End Sub
 

broking

XLDnaute Nouveau
Bonjour Broking, bonjour le forum,

Essaie comme ça :

VB:
Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim PL As Range 'déclare la variable PL (PLage)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim DEST As Range 'déclare la variable DEST (cellule de DESTination)

Set OS = Worksheets("Sheet1") 'définit l'onglet source OS
Set OD = Worksheets("non conforme") 'définit l'onglet destination OD
Set PL = OS.Range("A3").CurrentRegion 'déinit la plage PL
Set PL = PL.Resize(PL.Rows.Count, PL.Columns.Count + 2) 'redéfinit la plage PL a cause de la colonne G vide (mauvaise idée)
TV = PL 'définit le tableau des valeurs TV
For I = 1 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV
    If TV(I, 8) = "non conforme" Then 'condition : si la donnée ligne I colonne 8 de TV vaut "non conforme"
        'définit la cellule de destination DEST
        Set DEST = OD.Cells(Application.Rows.Count, "A").End(xlUp).Offset(1, 0)
        OS.Cells(I + 2, 1).Resize(11, 8).Copy DEST 'copy et colle la ligne trouvée + 10 dans DEST
    End If 'fin de la condition
Next I 'prochaine de la boucle
End Sub


Merci de m'avoir répondu, en revanche ce n'est pas totalement ce que je veux,

j'aimerais à chaque "non conforme" copié les 10 dernières lignes ainsi de suite par exemple si j'ai plusieurs "non conforme" répéter cette action, sans reprendre les anciennes valeurs
 

broking

XLDnaute Nouveau
alors, quand il y à le "non conforme" prendre les dernières lignes après celle-ci (celle après "non conforme" et non conforme inclus en gros 11 lignes) ce document auras plusieurs "non conforme" donc le mieux ce serait de ne pas répéter les non conforme déjà renseigner. (c'est assez difficile a comprendre et même a exprimé donc encore désolé et merci)
 

xUpsilon

XLDnaute Accro
Donc tu veux récupérer les 11 lignes suivant la ligne du non conforme (ligne du non conforme inclue), les stocker dans l'autre feuille, puis continuer et si il y a un autre non conforme faire pareil et stocker les 11 lignes qui y sont associées à la suite des 11 lignes déjà stockées ?
 

Robert

XLDnaute Barbatruc
Repose en paix
Re,

Non, par exemple si je recrée une non conformité et que j'applique votre macro elle ne s'affiche pas dans la feuille "non conformité"
et autre cas quand je re applique la macro les résultats que j'avais auparavant ce duplique.
encore merci

Non non !... Je persiste et je signe. La macro fait exactement ce que tu demandes... Mais si tu avais daigné envoyer un fichier avec un peu plus de données on aurait perdu beaucoup moins de temps.
 

broking

XLDnaute Nouveau
Donc ce qui ne va pas dans ce qu'on t'a proposé c'est simplement que l'on écrase les données déjà existantes à chaque fois que l'on tombe un nouveau "non conforme" ?

oui exactement apres il y aura aussi des "conforme" du coup je n'aimerais avoir que les "non conforme" dans la feuille des "non conforme" et donc ne pas recopié a chaque fois les "non conforme" déjà inscrit
 

Discussions similaires

Statistiques des forums

Discussions
312 185
Messages
2 086 011
Membres
103 093
dernier inscrit
Molinari