Modififier ligne de code suppression ligne

bonjour a vous

dans ce code qui fonctionne très bien tel qu'il est car il cherche la dernière ligne a partir du bas

Public Sub Supprimer_Ligne()

    Dim lastline As Long
    lastline = Range("A" & ActiveSheet.Rows.Count).End(xlUp)(1).Row
    If lastline < Range("A10").Row Then
        lastline = Range("A10").Row + 1
    End If

    If (Selection.Row <= Range("A10").Row + 1) Or (Selection.Row > lastline) Then
        MsgBox "Sélection hors plage Article", vbInformation + vbOKOnly, "Suppression annulée" ' Effectue une action.quitter"
        Exit Sub
    End If
  Dim Msg, Style, Title
  If MsgBox("êtes vous sur de vouloir supprimer les lignes sélectionnées ?", vbOKCancel + vbDefaultButton2, "attention a la suppression") = vbOK Then  ' Définit le message.
    'récupère le n° de la ligne
    'nomme la variable "cel1" avec la référence de la cellule , "b4" par exemple
    Dim cel1 As String
    Dim cel2 As String
    cel1 = "A" & Selection.Row
    cel2 = "H" & Selection.Rows.Count + Selection.Row - 1
    'nomme "cel1" la cellule, "b4" par exemple
    'sélectionne les cellules à supprimer (exemple b4:P4) => et  remonte les cellules d'1 cran cad b5.P65536 en b4.h65535
    'et ajoute la 65536 vide, mais attention à cette formule, car si il y a des donnees à droite ou à gauche, en a4 ou
    'au delà de P4, dans notre exemple, elles ne bougent pas
    Range(Range(cel1), Range(cel2)).Delete Shift:=xlUp

    lastline = Range("A" & ActiveSheet.Rows.Count).End(xlUp)(1).Row
    If lastline < Range("A10").Row Then
        lastline = Range("A10").Row + 1
    End If
    ActiveWindow.ScrollRow = IIf((lastline - NB_LIGNE_ARTICLE_FIGE) > Range("A10").Row, lastline - NB_LIGNE_ARTICLE_FIGE, Range("A10").Row + 1)
    Range("D" & Selection.Row - 1).Select
    If lastline > Range("A10").Row + 1 Then
        Range("C" & lastline & ":M" & lastline).Borders(xlEdgeBottom).LineStyle = xlContinuous
    End If

  Else    ' L'utilisateur a choisi Non.
    MsgBox "suppression annulée"  ' Effectue une action.quitter"
  End If
End Sub

je voudrais que les lignes concernées soient comprises entre la 10ème et la 43 ème et que dans le même tempselles n'efface pas les formules qui sont dans les colonnes J et K

j'ai bien essayer avec la 1ère ligne

 lastline = Range("A43")' & ActiveSheet.Rows.Count).End(xlUp)(1).Row

mais cela créer un bug a la modification

Pascal

bonjour,

essaie avec

lastline=43

bonsoir h2so4

merci pour cette partie qui fonctionne très bien

je reviens car j'ai une idée pour les formules

Pascal

bonsoir h2so4

je n'arrive pas avec mes formules elles sont écrite comme ceci

=SI(H11=1;E46*G11;"")

en colonne J et en colonne K le 1 est remplacer par 2

=SI(H11=2;E47*G11;"")

et ainsi de suite jusque la ligne 43 et ce mettent comme ceci des la suppression

=SI(#REF!=1;E49*#REF!;"")

Pascal

bonsoir h2so4 et le forum

ta solution

lastline=43

fonctionne mais je ne voyais pas le bas de feuille qui remonte d'autant avant de faire des essais

Pascal

bonjour a tous

juste pour savoir si personne n'a d'idée

Bonjour

Depuis le temps que tu pratiques ce forum, tu sais que pour augmenter tes chances d'avoir une solution, est de fournir un fichier

Bonjour Banzai64

merci de ta réponse mais je le sais bien qu'il faut un exemple mais dès fois que

bon voila enfin le fichier épuré au maximum, sur la feuille il y a le joint de dilation qui est une erreur d'inscription(mauvaise sélection)

donc il faudrait pouvoir supprimer la ligne sans affolé les formules qui sont dessous/dessus cette ligne en col tva J et K et aussi en G

et que le nombre de ligne a écrire reste de la 11ème a la 43ème inclus

merci par avance

12testsupligne.xlsm (42.18 Ko)

Bonjour

A vérifier

bonjour Banzai64

un grand MERCI , c'est parfait ta solution comme quoi un fichier vaux mieux qu'un code et des parlotes

Rechercher des sujets similaires à "modififier ligne code suppression"