Amortir un tableau excel avec archivage.

Tenebrae

XLDnaute Nouveau
Bonsoir à tous et toutes! C'est le neurone grillé que je me tourne vers vous car si j'ai des notions en formule Excel, je débute (de chez débutant:D) en VB et manifestement dans mon cas, c'est ce dont je vais avoir besoin.

Mon problème est le suivant : dans un tableau je saisis des anomalies avec un numéro de demande d'intervention. Et jusque là, c'est tout bon. Mais une fois les travaux réalisés, j'aimerai en saisissant la date de clôture que la ligne entière s'archive dans la feuille destinée à cette effet, et bien évidemment, s'efface de la feuille de saisie.
Et fin du fin, peut-être un message de confirmation pour éviter toute boulette ou possibilité de revenir en arrière en enlevant la date de clôture ?
Cependant, je ne voudrais pas abuser, et ne serait-ce que la première partie me dépannerait grandement.
Alors si l'un, ou l'une vous peut m'aider, je lui en suis gré d'avance.

Je vous joins une ébauche du tableau en question ,et encore merci de toute l'attention que vous pourrez y porter.
 

Pièces jointes

  • Tour du siteLite.zip
    8 KB · Affichages: 30

jp14

XLDnaute Barbatruc
Re : Amortir un tableau excel avec archivage.

Bonsoir

Mais une fois les travaux réalisés, j'aimerai en saisissant la date de clôture que la ligne entière s'archive dans la feuille destinée à cette effet, et bien évidemment, s'efface de la feuille de saisie.
Et fin du fin, peut-être un message de confirmation pour éviter toute boulette ou possibilité de revenir en arrière en enlevant la date de clôture ?

Ci dessous une macro évènementielle qui devrait répondre au problème.
A coller avec l'éditeur VBA dans la feuille.


Code:
Private Sub Worksheet_Change(ByVal Target As Range)

Dim dl1 As Long

If Target.Count > 1 Then Exit Sub
If Trim(Target.Value) = "" Then Exit Sub
If Target.Column <> 4 Then Exit Sub
Select Case MsgBox("Vous allez supprimer la ligne N° : " & Target.Row _
                   & vbCrLf & "" _
                   & vbCrLf & "Numéro DI : " & Sheets(ActiveSheet.Name).Range(Target.Address).Offset(0, -3) _
                   & vbCrLf & "" _
                   & vbCrLf & "" _
                   , vbOKCancel Or vbCritical Or vbDefaultButton1, Application.Name)

    Case vbOK
       dl1 = Sheets("Archives").Range("A65536").End(xlUp).Row + 1
        Sheets(ActiveSheet.Name).Rows(Target.Row).Copy _
       Destination:=Sheets("Archives").Rows(dl1)
      Sheets(ActiveSheet.Name).Rows(Target.Row).Delete
    Case vbCancel
       Exit Sub
    End Select
End Sub

A tester

JP
 

Tenebrae

XLDnaute Nouveau
Re : Amortir un tableau excel avec archivage.

De la bombe, mille fois merci!!!
Et comme je débute en VB mais que je suis motivé, j'ai réussi à adapter la macro pour réintégrer l'archive en cas d'erreur.
Trop content de ta réponse qui m'ôte une belle épine du pied, et pas peu fier d'avoir compris/:D
A très bientôt sur le forum et encore merci!
 

Discussions similaires

Statistiques des forums

Discussions
312 490
Messages
2 088 884
Membres
103 982
dernier inscrit
krakencolas