aide a la céation d'une macro

jpg21

XLDnaute Nouveau
Bonjour à tous,

Je voudrais créer une macro qui me permettra de supprimer une ligne que j'aurai sélectionné en cliquant sur le bouton effacé. dans le même temps la ligne sera supprimé dans l'onglet correspondant au nom.

J ai déjà commencé a élaboré quelque chose mais vu mon niveau de débutant je bute.

Merci pour votre aide

PS: je joins le fichier

JPG21
 

Pièces jointes

  • Essai planning 41-10 C.xls
    236 KB · Affichages: 42

Staple1600

XLDnaute Barbatruc
Re : aide a la céation d'une macro

Bonsoir à tous


Pour l'effacement ( on efface si la case est cochée)
Code:
Sub Effacer()
Dim sh As Shape
On Error Resume Next
For Each sh In ActiveSheet.Shapes
    If sh.Name Like "Check*" And sh.Type = 8 Then
        If sh = True Then
        Cells(sh.TopLeftCell.Row, "A").Resize(, 9) = Empty
        End If
    End If
Next sh
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : aide a la céation d'une macro

Bonsoir

jpg21
Sur mon fichier de test, elle supprime si la cache est cochée...plus qu'elle ne devrait effectivement.
Il va falloir remédier à la chose.
J m'y attelle de ce pas.
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : aide a la céation d'une macro

Re

Voici le code corrigé et testé avec succès. Ouf ;)
Code:
Sub EffacerOK()
Dim sh As Shape, x&
On Error Resume Next
For Each sh In ActiveSheet.Shapes
    If sh.Name Like "Check*" And sh.Type = 8 Then
        If sh.OLEFormat.Object.Value = 1 Then
        x = sh.TopLeftCell.Row
        Cells(x, "A").Resize(, 9).ClearContents
        End If
    End If
Next sh
End Sub
effacer.png
 
Dernière édition:

jpg21

XLDnaute Nouveau
Re : aide a la céation d'une macro

Bonjour,

Merci pour votre aide, mais il y a un petit problème:
lorsque je clique sur le bouton "effacer", on efface la ligne juste au dessus de celle qui a été selectionné.
de plus j'aurais aimer supprimer la ligne séléctionnée.

Merci encore de votre aide

JPG21
 

Staple1600

XLDnaute Barbatruc
Re : aide a la céation d'une macro

Bonsoir à tous

A la réflexion, (et si cette piste retient ton attention), voici un autre moyen:

Dans le code la feuille où seront effaceés les lignes
NB: Le bouton CommandButton1 est issue de la barre d'outils Contrôles
Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Not Intersect(Target, [H1:H1984]) Is Nothing Then
    Cancel = True
    Target.Font.Name = "Marlett"
        If Target = Empty Then
            Target = "a"
        Else
            Target = Empty
        End If
End If
End Sub
Code:
Private Sub CommandButton1_Click()
Dim i&
dl = Cells(Rows.Count, "H").End(xlUp).Row
For i = dl To 2 Step -1
If Not IsEmpty(Cells(i, "H")) Then
Cells(i, "A").EntireRow.Delete
End If
Next
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 397
Messages
2 088 058
Membres
103 710
dernier inscrit
kty