déplacer lignes sous condition

anneso

XLDnaute Nouveau
Bonjour,

J'utilise excel 2007 et VBA pour la première fois :eek:

J'ai lu plein de tutos mais j’avoue que je suis un peu (carrément) perdue.

Je voudrai déplacer certaines lignes de ma feuille 1, qui en colonne E ont "oui", sur ma feuille 2. En colonne E, j'ai soit "oui, soit "non" avec du texte, soit la cellule est vide.

Voici l'ébauche de macro que j'ai tapée:


Sub Copieaccorddeconfidentialité()

' // Copie des lignes desirées dans les feuilles de calcul dédiées

Dim Plage As Range

Dim Ligne As Range

Dim Origine As Worksheet

Dim Destination As Worksheet

Dim LigneDestination As Integer


Set Origine = Worksheets("accord de confidentialité")

Set Destination = Worksheets("faisabilité")


Set Plage = Range(Origine.Cells(2, 1), Origine.Cells(2, 1).SpecialCells(xlLastCell))


LigneDestination = 2

For Each Ligne In Plage.Rows

If Ligne.Cells(1, 5).Value = "oui" Then

Ligne.Copy Destination.Cells(LigneDestination, 2)

LigneDestination = LigneDestination

End If

Next

End Sub

est ce que quelqu'un voit où je me suis trompée?

sur ma feuille 1:commence en A2 et se termine en F5


Anne-So
 
G

Guest

Guest
Re : déplacer lignes sous condition

Bonjour et bienvenue sur le forum,

Un classeur exemple ANONYMISE avec macro et données bidons mais représentatives du problème serait le bien venu.

Déjà tu peux incrémenter LigneDestination dans ta boucle:

LigneDestination = LigneDestination +1

A+
 

anneso

XLDnaute Nouveau
Re : déplacer lignes sous condition

Merci!

J'ai oublié un point qui doit être important. De la feuille 1, pour les lignes concernées, je ne veux transférer que les 3 premières colonnes (non, mail, tél) sur la feuille 2.

J'ajoute bien + 1 à la fin. Je ne comprend pas pourquoi pas contre. Est ce parce que je change de feuille?
 

Pièces jointes

  • Book1 - Copy.xlsx
    14.9 KB · Affichages: 57
G

Guest

Guest
Re : déplacer lignes sous condition

re,

Dans ton fichier il manquait TA macro. Donc dans le fichier joint, j'ai fait à ma façon. La macro se nomme: TransfertDesOui

En ce qui concerne ta macro et LigneDestination.
A chaque passage de boucle, lorsque tu transfert des données de origine vers destination, si tu n'incrémente pas ton compteur de ligne (LigneDestination) les données transférées se copieront toujours sur la ligne 2 et il ne te restera en fin de macro que la dernière ligne transférée.

A+
 

anneso

XLDnaute Nouveau
Re : déplacer lignes sous condition

Bonjour Hasco,

Merci beaucoup pour l'aide et l'explication.

Un problème résolu en entraîne un autre: j'aimerai que le déplacement de mes lignes "oui" se fasse au fur et à mesure que je rempli mon tableau.
Là quand j'applique la macro, après avoir entré de nouvelles données, ça met bien ma feuille 2 à jour mais il y a des doublons.

Je cherche comment faire.
Si je ne trouve pas je reviendrai sur le forum :)

Merci et bonne journée!
 
G

Guest

Guest
Re : déplacer lignes sous condition

Bonjour,

Dans ton fichier en retour, la macro modifiée de façon à ce qu'il n'y ait plus de doublons dans la feuille destination.
(La ligne est recherchée sur le n° de téléphone, sensé être unique)

Egalement sur Evènement Worksheet_Change dans le module de code de la feuille "Feuille 1" (click-droit sur son onglet puis 'visualiser le code'). Lorsqu'une cellule en colonne E change si elle est Oui, les 3 cellules de la ligne sont transférées, soit vers une nouvelle ligne si N° n'existe pas dans destination soit sur la ligne du N° tel trouvé.

Une extraction par filtre avancé pourrait faire la même chose. Alors attention à ne pas transformer quelque chose qui pourrait être simple en une usine à gaz.


A+
 

Discussions similaires

Réponses
2
Affichages
117

Statistiques des forums

Discussions
312 211
Messages
2 086 299
Membres
103 172
dernier inscrit
Aurelyan