Boostez vos compétences Excel avec notre communauté !
Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force.
Apprenez, échangez, progressez – et tout ça gratuitement !
👉 Inscrivez-vous maintenant !
J'ai un petit soucis, je viens donc demander à l'aide auprès de cette superbe communauté.
Je souhaite avoir un bouton qui lancera une inputbox qui demande le numero de la ligne à effacer. Donnons par exemple que l'utilisateur choississe la ligne x
Je voudrais que ca efface automatique la selection qui va de BX à QX (B et Q etant les colonnes fixées, et X la ligne choisie par l'utilisateur).
J'ai immaginé un truc, mais ca fonctionne pas :d :
Code:
Private Sub CommandButton1_Click()
Dim ligne
If MsgBox("Voulez-vous reellement effacer une ligne ?", vbYesNo) = vbYes Then
ligne = InputBox("Quel est le numéro de la ligne à effacer?")
Sheets("feuil3").Select
Range("ligne,B:ligne,Q").Select
Selection.ClearContents
Else
End If
end sub
Sachant que la selection choisie devra etre effacée dans près de 8 feuilles différentes.
De plus, mais c'est accessoire, si c'est possible, peut on remplacer le inputbox par une liste déroulante de nom provenant d'une colonne dans une autre feuille. ?
Je m'explique : sur la feuille 1 j'ai sur la colonne A la colonne "nom", donc sur toutes les lignes, j'ai pleins de nom.
Peut on faire apparaitre dans une liste déroulante les noms qui sont dans la colonne A, et quand on choisi un nom, ca selectionne directement le numero de la ligne du nom... Mais bref, si j'ai pas été clair, c'est pas tres grave, oubliez ca.
Mais vous avez raison, ca peut etre interressant d'utiliser application. Est il possible que lorqu'on appuis sur le bouton "Yes", un feuille particulière soit ouverte, et que l'utilisateur appuis sur une cellule précise (par exemple C12), ca efface automatiquement la plage C12:Q12 ?
Sub toto()
Dim ligne as long, Plg as range
If MsgBox("Voulez-vous reellement effacer une ligne ?", vbYesNo) = vbYes Then
sheets(1).activate
set Plg = Application.InputBox("Sélectionnez une cellule de la ligne à effacer !", _
"Effacement de la sélection", Type:=8)
Sheets(1).Range("B" & plg.row & ":Q" & plg.row).ClearContents
Else
End If
End Sub
Par contre, comme j'ai beaucoup de feuille j'ai essayé de faire une boucle; et ca donne ca :
Code:
Sub suppression_ligne()
Dim ligne As Long, Plg As Range, article As String
If MsgBox("voulez vous supprimer ?vbYesNo) = vbYes Then
for i = 2 to 8
Sheets(i).Activate
Set Plg = Application.InputBox("Sélectionnez l'article à effacer", _
"Effacement de la sélection", Type:=8)
article = Plg
Sheets(i).Range("B" & Plg.Row & ":Q" & Plg.Row).ClearContents
next
MsgBox ("L'article " & article & " est définitement effacé de TOUS les services.")
Else
MsgBox ("Rien n'est effacé!")
End If
End Sub
Sub suppression_ligne2()
Dim Plg As Range, article As String
If MsgBox("voulez vous supprimer ?", vbYesNo) = vbYes Then
Sheets("article et stock").Activate
Set Plg = Application.InputBox("Sélectionnez l'article à effacer", _
"Effacement de la sélection", Type:=8)
article = Plg
For i = 3 To 13
with Sheets(i).Range("B" & Plg.Row & ":Q" & Plg.Row).ClearContents
end with
Next i
MsgBox ("L'article " & article & " est définitement effacé de TOUS les services.")
Else
MsgBox ("Rien n'est effacé!")
End If
End Sub
en fait j'ai compris pkoi ca fonctionne pas,
car il fallait pas faire de 3 à 13 (au passage, je parle bien de l'indexation des feuilles et non des noms).
Chez moi, ca fonctionne en deux étapes:
sheets("feuil3") blabla
Puis
For i = 4 to 13
sheets (i) blavla
Voili voilou.
Merci beaucoup,
grace à vous, j'ai reussi un faire un fichier tip top 😀
- Navigue sans publicité - Accède à Cléa, notre assistante IA experte Excel... et pas que... - Profite de fonctionnalités exclusives Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel. Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.