Insérer ligne dans Tableau

Bonsoir à tous,

Je sais que vous m'êtes d'une grande aide à chaque fois. Pouvez vous m'aider dans ce nouveau problème : j'ai 2 feuilles Excel (Formulaire, Tableau de suivi). Dans l'onglet Formulaire, je souhaiterai créer un bouton AJOUTER avec une macro qui me permettrait :

1) D'insérer une ligne en dernière position dans le tableau situé dans l'onglet "TABLEAU DE SUIVI"

2) D'incrémenter un numéro de chrono automatique au début de la nouvelle ligne créé (1, 2, 3, etc...) et que les autres numéros de chrono précédents se modifient automatiquement

3) De copier les cellules blanches de l'onglet "FORMULAIRE" vers l'onglet "TABLEAU DE SUIVI" dans la ligne ainsi créée

4) De revenir sur mon onglet "FORMULAIRE"

Je vous joints le fichier.

Merci d'avance,

8test.xlsm (17.84 Ko)

Bonjour,

Une proposition à adapter.

Cdlt.

9test-1.xlsm (23.94 Ko)
Public Sub Copy_data()
Dim rng As Range, lo As ListObject, Cell As Range

    Set rng = ActiveSheet.Cells(6, 1).Resize(, 6)
    Set lo = Range("T_Suivi").ListObject

    With lo
        If .InsertRowRange Is Nothing Then
            Set Cell = .HeaderRowRange.Cells(1).Offset(.ListRows.Count + 1)
        Else
            Set Cell = .InsertRowRange.Cells(1)
        End If
    End With

    With Cell
        .Value = lo.ListRows.Count + 1
        .Offset(, 1).Resize(, 6).Value = rng.Value
    End With

    rng.ClearContents

End Sub

Merci beaucoup Jean-Eric c'est exactement ce que je voulais.

Bonjour,

Une proposition à adapter.

Cdlt.

Test (1).xlsm

Public Sub Copy_data()
Dim rng As Range, lo As ListObject, Cell As Range

    Set rng = ActiveSheet.Cells(6, 1).Resize(, 6)
    Set lo = Range("T_Suivi").ListObject

    With lo
        If .InsertRowRange Is Nothing Then
            Set Cell = .HeaderRowRange.Cells(1).Offset(.ListRows.Count + 1)
        Else
            Set Cell = .InsertRowRange.Cells(1)
        End If
    End With

    With Cell
        .Value = lo.ListRows.Count + 1
        .Offset(, 1).Resize(, 6).Value = rng.Value
    End With

    rng.ClearContents

End Sub

Jean-Eric, j'aurais besoin de toi de nouveau : j'ai extrait une nouvelle partie de mon tableau (il n'est pas encore complet mais c'est pour essayer de comprendre la démarche à faire pour que je continue le Code VBA).

Le code marche très bien pour le 1er test. En revanche, comment je fais pour le test suivant sachant que je veux toujours faire la même chose que précédemment ? Et si j'ai besoin de copier-coller d'autres éléments par la suite du formulaire vers le tableau suivi ?

Merci d'avance,

1testversion2.xlsm (24.31 Ko)

Bonjour,

Une mise à jour avec les nouveaux élements.

Cdlt.

5testversion2.xlsm (31.20 Ko)
Option Explicit

Public Sub Copy_data()
Dim rng As Range, rng2 As Range, rng3 As Range, lo As ListObject, Cell As Range

    With ActiveSheet
        Set rng = ActiveSheet.Cells(11, 1).Resize(, 6)
        Set rng2 = ActiveSheet.Cells(15, 1).Resize(, 3)
        Set rng3 = ActiveSheet.Cells(19, 1).Resize(, 11)
    End With

    Set lo = Range("T_Suivi").ListObject

    With lo
        If .InsertRowRange Is Nothing Then
            Set Cell = .HeaderRowRange.Cells(1).Offset(.ListRows.Count + 1)
        Else
            Set Cell = .InsertRowRange.Cells(1)
        End If
    End With

    With Cell
        .Value = lo.ListRows.Count + 1
        .Offset(, 1).Resize(, 6).Value = rng.Value
        .Offset(, 7).Resize(, 3).Value = rng2.Value
        .Offset(, 11).Resize(, 11).Value = rng3.Value
    End With

    rng.ClearContents
    rng2.ClearContents
    rng3.ClearContents

End Sub

Encore une fois Merci beaucoup Jean-Eric. J'avance petit à petit dans mon projet mais je pense refaire appel à tes compétences demain ou semaine prochaine

Rechercher des sujets similaires à "inserer ligne tableau"