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,
Bonjour,
Une proposition à adapter.
Cdlt.
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,
Bonjour,
Une mise à jour avec les nouveaux élements.
Cdlt.
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