XL 2016 Bonjour.

manzol

XLDnaute Nouveau
Bonjour les pro. besoin de votre aide.
j'ai un classeur contenant un formulaire d'enregistrement et un tableau où sont stockées les données que j'enregistrer.
Maintenant j'ai cherche le code VBA qui permet de supprimer une ligne à partir d'un critère précis (ex: supprimer la 10è ligne du tableau).
merci d'avance pour votre aide
 

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite une belle journée :)
@manzol
- Ce serait bien de mettre un titre qui reflète votre besoin, cela permet de mieux retrouver les discussions par la suite,
- Expliquez plus clairement votre besoin (quel critère ? par exemple),
- Egalement, un fichier exemple montrant ce que vous attendez, nous permettrait de vous répondre,
Bonne journée,
Amicalement,
lionel,
 
Dernière édition:

manzol

XLDnaute Nouveau
Bonjour @Usine à gaz, merci beaucoup pour votre reaction.
je joins mon fichier pour vous permettre de bien me comprendre et m'aider.
en effet sur le tableau là dans la feuille journal, je veux securiser la feuille pour empecher toutes modification manuelle dans ce cas:
- je veux par exemple supprimer la 2è opération (dont la reférence est la première colonne du tableau (num OP)), je veux créer un bouton "supprimer", en cliquant dessus ça te sort une boite de dialogue, tu tape par ex: 2 puis tu clique "ok" pouf ça supprime la ligne qui porte le numero 2 dans la premiere colonne.

- ou soit m'aider à créer un boutton/icone de suppression sur chaque ligne, comme ça en cliquant dessus la ligne s'efface directement.

merci beaucoup d'avance
 

Pièces jointes

  • mon fichier mz.xlsm
    32 KB · Affichages: 7

soan

XLDnaute Barbatruc
Inactif
@manzol, le fil,

ton fichier en retour. :)

pour ce que je vais te proposer, y'a ni boîte de dialogue pour saisir un n° d'opération, ni ligne à cocher ; il faut juste que tu sélectionnes la bonne cellule avant de faire Ctrl e ; ça doit être en colonne A ; à partir de la ligne 9 ou en dessous ; et seulement si la cellule à droite n'est pas vide, car OP doit être indiqué en colonne B : il faut un n° d'opération.

par exemple, tu veux supprimer l'opération n° 4 ; sélectionne A16 et fais Ctrl erien, et c'est normal, car B16 est vide ; sélectionne A15 et fais Ctrl e ➯ message : "Voulez-vous supprimer l'opération n° 4 ?" ; clic sur "Oui" ➯ ça supprime les 2 lignes 15 et 16 de l'opération n° 4 ; bien sûr, si t'avais cliqué sur "Non" : feuille inchangée.

autre exemple (juste après avoir supprimé l'opération n° 4) : tu veux supprimer l'opération n° 9 ; sélectionne A23 et fais Ctrl e ➯ message : "Voulez-vous supprimer l'opération n° 9 ?" ; clic sur "Oui" ➯ ça supprime les 2 lignes 23 et 24 de l'opération n° 9.

cerise sur le gâteau : si une opération fait plus de 2 lignes, elle sera entièrement supprimée. 😊

mon code VBA est dans Module4 :

VB:
Option Explicit

Sub SupprOp()
  Dim col%, lg1&, lg2&
  With ActiveCell
    col = .Column: If col > 1 Then Exit Sub
    lg1 = .Row: If lg1 < 9 Then Exit Sub
    If .Offset(, 1) = "" Then Exit Sub
  End With
  lg2 = lg1 + 1
  Do While Cells(lg2, 2) = "" And Cells(lg2, 3) <> ""
    lg2 = lg2 + 1
  Loop
  lg2 = lg2 - 1
  If MsgBox("Voulez-vous supprimer l'opération n° " & Cells(lg1, 2) _
    & " ?", 36) = 6 Then Rows(lg1 & ":" & lg2).Delete
End Sub

regarde aussi Module1. 😜 c'est non testé puisque ta feuille "balance" est absente ; de plus, bizarrement, tu as utilisé à la fois sh et sh2 pour référencer la même feuille "journal1" !

soan
 

Pièces jointes

  • mon fichier mz.xlsm
    29.5 KB · Affichages: 4
Dernière édition:

Discussions similaires