Ajout et suppression de ligne en VBA via bouton

Afterhender

XLDnaute Nouveau
Bonjour tout le monde,
pour les besoins du boulot je dois créer un configurateur d'offre. J'en ai déjà fait un précédent mais pour l'ajout et suppression de ligne dans le tableau j'avais fait une usine à gaz pas très pratique.

Cette fois-ci j'aimerai rendre les choses plus friendly en mettant "simplement" :
- un bouton + pour ajouter une ligne à la fin du tableau
- un bouton - pour supprimer la dernière ligne

Il faut aussi que j'arrive à garder la mise ne forme et les listes déroulantes qui seront dans les colonnes type et model.

Pourriez vous m'aider s'il vous plait ?
 

Pièces jointes

  • tableau.xlsx
    16.6 KB · Affichages: 30

Afterhender

XLDnaute Nouveau
Salut, merci pour ton retour.
L'ajout de ligne que si la ligne du dessus est renseigné marche nickel et c'est même mieux que ce que je pensais.
Par contre pour la suppression, la première ligne ne doit pas être supprimée même si elle est vide.

De plus, je viens de finir la mise en page du "configurateur", du coup en pièce jointe voilà ce que ça devrait donner.

Merci !
 

Pièces jointes

  • offre.xlsm
    51.1 KB · Affichages: 46

vgendron

XLDnaute Barbatruc
Suffit d'ajouter un test
VB:
Private Sub CommandButton2_Click() 'bouton -
With ActiveSheet
    fin = .Range("C" & .Rows.Count).End(xlUp).Row
    If fin = 5 Then 
            .Rows(fin).clearcontents
           Exit Sub '5 et pas 4.. sinon, on garde bien l'entete, mais on perd la liste de validation et la mise en forme
  end if
    If fin <> .UsedRange.Rows.Count Then
       .Rows(fin + 1).Delete
    Else
        .Rows(fin).Delete
    End If
   
End With

End Sub
 

vgendron

XLDnaute Barbatruc
Avant que tu me dises que plus rien ne fonctionne..
voici le code corrigé à mettre dans ton fichier "offre"
Le code change, parce que le tableau change de place

VB:
Private Sub CommandButton1_Click() 'bouton +
Dim fin As Integer

With ActiveSheet
    fin = .Range("C" & .Rows.Count).End(xlUp).Row
   
    If fin = 31 Then Exit Sub
    On Error GoTo fin
    .Rows(fin & ":" & fin).AutoFill Destination:=.Rows(fin & ":" & fin + 1), Type:=xlFillDefault
    .Rows(fin + 1 & ":" & fin + 1).ClearContents
End With
fin:
End Sub

Private Sub CommandButton2_Click() 'bouton -
Dim fin As Integer

With ActiveSheet
    fin = .Range("C" & .Rows.Count).End(xlUp).Row
    If fin = 31 Then Exit Sub
    If fin = 32 Then
        .Rows(fin).ClearContents
        Exit Sub
    Else
        .Rows(fin).Delete
    End If
End With
End Sub
 

Afterhender

XLDnaute Nouveau
Pour info j'ai ajouter une ligne

VB:
Private Sub CommandButton2_Click()
'// bouton - // SUPPRESSION DERNIERE LIGNE TABLEAU

Dim fin As Integer

With ActiveSheet
    fin = .Range("C" & .Rows.Count).End(xlUp).Row
    If fin = 31 Then Exit Sub
    If fin = 32 Then
        .Rows(fin + 1).Delete      ' <<<< Ajout de cette ligne avant le clear content sinon je me retrouvais avec 2 lignes vide au lieu d'une.[/COLOR]
        .Rows(fin).ClearContents
        Exit Sub
    End If
    If fin <> .UsedRange.Rows.Count Then
       .Rows(fin + 1).Delete
    Else
        .Rows(fin).Delete
    End If
End With


End Sub
 

Discussions similaires

Réponses
3
Affichages
176

Statistiques des forums

Discussions
312 084
Messages
2 085 193
Membres
102 810
dernier inscrit
mohammedaminelahbali