Amélioration de la fonction effacer ligne

Re-Bonsoir à tous,

Toujours pour le même fichier Excel, j'ai rentré un code permettant d'effacer les valeurs renseignées dans certaines cellules et se trouvant sur la ligne active de la feuille "Feuille_Quincaillerie".

Ma question, pour le bouton "Effacer les données portes", je souhaiterai que si je supprime les données de la ligne 7 de la page 2 alors il me supprime également les données des cellules C6:F6, K6, N6 de la feuille "Calculs".

Et ainsi de suite : si je supprime les données de la ligne 8 de la page 2 alors il me supprime également les données des cellules C7:F7, K7, N7 de la feuille "Calculs" ...

Quelqu'un saurais t-il comment réaliser cela ? Merci d'avance

idem que l'autre question

un peu de ménage dans tes macros et la feuille calcul ne s'efface pas...

A+ François

Bonsoir François,

A nouveau merci pour le coup de main. Je ne suis pas sur de m'avoir bien expliqué, mon but était justement que les lignes correspondantes dans la feuille "Calculs" s'efface en même temps que celles dans la feuilles "Feuilles_Quincailleries".

Je pensais à un truc du style :

"Si la ligne 7 de la colonne 19 à 30 de la feuille "Feuille_Quincaillerie" est vide, alors tu me supprime les valeurs de la ligne 6 colonne 3 à 6 ainsi que la 11 et la 14 de la feuille "Calculs". et ainsi de suite ...

Est-ce que cela est faisable ? car moi j'ai essayé de baragouiner un code avec mes quelques connaissances de If ... Mais rien de fonctionnel !

j'ai rien compris... lol

comment on peut savoir que la ligne 7 de la feuille quincaillerie correspond à la ligne 6,11 et 14 de la feuille calcul

A+ François

Bonjour SOTIN, Fanfan38,

En retour le code de ton module 2 modifié.

Public Sub Effaceur_lignes_portes() 'Bouton "Effacer Ligne"

If MsgBox("Voulez-vous supprimer les données de la ligne active ?", vbYesNo, "Confirmation") = vbYes Then
        Cells(ActiveCell.Row, 19).ClearContents 'efface le contenu HKS1

'ElseIf MsgBox("Voulez-vous supprimer les données de la ligne active ?", vbYesNo, "Confirmation") = vbYes Then
        'Sheets("Calculs").Range("C6:F6").ClearContents

 Lig = ActiveCell.Row - 1

        Cells(ActiveCell.Row, 20).ClearContents 'efface le contenu HKS2
        Cells(ActiveCell.Row, 21).ClearContents 'efface le contenu HKS3
        Cells(ActiveCell.Row, 22).ClearContents 'efface le contenu HK1
        Cells(ActiveCell.Row, 23).ClearContents 'efface le contenu HK2
        Cells(ActiveCell.Row, 24).ClearContents 'efface le contenu HK3
        Cells(ActiveCell.Row, 25).ClearContents 'efface le contenu HK4
        Cells(ActiveCell.Row, 27).ClearContents 'efface le contenu Commandé le
        Cells(ActiveCell.Row, 28).ClearContents 'efface le contenu Livré le
        Cells(ActiveCell.Row, 29).ClearContents 'efface le contenu En stock
        Cells(ActiveCell.Row, 30).ClearContents 'efface le contenu Fournisseur
With Sheets("Calculs")
Range("C" & Lig & ":F" & Lig).ClearContents
Range("K" & Lig).ClearContents
Range("N" & Lig).ClearContents
End With

 Else

    End If

End Sub

Principe: Lorsque tu effaces la ligne sélectionnée en feuille Quincaillerie. Le bouton orangé Effacer les données portes va ôter les données en ligne -1 de la feuille Calculs.

Bonsoir tout le monde,

Principe: Lorsque tu effaces la ligne sélectionnée en feuille Quincaillerie. Le bouton orangé Effacer les données portes va ôter les données en ligne -1 de la feuille Calculs.

C'est exactement ça fanfan38.

X Cellus, j'ai insérer ton code dans le fichier effectivement il me supprime bien la ligne sélectionnée ainsi que la ligne -1, cependant cette dernière ce trouve toujours dans la même feuille ... J'ai essayé de modifier le code mais rien n'y fait. Dans le fichier ci-joint tout est prêt à l'emploi

A nouveau,

cependant cette dernière ce trouve toujours dans la même feuille

Qu'entends tu par cette dernière?

la ligne qui devrait être effacée dans la feuille Calculs s'efface dans la feuille quincaillerie.

Si tu essaie le bouton orange dans le dernier fichier que j'ai envoyé, tu devrais comprendre tout de suite :)

Suite dans le code fourni, j'ai omis de placer un point avant le terme Range.

Il suffit de rectifier cela et ce sera bon.

Donc,

With Sheets("Calculs")
.Range("C" & Lig & ":F" & Lig).ClearContents.
.Range("K" & Lig).ClearContents
.Range("N" & Lig).ClearContents
End With

J'y avais pensé mais lorsque je fais ça il me mets une erreur syntaxte. Cf image

capture d ecran 17

Autant pour moi, j'ai fermé et relancé le fichier et tout fonctionne à merveille ! merci beaucoup pour le coup de main !

Bonne soirée

Apparemment, tu as mal copié la ligne souligné en bleu.

Puisque j'ai testé aussi bien sur le 1ier fichier que sur la copie.

Mais ta ligne de code en utilisant le menu </> du bandeau des messages.

Cela se verra mieux que sur fond bleu.

Et du coup, dans l'éventualité que quelqu'un cherche à résoudre ce même problème, je joint le code complet et fonctionnel ;)

Public Sub Effaceur_lignes_portes() 'Bouton "Effacer Ligne"

If MsgBox("Voulez-vous supprimer les données de la ligne active ?", vbYesNo, "Confirmation") = vbYes Then
        Cells(ActiveCell.Row, 19).ClearContents 'efface le contenu HKS1

'ElseIf MsgBox("Voulez-vous supprimer les données de la ligne active ?", vbYesNo, "Confirmation") = vbYes Then
        'Sheets("Calculs").Range("C6:F6").ClearContents

 Lig = ActiveCell.Row - 1

        Cells(ActiveCell.Row, 20).ClearContents 'efface le contenu HKS2
        Cells(ActiveCell.Row, 21).ClearContents 'efface le contenu HKS3
        Cells(ActiveCell.Row, 22).ClearContents 'efface le contenu HK1
        Cells(ActiveCell.Row, 23).ClearContents 'efface le contenu HK2
        Cells(ActiveCell.Row, 24).ClearContents 'efface le contenu HK3
        Cells(ActiveCell.Row, 25).ClearContents 'efface le contenu HK4
        Cells(ActiveCell.Row, 27).ClearContents 'efface le contenu Commandé le
        Cells(ActiveCell.Row, 28).ClearContents 'efface le contenu Livré le
        Cells(ActiveCell.Row, 29).ClearContents 'efface le contenu En stock
        Cells(ActiveCell.Row, 30).ClearContents 'efface le contenu Fournisseur
With Sheets("Calculs")
.Range("C" & Lig & ":F" & Lig).ClearContents
.Range("K" & Lig).ClearContents
.Range("N" & Lig).ClearContents
End With

 Else

    End If

End Sub

Très bien,

Bonne soirée à toi aussi.

Rechercher des sujets similaires à "amelioration fonction effacer ligne"