Petit problème insertion/supression ligne VBA

cotcot

XLDnaute Junior
Bonjour à tous!
Je sollicite votre aide car je penche la dessu depuis un certain temps sans trouver la solution :S
Je suis débutant en VBA donc les codes que j'ai bidouillé, doivent être archi faux!!

Voila donc dans le tableau ci-joint, je voulais ajouter des lignes grâces au "bouton +" et en enlevé avec le "bouton -" (si on peut faire sa avec une toupie je prend!!).


En fait, la ligne à ajouter ou à supprimer doit rester dans la même famille, c'est à dire que je ne dois pas supprimer la ligne "Total famille" ni ce qui est au dessu. Pour l'ajout de ligne, qui marche à peut près bien, la somme se met à jour automatiquement donc j'ai pas trop de soucis.
Le problème réside plus dans le bouton de suppression car je n'arrive pas à permettre une supression qui se fasse correctement, sans supprimer tout mon tableau...(qui s'arréterais a chaque fois qu'il y a "Total Famille" comme sa je répéterais le code autant de fois que j'ai de famille et recopirais les boutons ou toupies).

Voila ensuite, si jamais quelqun pourrait me dire comment spécifier le nombre de ligne à ajouter avec une inputbox ou autre...
J'espère que j'ai été clair et je vous remercie d'avance!!!
Bonne journée à vous!
 

Pièces jointes

  • Classement coûts.xls
    45.5 KB · Affichages: 123
Dernière édition:

Bebere

XLDnaute Barbatruc
Re : Petit problème insertion/supression ligne VBA

bonjour Cotcot
une proposition pour bouton +

Private Sub CommandButton1_Click()
Dim L1 As Integer, L2 As Integer
Dim Message, Title, Default, MyValue
Dim VarReponse As String, Cel As Range

VarReponse = MsgBox("Insérerer une ligne?", vbYesNo, "Alerte")
If VarReponse = vbNo Then Exit Sub

For Each Cel In Range("B7:B" & Range("B1000").End(xlUp).Row)
If Cel = "Total famille" Then L1 = Cel.Row: Exit For
Next Cel

For Each Cel In Range("B7:B" & Range("B1000").End(xlUp).Row)
If Cel.Row > L1 And Cel = "Total famille" Then L2 = Cel.Row: Exit For
Next Cel

' Définit le message.
Message = "Entrez une valeur > " & L1 & " et < " & L2
Title = "Démonstration de InputBox" ' Définit le titre.
Default = "" ' Définition la valeur par défaut.
' Affiche le message, le titre et la valeur par défaut.
x = InputBox(Message, Title, Default)
If x > L1 Or x < L2 Then
Range("A" & x & ":C" & x).Insert Shift:=xlDown
Range("A" & x & ":B" & x).Interior.ColorIndex = Range("A" & x & ":B" & x).Offset(1, 0).Interior.ColorIndex
End If
End Sub

à bientôt
 

cotcot

XLDnaute Junior
Re : Petit problème insertion/supression ligne VBA

Merci pour ta réponse^^ en fait le bouton +, j'ai utilisé cette formule
Code:
Private Sub CommandButton2_Click()
x = MsgBox("Voulez-vous ajouter une ligne?", vbOKCancel, "Ajout Ligne")
If x = 1 Then
    Range("ligne1").Select
    Selection.Copy
    Selection.Insert Shift:=xlUp
    
    Selection.RowHeight = 16
    
    Application.CutCopyMode = False
If x = 0 Then Exit Sub
End If
End Sub

La "ligne1" est en fait caché. Cela me permet de garder une somme correct même si on suprimer toutes les lignes!
Le seul problème c'est que ma feuille est protégé et je ne trouve plus le code pour enlevé la protection et la remettre afin de pouvoir modifier la taille de la ligne!
Pour ce qui est de la suppression, je pense qu'elle se fera manuellement car je pense pas qu'il soit possible.
 

vbacrumble

XLDnaute Accro
Re : Petit problème insertion/supression ligne VBA

Bonjour à tous



Pour ton bouton suppression

Code:
Private Sub CommandButton2_Click()
If ActiveCell.Column = 2 Then
If Not ActiveCell Like "Total Famille*" Then
Rows(ActiveCell.Row).Delete
End If
End If
End Sub

Je te laisse ajouter les MsgBox
 
Dernière édition:

cotcot

XLDnaute Junior
Re : Petit problème insertion/supression ligne VBA

Merci pour vos réponses^^
vbacrumble, le code que tu m'as donné va donc voir si la cellule sélectionné est vide et supprimer la ligne correspondante?
 
Dernière édition:

vbacrumble

XLDnaute Accro
Re : Petit problème insertion/supression ligne VBA

Re


Tu copies colles le code à la place du code existant
Tu sélectionnes une cellule en colonne B
et tu cliques sur le bouton -

Si la cellule est vide ou différente de Total Famille , la ligne est supprimée.
 

cotcot

XLDnaute Junior
Re : Petit problème insertion/supression ligne VBA

Merci pour ta réponse ^^
En fait je vais t'expliquer ce que je veux faire!
Code:
Private Sub CommandButton3_Click()
x = MsgBox("Voulez-vous supprimer la ligne sélectionné?", vbOKCancel, "Suppression")
If x = 1 Then
If Not Selection Like "Total Famille*" Then
Selection.Delete
If x = 0 Then Exit Sub
End If
End If
End Sub

(je précise que le code ci-dessu ne fonctionne pas :s)

En fait je voudrais que: - l'utilisateur sélectionne une ligne (et si il ne l'a pas fait, que cela affiche une erreur = msgbox)
- qu'un msgbox s'affiche pour confirmé ou non la suppression de la ligne.
Le classeur sera protégé, donc toutes les cellules qui seront vérrouillées ne pourront pas être supprimées! Je ne met active que les lignes pour ajouter des détails. Mais il ne faut pas que les lignes cachées soit supprimer, sinon ma somme ne se mettra plus à jour et la mise en forme de l'ajout de ligne ne se fera plus!!
Merci encore pour ton aide!!
 
Dernière édition:

vbacrumble

XLDnaute Accro
Re : Petit problème insertion/supression ligne VBA

Re



Je te conseillerai de ne pas utiliser de cellules fusionnées

mais : Centrer sur plusieurs colonnes

Personnellement , j'écrirai ton code ainsi
Code:
Private Sub CommandButton2_Click()
x = MsgBox("Voulez-vous ajouter une ligne?", vbOKCancel, "Ajout Ligne")
If x = 1 Then
[ligne1].Insert Shift:=xlUp
Else
Exit Sub
End If
 
Dernière édition:

cotcot

XLDnaute Junior
Re : Petit problème insertion/supression ligne VBA

Oui tout à fait^^ En fait ce n'est pas pour moi que je fais tout ça donc je verais bien ce qui plait ou pas.
Ma méthode permet d'insérer un 0€ à chaque nouvelle ligne et la tienne permet un code 1000X plus clair, plus facile à comprendre, plus facile à recopier^^

Merci en tout cas pour tout!!! Vous êtes vraiment cooool sur ce forum :) Merci à toi!

Et si jamais quelqu'un peut m'aider sur le problème du bouton "supprimer", il n'y a aucun problème mais c'est pas trop grave si je n'y arrive pas, la suppression se fera en "manuel".

Merci encore pour tout ^^ !!
 

Discussions similaires

Réponses
22
Affichages
862

Statistiques des forums

Discussions
312 382
Messages
2 087 838
Membres
103 667
dernier inscrit
datengo