Vba : code pour supprimer une ligne

Résolu
Bonjour,

Je souhaiterai en appuyant sur un bouton de mon userform supprimer une ligne (d) et l'insérer dans une autre feuille du même classeur. Est-ce possible ?

Merci d'avance !
Configuration: Windows XP Internet Explorer 6.0

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Salut,
    Comment choisis tu la ligne à supprimer?
    S'il s'agit d'une la ligne dont l'utilisateur aura au préalable sélectionné une cellule :

    ActiveCell.EntireRow.Copy Sheets("Feuil2").Range("A65536").End(xlUp).Offset(1, 0)
    ' Sheets("Feuil2").Range("A65536").End(xlUp).Offset(1, 0) est la feuille de destination (feuil2) première ligne vide
    ActiveCell.EntireRow.Delete

    1. En fait , je connais le numéro de la ligne ("d") trouvé grâce à une procédure de recherche à l'ouverture du userform. Mais je peux aussi la sélectionner.
      1. Modérateur
        Si tu connais le numéro de la ligne :

        Rows(d).EntireRow.Copy Sheets("Feuil2").Range("A65536").End(xlUp).Offset(1, 0)
        Rows(d).EntireRow.Delete

        1. Merci Pijaku, ta procédure fonctionnant bien ,j'ai essayé de l'utilisé pour copier une ligne dans une autre fichier (Feuille nommée "IAR" dans le Fichier "z:\mes documents\Dailly Test\Dailly I\IAR.xls") et là ca ne fonctionne pas. Sais tu où est l'erreur dans cette procédure :

          Private Sub CommandButton2_Click()
          Set Plage1 = [_filterdatabase].Offset(1).Resize(, 1)
          Set Plage1 = Plage1.Resize(Plage1.Count - 1).SpecialCells(xlCellTypeVisible)
          Range("I" & Plage1.Row) = "IAR"
          Rows(Plage1.Row).EntireRow.Copy Sheets("Archives régularisations").Range("A65536").End(xlUp).Offset(1, 0)
          Workbooks.Open "z:\mes documents\Dailly Test\Dailly I\IAR.xls"
          Rows(Plage1.Row).EntireRow.Copy Workbooks("IAR.xls").Worksheets("IAR").Range("A65536").End(xlUp).Offset(1, 0)
          Workbooks("New ClasseurTEST.xls").Worksheets("Archive Cessions").Rows(Plage1.Row).EntireRow.Delete
          Workbooks("IAR.xls").Save
          Workbooks("IAR.xls").Close

          ?

          Merci beaucoup.
          1. Modérateur
            ou est l'erreur?
            Plage1.Row?
            Qu'elle ligne est surlignée en jaune par le débogage?
            1. A vrai dire, le problème c'est qu'il n'y a pas d'erreur. Le fichier s'ouvre puis se ferme et la ligné n'est pas insérée mais la procédure n'est pas mis en cause par le debogage vba.
          2. Modérateur
            Dans ce cas, déclenche ta macro "pas à pas" et vérifies ta feuille ecxel au fur et à mesure, tu verras ce qui déconnes et pourras le modifier.
            1. C'est bon, je viens de trouver. Il fallait en fait précisé que la plage concernait le premier fichier :

              Workbooks("New ClasseurTEST.xls").Sheets("Archive Cessions").Rows(Plage1.Row).EntireRow.Copy Workbooks("IAR.xls").Sheets("IAR").Range("A65536").End(xlUp).Offset(1, 0)

              En tout cas merci pour tout !