Création d'un bouton qui copie-colle une ligne

Bonjour,

Je me permets de vous solliciter car j'aimerai créer un bouton qui ajoute une nouvelle ligne correspondant à un nouvelle item à la suite. Comment faire ?

image

Comment s'appelle votre tableau structuré ?

J'imagine que vous avez déjà créé votre bouton contrôle ActiveX sur votre onglet.

Ce n'est pas un tableau structuré, c'est juste des cellules avec de la mis en forme. Oui effectivement j'ai déjà le bouton de créé sur la feuille !

Soit un onglet nommé "Source" et un tableau structuré nommé "t_Donnees"

Sub AjouterUneLigne()

Dim MaNouvelleLigne As ListRow

    With Sheets("Source").ListObjects("t_Donnees")
         Set MaNouvelleLigne = .ListRows.Add
         With MaNouvelleLigne
              .Range(1, 1) = WorksheetFunction.Max(Range("t_Donnees[ITEM]")) + 1
             '.Range(1,2)=... 
         End With
         Set MaNouvelleLigne = Nothing
    End With

End Sub

Merci Eric pour l'aide, pouvez-vous m'indiquer où renseigner ce code (dans 1 nouveau Module j'imagine). Que dois-je faire pour associer cette macro à mon bouton Active X.

Cordialement

Bonjour,

Comme dans cet exemple.

Super merci ça fonctionne parfaitement, est-ce possible d'ajouter une option qui règle automatiquement la hauteur de la nouvelle ligne créée ?

         With MaNouvelleLigne
              .Range(1, 1) = WorksheetFunction.Max(Range("t_Donnees[ITEM]")) + 1
              With .Range
                   .RowHeight = 40
                   .VerticalAlignment = xlCenter
              End With
         End With

C'est exactement ça que je souhaitait merci beaucoup. Juste une dernière demande est-ce possible lors de la création de la nouvelle ligne d'afficher de base les valeurs de la ligne précédente ? Actuellement mes cellules reste vides.

Par exemple, j'aimerai que l'on m'affiche lorsque je créé une nouvelle ligne ces valeurs :

image
Sub AjouterUneLigne()

Dim TabDonnees As ListObject
Dim MaNouvelleLigne As ListRow

    Set TabDonnees = Sheets("Source").ListObjects("t_Donnees")
    With TabDonnees
         Set MaNouvelleLigne = .ListRows.Add
         With MaNouvelleLigne
              If TabDonnees.ListRows.Count > 1 Then
                 TabDonnees.ListRows(TabDonnees.ListRows.Count - 1).Range.Copy .Range(1, 1)
              End If
              .Range(1, 1) = WorksheetFunction.Max(Range("t_Donnees[ITEM]")) + 1
              With .Range
                   .RowHeight = 40
                   .VerticalAlignment = xlCenter
              End With
         End With
         Set MaNouvelleLigne = Nothing
    End With
    Set TabDonnees = Nothing

End Sub

Encore une fois merci, le code fonctionne à la perfection. J'aimerai également ajouter une condition, pour chaque cases PART NUMBER vides faire un remplissage en Rouge de la case.

J'aimerai lors de la suppression d'une ligne, que le numéro d'ITEM suivant se mette automatiquement à jour, c'est-à-dire que si je supprime l'ITEM 2, la ligne 7 où l'item 3 est stocké passe en item 2.

image

Merci de clôturer ce message, et d'en créer un autre. Le principe est de ne traiter que d'un problème à la fois.

Cordialement.

Rechercher des sujets similaires à "creation bouton qui copie colle ligne"