Comment créer cette macro

pilcar

XLDnaute Nouveau
Bonjour,
je voudrais creer une macro qui, lorsqu'elle détecte le mot 'NON' (il y en a qu'un seul)
entre D1 et D20 sélectionne la ligne ou le 'NON' est positionné.
1) copie la ligne complète en ligne 30 (en insérant une nouvelle ligne).
2) efface la ligne sélectionée entre D1 et D20

Je ne sais pas si c'est possible
MERCI par avance de toute votre aide
 
J

justine

Guest
bonjour le forum, pilcar

dim c as range
for each c in range('d1:d20')
if c.value='NON' then
Rows(c.row).Select
Selection.Copy
Rows('30:30').Select
Selection.Insert Shift:=xlDown
ActiveSheet.Paste
end if
next
 

JeanMarie

XLDnaute Barbatruc
Bonjour

Il y aussi la fonction Match (Equiv) pour retrouver l'emplacement du texte

Code:
Sub Macro1()
Dim vLig As Integer
   On Error Resume Next
   vLig = Application.WorksheetFunction.Match('NON', Range('D1:D20'), 0)
   If vLig > 0 Then
      Rows(vLig).Cut
      Rows(30).Insert Shift:=xlDown
   End If
End Sub

@+Jean-Marie
 

Dan

XLDnaute Barbatruc
Bonjour,

Une petite modification que la macro de Justine pour aller plus vite :
Code:
Sub copiervaleur()
Dim c As Range
For Each c In Range('d1:d20')
If c.Value = 'NON' Then
Rows(c.Row).Copy
Rows('30').Insert Shift:=xlDown
End If
Next
Application.CutCopyMode = False
End Sub

Remarque pour Pilcar, la macro ne fonctionnera que si le NON est bien renseigné en majuscule.

;)

Message édité par: Dan, à: 12/02/2006 16:08
 

Discussions similaires

Statistiques des forums

Discussions
312 508
Messages
2 089 137
Membres
104 045
dernier inscrit
Megajoules