Copier/coller ligne sur autre feuille

Fermé
Signaler
Messages postés
1
Date d'inscription
lundi 20 janvier 2020
Statut
Membre
Dernière intervention
20 janvier 2020
-
Messages postés
1412
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
9 mars 2021
-
Bonjour à tous,

je suis débutante sur VBA, voire même plus que débutante !
je souhaite savoir si quelqu'un peut m'aider à trouver le bon code pour faire:

-Feuille 1 = document de base
-Feuille 9 = feuille de destination pour la copie

Je souhaite donc que si dans la colonne "E" de ma feuille 1 le mot "MAYEUX" apparaît, alors toute la ligne correspondante soit collée dans la feuille 9 à partir de la ligne 3 et en suivant.
Mais sans supprimer ma ligne de la feuille 1.

J'espère que mon explication est claire …

Merci d'avance pour votre aide
Bonne journée
A voir également:

2 réponses

Messages postés
7612
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
29 novembre 2021
670
Bonjour,

un exemple à télécharger:

https://www.cjoint.com/c/JAuoLGmFijQ

Messages postés
1412
Date d'inscription
mardi 21 octobre 2014
Statut
Membre
Dernière intervention
9 mars 2021
154
Bjour FloreMiaEmma (vous êtes trois ?), bonjour le forum,

Peut-être comme ça :
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 TV As Variant 'déclare la vriable TV (Tableau des Valeurs
Dim DEST As Range 'déclare la variable DEST (cellul de DESTination)
Dim I As Integer 'déclare la variable I (Incrément)

Set OS = Worksheets("Feuil1") 'définit l'onglet source OS
TV = OS.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
Set OD = Worksheets("Feuil9") 'définit l'onglet destination OD
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs (en parant de la seconde)
    If TV(I, 5) = "MAYEUX" Then 'condition : si la donnée ligne I colonne 5 (=> colonne E) du tableau des valeurs vaut "MAYEUX"
        'définit la cellule de destination DEST (A3 si A3 est vide, sinon la première cellule vide de la colonne A de l'onglet destination)
        Set DEST = IIf(OD.Cells(3, "A").Value = "", OD.Cells(3, "A"), OD.Cells(2, "A").End(xlDown).Offset(1, 0))
        'renvoie dans DEST redimensionnée à 1 ligne et autant de colonnes que TV en a, la ligne I du tableau des valeurs TV
        DEST.Resize(1, UBound(TV, 2)).Value = Application.Index(TV, I)
    End If 'fin de la condition
Next I 'prochaone ligne de la boucle
End Sub