Archivage auto Ligne dans second classeur

Salut à tous,

voici mes attentes : L'utilisateur 1 doit compléter les champs de la dernière ligne du classeur 1 (6 colonnes) qui doit automatiquement être copiée dans la première ligne vide du classeur 2. J'ai bien une ébauche mais qui fonctionne à l'aide d'un bouton que j'ai crée car le macro ne fonctionnait pas automatiquement. Je m'interroge sur les conditions d’exportation de la ligne fraîchement ajoutée du classeur 1 vers la première ligne vide du classeur 2 puisque l'exportation doit s'effectuer après avoir renseigner la dernière colonne de la ligne, je pense... ? (dans l'exemple ci-joint, la colonne G). Le classeur 1 possède la même présentation que le classeur 2, à la seule différence que ce dernier comporte une colonne supplémentaire (ce qui ne gène en rien la manipulation).

Je pense qu'il faut utiliser une condition en lien avec la colonne G mais je n'y arrive pas. Merci de m'aider

Voici mon code modifier mais il ne fonctionne pas correctement, je l'ai placé directement dans le "module" de la feuille 1. Il y a aussi un petit soucis concernant la suppression de la ligne après archivage

.ClearContents

. Je souhaiterais avoir un bouton de suppression, jusque là ca va, qui supprime l'ensemble des lignes cochées à l'aide d'un "OptionButton". Je n'ai pas encore eu l'occasion d'utiliser cette procédure.

Voici le code qui est censé Prendre la dernière ligne ajoutée du classeur 1, puis qui ouvre le classeur 2, définit la dernière première ligne vide et colle la première à al suite. Enfin il enregistre le classeur 2 et le ferme.

Private Sub Archiv(ByVal Target As Range)

Dim WbkDest As Workbook, LigSource As Integer, LigDest As Integer
    If Target.Count > 1 Then Exit Sub
    If Not Intersect(Target, Range("G4:G" & Range("G65536").End(xlUp).Row)) Is Nothing Then
        LigSource = ThisWorkbook.Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
        Set WbkDest = Workbooks.Open("C:\essai1.xls")
        LigDest = WbkDest.Sheets("Feuil1").Range("G65536").End(xlUp).Row + 1
        With Range("B" & Target.Row & ":H" & Target.Row)
            .Copy Sheets("Feuil1").Range("B" & LigDest)
            .ClearContents
        End With
    End If

End Sub

Pour la suppression des lignes voici une méthode simple efficace et sécuritaire mais qui comporte un petit problème malgré tout :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)

Dim ldeb As Long
Dim lfin As Long

Cancel = True

ldeb = 2 'première ligne du tableau pouvant etre dupprimé
lfin = 60 'dernièreligne du tableau pouvant être supprimé
'peut être
'lfin= Range("H65536").End(xlUp).Row

If Not Intersect(Target, Range("H" & ldeb & ":H" & lfin)) Is Nothing And Target.Count = 1 Then
    Select Case MsgBox("Voulez vous supprimer la ligne " & Target.Row & " ?", vbOKCancel + vbQuestion)
        Case vbOK
        Rows(Target.Row).Delete                'supprime une ligne entière OU
        Rows(Target.Row).Clearcontents  'nettoie le contenu de la ligne
    End Select
End If

End Sub

Le double clic sur la colonne H permet de nettoyer ou de supprimer une ligne, mais le problème c'est que si j'utilise Delete, toute la ligne sera supprimer et donc la mise en forme aussi ce qui réduit d'une ligne mon tableau à chaque suppression.

Si j'utilise clearcontents alors la ligne est conservée mais il y a des trous dans mon tableau.

Rechercher des sujets similaires à "archivage auto ligne second classeur"