Vba : code pour supprimer une ligne

Résolu
Usgpa -  
 Usgpa -
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

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  2. Usgpa
     
    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.
    0
  3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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

    0
  4. Usgpa
     
    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.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    ou est l'erreur?
    Plage1.Row?
    Qu'elle ligne est surlignée en jaune par le débogage?
    0
    1. Usgpa
       
      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.
      0
  7. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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.
    0
  8. Usgpa
     
    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 !
    0