Copier/coller sous condition

Bonjour,

je souhaiterai savoir comment je pourrai copier une ligne s'il y a le mot "RDM" dans la colonne D, et la coller just au dessous.

Exemple: S'il y a le mot "RDM" dans D1 et D5 nous devons copier la première ligne dans la deuxième et la 5 eme ligne dans la 6 eme (Pour Infos : il y a toujours des lignes vides au dessous de chaque ligne à copier).

Merci par avance

Salut,

Je ne sais pas encore gérer les boucles For en vba mais si tu y arrives j'ai peut être une solution.

Pour i allant de 1 à ton nombre de lignes...

If IFERROR(SEARCH("RDM","D" & i),"erreur") <> "erreur" Then

Rows((i+1):(i+1)) = Rows(i:i)

End If

Désolé de faire les choses à moitié, je commence le vba, mais j'espère que tu auras saisi l'idée (si quelqu'un veut écrire ma pensée correctement ne vous gênez pas )

Merci pour ton aide,

Je suis aussi novice sur vba. Je vais essayer d'utiliser ça . merci

J'essaierai de faire mieux si j'ai le temps mais en te renseignant sur les boucles ou en jouant sur la syntaxe (dont je ne suis pas sûr) tu peux y arriver je pense

En attendant comme tu es novice aussi sache que pour te donner la formule j'ai utilisé les formules SIERREUR et CHERCHE basiquement dans une cellule excel et dans la console VBA tu as une fenêtre d'exécution en bas, j'ai utilisé à cet endroit :

? ActiveCell.Formula

Très pratique pour trouver les formules VBA à partir des formules excel

Merci Cotty.

J'ai trouvé cette macro qui fonctionne très bien

Sub Macro1()

Dim O As Worksheet 'déclare la variable O (Onglet)

Dim DL As Integer 'déclare la variable DL (Dernière Ligne)

Dim I As Integer 'déclare la variable I (Incrément)

Set O = Sheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)

DL = O.Cells(Application.Rows.Count, 4).End(xlUp).Row 'définit la dernière ligne éditée Dl de la colonne 4 (=D) de l'onglet O

For I = DL To 1 Step -1 'boucle inversée de la dernière ligne DL à la première

'si la cellule ligne I colonne 4 (=D) est égale à "BONJOUR" (sans tenir compte de la casse) rajoute une ligne au-dessous

If UCase(O.Cells(I, 4).Value) = "BONJOUR" Then Rows(I).Copy Rows(I + 1)

Next I 'prochaine ligne de la boucle

End Sub

Super !

Même si je crois qu'il manque un 'End If' juste avant le 'Next I'

EDIT: rien dit ! My bad, si tu écris sur la même ligne ta condition il n'y a pas besoin

Rechercher des sujets similaires à "copier coller condition"