Couper coller ligne condition

Résolu
May -  
 May -
Bonjour,

Je suis complètement novice sur le langage VBA, et malgré mes recherches sur les forum et livre, je ne trouve pas.

Dans la Feuille nommée "OME", j'ai un tableau avec plusieurs lignes et lorsque dans la colonne M, on entre "KO", j'aimerai que la ligne soit couper et coller dans une autre feuille nommée "Analyse".
Par contre, lorsque l'on clique sur le bouton qui lance l'action VBA, les lignes qui ont été coller précédemment ne doivent pas être écrasées par les nouvelles lignes renseignées.

Pouvez vous m'aider a écrire le code pour cette action ?

MERCI MERCI!

1 réponse

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    Option Explicit
    '-----------------------------------------------------------------------------
    Private Sub Worksheet_Change(ByVal Target As Range)
    Dim Derlig As Integer, Lig As Integer
    Dim Tampon, Ligvid As Integer
    'dernière ligne du tableau
    Derlig = Columns("M").Find(what:="*", searchdirection:=xlPrevious).Row
    On Error GoTo fin
    'conditions de déclenchement : "OK" et dans le tableau colonne M
    If Not Intersect(Target, Range("M2:M" & Derlig)) Is Nothing And Target = "OK" Then
    ' ligne demandée
    Lig = Columns("M").Find("OK", Range("M1"), xlValues).Row
    'mémorisation de la plage à transfèrer
    Tampon = Range(Cells(Lig, "A"), Cells(Lig, "L"))
    With Sheets("Analyse")
    '1° ligne vide
    Ligvid = .Columns("A").Find("", .Range("A1")).Row
    'écriture de la plage
    With .Range(.Cells(Ligvid, "A"), .Cells(Ligvid, "L"))
    .Value = Tampon
    'encadre la ligne
    .Borders.Weight = xlThin
    End With
    End With

    'destruction de la ligne
    Rows(Lig).Delete
    End If
    fin:
    End Sub


    comment installer ?

    copier cette macro
    clic droit sur le nom de l'onglet de la feuille "OME" (en bas de l'écran)
    visualiser le code
    coller

    la maquette de W
    http://www.cjoint.com/c/FFog4uBp3Ut

     Michel
    0
    1. May
       
      Un grand merci! C'est juste parfait!!! :)))

      Une dernière question, comment faire pour que le couper coller ne se fasse que dans la limite du tableau (Colonne A à colonne N) et pas toutes la lignes?

      Sinon, PARFAIT :-x
      0
      1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320 > May
         
        au lieu de Rowss(Lig).delete

        écris
         'destruction de la ligne
        Range(Cells(Lig, "A"), Cells(Lig, "M")).Delete
        'et si on veut voir le résultat des courses (j'avais oublié..)
        Sheets("Analyse").Activate


        et pense à remplacer "L" par "N" dans la macro
        0
    2. May
       
      Super!
      Vous êtes mon héros ;-)
      0