Excel - macro supprimer ligne

Résolu
laduche81 Messages postés 6 Statut Membre -  
laduche81 Messages postés 6 Statut Membre -
Bonjour !

J'ai créé une macro qui me permet d'insérer une ligne en conservant formules et dimension des cellulles.
j'aimerai créer une autre macro qui ferait l'inverse : supprimer la dernière ligne insérée. Or je ne trouve pas le code qui me permet de faire cela...

Voici mon code pour insérer une nouvelle ligne :
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
ActiveCell(2).Resize(1).EntireRow.Insert
ActiveCell(1).EntireRow.Copy ActiveCell(2).Resize(1).EntireRow
On Error Resume Next 'au cas où il n'y ait pas de constantes
ActiveCell(2).Resize(1).EntireRow. _
SpecialCells(xlConstants).ClearContents
End Sub

Merci par avance de votre aide,

Adrien.

7 réponses

  1. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    La dernière ligne est la 6, voici le code :
    Rows("6:6").Delete Shift:=xlUp
    0
  2. laduche81 Messages postés 6 Statut Membre
     
    Bonjour,
    J'ai essayé votre solution, cela ne me supprime que la cellule, pas la ligne.
    Merci tout de même de votre aide !
    0
    1. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonjour,
      Si vous dites une cellule, votre code est faux.
      Est-vous sur d'avoir écrit correctement l'instruction de code, car il supprime la ligne 6.

      Salutations.
      Le Pingou
      0
  3. laduche81 Messages postés 6 Statut Membre
     
    Oui j'ai fais copier coller de votre code. C'est vrai que votre code précise Row et non pas Cell, donc je ne comprends pas. Je regarde d'où peut venir l'erreur.
    0
    1. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
       
      Bonjour,
      Si vous le désirez, vous pouvez aussi mettre une copie de votre code...
      Salutations.
      Le Pingou
      0
  4. laduche81 Messages postés 6 Statut Membre
     
    Oui ca me met un message d'erreur, je débogue et le code se modifie en :

    Private Sub CommandButton2_Click()
    ActiveCell.Delete.EntireRow

    End Sub
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. laduche81 Messages postés 6 Statut Membre
     
    Je l'ai fait en premier message, je vous le remets :

    Private Sub CommandButton1_Click()

    Application.ScreenUpdating = False
    ActiveCell(2).Resize(1).EntireRow.Insert
    ActiveCell(1).EntireRow.Copy ActiveCell(2).Resize(1).EntireRow
    On Error Resume Next 'au cas où il n'y ait pas de constantes
    ActiveCell(2).Resize(1).EntireRow. _
    SpecialCells(xlConstants).ClearContents

    End Sub

    Private Sub CommandButton2_Click()

    Rows("6:6").Delete Shift:=xlUp

    End Sub

    Merci de votre aide
    0
  7. Le Pingou Messages postés 12274 Date d'inscription   Statut Contributeur Dernière intervention   1 476
     
    Bonjour,
    Oui enfin presque, il n'y avait pas la procédure suivante, mais uniquement celle pour insérer une ligne.
    Cette procédure est correcte et vous supprime la ligne 6.
    Private Sub CommandButton2_Click()

    Rows("6:6").Delete Shift:=xlUp

    End Sub

    Voici une procédure qui supprime la dernière ligne sur la base de valeur au minimum dans la colonne [A] :
    Sub supprimerderligne()
    Dim deli As Long
    ' trouver la dernière ligne
    deli = Cells(Columns(1).Cells.Count, 1).End(xlUp).Row
    Rows(deli).Delete Shift:=xlUp
    End Sub
    0
  8. laduche81 Messages postés 6 Statut Membre
     
    Merci infiniment Le pingou,
    Mon problème est résolu grâce à vous.

    Je vous souhaite une bonne journée !

    Adrien
    0