Modification Macro sur Checkbox Ajout / Suppression de ligne

Salut salut,

Voila j'ai fait ce petit code afin de:

1) Si checkbox1 est décochée cela efface les lignes dont la cellule en colonne A est vide.

2) Si checkbox1 est cochée cela me rajoute une ligne vide à la fin de mon tableau.

Private Sub CheckBox1_Click()
If CheckBox1.Value = False Then
Dim l As Long
For l = Cells(65356, 1).End(xlUp).Row To 1 Step -1
If Cells(l, 1).Value = "" Then Cells(l, 1).EntireRow.Delete
Next l
End If
If CheckBox1.Value = True Then
Range("tableau63").Rows(Range("tableau63").Rows.Count).Insert shift:=xlDown
End If
End Sub

Mais voilà !! Pour le 1 cela m'efface les ligne dont la cellule en colonne A est vide mais partout !! pas que dans mon tableau63 !!

Pour le 2 ca tourne bien !!

Je voudrais transformer ce code pour que :

Si la checkbox1 est décocher cela efface les ligne du tableau63 dont la cellule colonne A est vide.

Si on coche la checkbox1 cela me rajoute une ligne dans mon tableau63 (comme ça le fais "actuellement") et

que cela copie la valeur de : ComboBox1 en A de cette ligne et ComboBox2 en B de cette ligne.

Si on décoche checkbox1 cela supprime la ligne ou ce trouve la valeur de ComboBox1 en A et la valeur de Combobox2 en B

J'espère avoir été claire !!!

Pour la partie surligner je peux ajouter cette partie sur une bouton plutot que sur cette checkbox si ca complique trop le fait d'ajouter ou supprimer une ligne suivant coche ou décoche de cette checkbox !!

merci par avance car j'avance plus a cause de cette checkbox !!

Nadia

Bonjour, pour résoudre la partie surlignée, il suffit de mettre se code en substitution du précédent.

Private Sub CheckBox1_Click()
  If CheckBox1.Value = False Then
    Dim l As Long
    For l = Range("tableau63").Rows(Range("tableau63").Rows.Count).Row To 2 Step -1
      If Cells(l, 1).Value = "" Then Cells(l, 1).EntireRow.Delete
    Next l
  End If
  If CheckBox1.Value = True Then
    Range("tableau63").Rows(Range("tableau63").Rows.Count).Insert shift:=xlDown
  End If
End Sub

Mais je doute que ce soit un checkbox qu'il faut utiliser pour choisir entre effacer des lignes vides ou/et en insérer une car à l'initialisation de l'usf, la checkbox aura une valeur et il faudra donc la manipuler deux fois pour que l'action voulu s’exécute car Private Sub CheckBox1_Click() veut bien dire ce qu'il y a d'écrit: quand clic...

Bonsoir,

Oui en effet j'ai réaliser la manip double si la case cocher ou non a l'ouverture de l'userform

donc est mis le code modifier de suppression de ligne vide uniquement à l'ouverture du formulaire sans IF ....

Ainsi la checkbox peux me permettre de:

Si on coche celle ci cela ajoute une ligne et copie ComboBox1 en A de cette ligne et ComboBox2 en B de cette ligne.

Et si la case est cochée et que l'on décoche cela efface la ligne contenant la meme chose que combobox1 en A et combobox2 en B.

Bon j'ai juste réussi à ajouter la ligne si on coche pour le moment !!! le reste je cherche encore !!

Si quelqu'un a une idée ou une piste pour m'aider serais top !!

Merci Machin

Nadia

A priori ceci est fonctionnel

Private Sub CheckBox1_Click()
  Dim table As Range
  Set table = Range("Tableau63")
  dl = table.Rows.Count + 1
  With Feuil1
    If CheckBox1.Value = False Then
      For i = dl To 1 Step -1
        If .Cells(i, 1) = "" Or i = dl Then
          Rows(i).Delete
        End If
      Next
    Else
      .Cells(dl + 1, 1) = ComboBox1
      .Cells(dl + 1, 2) = ComboBox2
    End If
  End With
End Sub

Bonjour Machin,

J'ai tester cette macro et cela me renvoie une erreur de compil avec variable non définie

sur cette partie avec "DL =" surligné.

dl = table.Rows.Count + 1

Si utile mon tableau commence en A11

rajoutez en début de code

dim dl&

idem pour la variable "i" non définie cela me met sur cette ligne

For i = dl To 1 Step -1
dim i&

je joint a cette réponse le fichier final je pense serra plus aisé pour finaliser cette macro !!

La actuellement si décocher la checkbox efface comme avant des ligne vide partout en haut et

copie combo1 et deux dans l’entête du tableau.

Sur ce fichier j'ai installer la macro dans "userform7" sur la checkbox nommée "TB33" qui ce trouve dans la dernière frame de l'userform7.

Pour tout cela c'est sur l'accueil en cliquant sur septembre et ajouter un enfant. Avec le fichier je pense plus aisé de comprendre ma démarche ...

C'est fonctionnel (je viens de tester). Par contre les cellules fusionnées...C'est pas très adéquate avec du vba.

Private Sub TB33_Click()
'ajout ou suppression enfant dans le tableau septembre
Dim table As Range
Dim dl&
Dim i&
  Set table = Range("TableauMois25345")
  dl = table.RowHeight
  With Feuil3
    If TB33.Value = False Then
      For i = dl To table.Row Step -1
        If .Cells(i, 1) = "" Or i = dl Then
          Rows(i).Delete
        End If
      Next
    Else
    .Cells(dl, 1).EntireRow.Insert 'shift:=xlDown
      .Cells(dl, 1) = ComboBox1
      .Cells(dl, 2) = ComboBox2
    End If
  End With
'Fin ajout ou suppression enfant dans le tableau septembre
If TB33.Value = True Then
TB33.Value = 1
ElseIf TB33.Value = False Then
TB33.Value = 0
End If
End Sub

oui la ça fonctionne mais pas exactement comme cela devrais !!

En effet cette userform7 me sert a modifier la fiche enfant donc serra amener a être modifier régulièrement.

Actuellement le souci, si on ouvre l'userform et que l'on sélectionne le premier nom et prénom

si TB33 est coché cela me rajoute automatiquement une ligne avec le nom et prénom sauf que si l'enfant est déjà dedans cela me rajoute une deuxième fois la ligne donc. Pour comprendre il faut ouvrir le formulaire avec le premier nom et prenom de combox 1 et 2

et coché TB33 et validé avec le bouton modifier puis quitter. Re ouvrir l'userform7 pour modifier autre chose par exemple et la direct cela rajoute une ligne ..... Il faudrais que ce macro soit lancer uniquement lorsque l'on coche TB33 ainsi si on ouvre l'userform pour modifier autre chose cela fais rien concernant ces TB .... Je sais pas si cela existe mais un truc style "Onclick" .... cela ne marche que si on click sur la TB33 ...

Pff j'espère arrivé a m'expliquer !!!!

J'en suis confus , je laisse la main aux aventurier qui aiment les changements de dernière minute car ce n'est pas mon cas.

Cordialement

Pas de souci Machin il est vrai qu'avec mes compétences je me lance dans une big tache !!!! je continue a chercher et peu etre quelqu'un trouvera mais c'est déjà sur une bonne piste !!

merci Machin

Nadia

Rechercher des sujets similaires à "modification macro checkbox ajout suppression ligne"