Microsoft 365 effacer à partir de la cellule sélectionnée (ou ligne )

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Bonjour à toutes et à tous,
Je vous souhaite un beau WE :)

Je travaille sur une macro que je n'ai pas réussi à coder jusqu'à maintenant.

Dans le fichier test joint, j'ai une feuille (extraite de mon classeur de travail), grâce à la listbox de Job75, je peux noter des informations concernant mes ressentis sur mes appels.
Ces informations, client par client sont notées de la cellule AB19 à AE64.
Pour les effacer en cas de besoin, je clic sur le bouton "effacer tout" qui efface sans activer la Listbox (puisque pas d'activation de cellules).

Ma difficulté est d'effacer une ligne choisie de AB à AE car si je clique sur les cellules pour effacer, la Listbox s'active.
La solution serait de pouvoir coder ce qui suit :
- Au clic sur le bouton "efface infos ligne choisie",le code
- me demande quelle est la 1ère cellule à effacer et en utilisant "Range(cellule_choisie.Offset(0, 0), cellule_choisie.Offset(0, 3))"
ou
- me demande quel est le n° de la ligne des cellules à effacer et en utilisant "Cells(ligne_choisie.Row.Offset(0, 24), Cells(ligne_choisie.Row.Offset(0, 3))"

Malgré mes recherches et tentatives, je n'ai pas réussi jusqu'à maintenant.
Auriez-vous le bon code ?
Je joins le fichier test et je continue mes recherches ...
Avec mes remerciements,
Amicalement,
lionel,
 

Pièces jointes

  • effacer_koi.xlsm
    49.2 KB · Affichages: 10
Dernière édition:
Solution
Re,

C'est une réponse à :
Ma difficulté est d'effacer une ligne choisie de AB à AE car si je clique sur les cellules pour effacer, la Listbox s'active.

Quand vous sélectionnez une cellule de AB, AC, AD ou AE choisissez l'item 'Effacer' dans la listbox et la cellule s'effacera !

Si vous voulez effacer les infos de la ligne, vous pouvez mettre comme choix : "Effacer infos ligne" et sur listbox1_change :
VB:
Private Sub ListBox1_Change()
    If ListBox1 = "Effacer infos ligne" Then
        Range("AB" & ActiveCell.Row & ":AE" & ActiveCell.Row) = Empty
    Else
        ActiveCell = ListBox1
    End If
    [A1].Select

End Sub

Qui effacera les infos de AB à AE de la ligne active !

Hasco

XLDnaute Barbatruc
Repose en paix
Bonjour,

En P75 du fichier joint, item "Effacer" à reproduire pour les autres listes, comme ça, pas besoin de bouton et de macro supplémentaire pour alourdir la chose.
Et :
VB:
Private Sub ListBox1_Change()
ActiveCell = IIf(ListBox1 = "Effacer", "", ListBox1)
[A1].Select
Exit Sub
End Sub

Cordialement
 

Pièces jointes

  • effacer_koi.xlsm
    53.9 KB · Affichages: 10

Usine à gaz

XLDnaute Barbatruc
Supporter XLD
Re,
"En P75 du fichier joint, item "Effacer" à reproduire pour les autres listes, comme ça, pas besoin de bouton et de macro supplémentaire pour alourdir la chose."

J'ai pas compris la question car les lignes 70 à 81 ne servent que pour la ListBox :)
Pour ma demande, il ne faut pas faire intervenir ces lignes :)
lionel,
 

Hasco

XLDnaute Barbatruc
Repose en paix
Re,

C'est une réponse à :
Ma difficulté est d'effacer une ligne choisie de AB à AE car si je clique sur les cellules pour effacer, la Listbox s'active.

Quand vous sélectionnez une cellule de AB, AC, AD ou AE choisissez l'item 'Effacer' dans la listbox et la cellule s'effacera !

Si vous voulez effacer les infos de la ligne, vous pouvez mettre comme choix : "Effacer infos ligne" et sur listbox1_change :
VB:
Private Sub ListBox1_Change()
    If ListBox1 = "Effacer infos ligne" Then
        Range("AB" & ActiveCell.Row & ":AE" & ActiveCell.Row) = Empty
    Else
        ActiveCell = ListBox1
    End If
    [A1].Select

End Sub

Qui effacera les infos de AB à AE de la ligne active !
 
Dernière édition:

Discussions similaires