Bouton " effacer" qui efface une ligne qu'on séléctionne

Résolu/Fermé
sossso - 26 août 2014 à 01:02
 sossso - 30 août 2014 à 17:44
Bonsoir ,

je suis encore débutant en vba excel , et je veux créer un bouton effacer , de t

elle façon que lorsque je clik sur le bouton , il efface une ligne que j'ai séléctionné , j'ai déja commencer le code mais je bloque dans la partie ou je dois effacer une ligne séléctionné, existe-il une fonction qui efface une ligne séléctionné ou un truc comme ça ?

Sub effacer()
Dim rep As Integer
rep = MsgBox("Voulez-vous vraiment effacer les résultats?", vbYesNo, "Confirmation")
If rep = vbYes Then
"ligne séléctionnée" .Clear

End If
End Sub


j'espere que le probleme est compris . Merci

cordialement

12 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
Modifié par pijaku le 26/08/2014 à 07:49
Bonjour,

Tu as deux choix :
- soit tu as sélectionné au préalable toute la ligne (en cliquant dans la "marge" de celle-ci) :
Selection.Delete Shift:=xlUp 

- soit tu as sélectionné une cellule de cette ligne :
ActiveCell.EntireRow.Delete Shift:=xlUp


Cordialement,
Franck
0
Normad Messages postés 112 Date d'inscription dimanche 6 juin 2010 Statut Membre Dernière intervention 10 juin 2015 39
26 août 2014 à 08:44
Bonjour, la réponse de pikyju supprime la ligne, si c'est pour effacer les données sans remonter les lignes d'en dessous :

'Suppression de la ligne ou cellule sélectionnée
L = ActiveCell.Row
Rows(L).ClearContents
0
Merci Normad et philip , dont j'ai besoin c'est d'effacer comme l'a dit monsieur normand . mais svp si je veux effacer tout un ensemble de ligne ( y compris une ligne biensur) et remonter les lignes en dessous .

Merci.

Cordialement .
0
Svp est ce que quelqu'un peut me répondre à la question de " remonter une ligne à une ligne vide "

Merci .

Cordialement .
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
27 août 2014 à 11:56
as tu essayé ce que l'on te propose???
0
oui j'avais besoin d'effacer une ligne et je l'ai fais; maintenant j'ai besoin de remonter les lignes au dessous de la ligne effacé . je voulais pas utilisé "supprimer " parceque dans mon code j'ai utilisé des noms de lignes précises si je supprime ça va changer mon code vba .
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
27 août 2014 à 16:14
Effacer + remonter = supprimer.

si je supprime ça va changer mon code vba
Et bien change le...
C'est quoi ton code exact?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
en fait , dans une feuille " interface " excel j'ai mis un bouton "enregistrer" qui me pointe des valeurs de cette feuille "interface" dans une autre feuille "opérations" que j'ai fais pour qu'il soit une sorte de bases de données que j"enregistre . Alors dans cette feuille "opérations" j'ai mis un bouton "effacer" qui m'efface une ligne que je séléctionne , mais je veux qu'il remonte les lignes au dessous , le probleme c'est que dans le code du bouton "enregistrer " les colonnes sont précises , donc jeveux pas utiliser "supprimer" . Bon voila le code du bouton enregistrer :

Sub enregistrer()

Dim repp As Integer, rep As Integer, Dl As Long

If Range("K4").Value = "" Or Range("K4").Value = 0 Then
   
   repp = MsgBox(" Veuillez d'abord executer l'opération !", vbInformation, "Alerte")
   Else
   Sheets("Opérations").Select
   Dl = Application.WorksheetFunction.CountA(ActiveSheet.Range("B5:B100000"))
   Sheets("Interface").Select
        rep = MsgBox("Voulez-vous vraiment enregistrer cette opération ?", vbYesNo, "Enregistrement")
   If rep = vbYes Then
   Sheets("Opérations").Range("B" & CStr(Dl + 5)).Value = Sheets("Interface").Range("E2").Value
   If Dl = 1 Then
   Sheets("Opérations").Range("C" & CStr(Dl + 5)).Value = 1
   Else
   Sheets("Opérations").Range("C" & CStr(Dl + 5)).Value = Sheets("Opérations").Range("C" & CStr(Dl + 4)).Value + 1
   End If
   Sheets("Opérations").Range("D" & CStr(Dl + 5)).Value = Sheets("Interface").Range("E4").Value
   Sheets("Opérations").Range("E" & CStr(Dl + 5)).Value = Sheets("Interface").Range("E5").Value
   Sheets("Opérations").Range("F" & CStr(Dl + 5)).Value = Sheets("Interface").Range("H4").Value
   Sheets("Opérations").Range("G" & CStr(Dl + 5)).Value = Sheets("Interface").Range("K4").Value
   End If

End If

End Sub


est -il necessaire de joindre mon fichier ?

Merci.

Cordialement .
0
borntobealive Messages postés 138 Date d'inscription jeudi 17 juillet 2014 Statut Membre Dernière intervention 25 février 2019 7
27 août 2014 à 17:42
Tu dis que tu ne veux pas utilisé le bouton supprimer pour ne rien faire sur les colonnes intermédiaire mais tu veux quand même que les cases remonte ? (il n'y aura plus de cohérence)

Je pense qu'il va falloir joindre ton fichier
0
sossso Messages postés 29 Date d'inscription dimanche 17 août 2014 Statut Membre Dernière intervention 12 juillet 2016 1
28 août 2014 à 11:06
Bonjour,

En fait je veux remonter le contenu de la ligne , et pas la ligne .

Bon ci-joint mon fichier .

Dsl je suis nouveau dans le forum , pouvez vous me dire comment joindre un fichier , j'ai pas pu le faire !
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
28 août 2014 à 11:14
Pour transmettre un fichier, il faut passer par un site de pièce jointe tel que cjoint.com

Va sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
0
sossso Messages postés 29 Date d'inscription dimanche 17 août 2014 Statut Membre Dernière intervention 12 juillet 2016 1
28 août 2014 à 11:26
Merci . voila mon fichier ci-joint .

https://www.cjoint.com/?DHClAOFv5Tz

Merci.
0
borntobealive Messages postés 138 Date d'inscription jeudi 17 juillet 2014 Statut Membre Dernière intervention 25 février 2019 7
28 août 2014 à 11:50
Ok alors on parle bien du bouton effacer dans interface ?
l'objectif est de supprimer/effacer/remonter quoi ? (pour mois c'est la ligne 10)
prix de vent(DH) doit'il être effacer aussi ?
0
sossso Messages postés 29 Date d'inscription dimanche 17 août 2014 Statut Membre Dernière intervention 12 juillet 2016 1
28 août 2014 à 12:15
Non , je parle du bouton "Effacer" dans la feuille " Opérations" ( dans le feuille interface j'ai pas de probleme) , je vous explique :

dans une feuille " interface " excel j'ai mis un bouton "enregistrer" qui me pointe des valeurs de cette feuille "interface" dans une autre feuille "opérations" que j'ai fais pour qu'il soit une sorte de bases de données que j"enregistre . Alors dans cette feuille "Opérations" j'ai mis un bouton "Effacer" qui m'efface une ligne que je séléctionne , mais je veux qu'il remonte les lignes au dessous , le probleme c'est que dans le code du bouton "enregistrer " les colonnes sont précises , donc jeveux pas utiliser "supprimer" .

Merci.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
28 août 2014 à 12:50
Autrement dit, tu veux supprimer, mais pas toute la ligne. Tu ne veux supprimer que les cellules de B à G de la ligne que tu as sélectionnée...

Soit :
le numéro de la ligne sélectionnée :
Selection.Row
Donc ta plage à supprimer est :
Range("B" & Selection.Row & ":G" & Selection.Row)
Soit avec le code donné au début :
Range("B" & Selection.Row & ":G" & Selection.Row).Delete Shift:=xlUp
0
borntobealive Messages postés 138 Date d'inscription jeudi 17 juillet 2014 Statut Membre Dernière intervention 25 février 2019 7
28 août 2014 à 13:23
mais comme les cases autour sont vide aucun problème avec un
ActiveCell.EntireRow.Delete Shift:=xlUp
non ?

Soit quelque chose m'echappe soit on tourne en rond ...
0
sossso Messages postés 29 Date d'inscription dimanche 17 août 2014 Statut Membre Dernière intervention 12 juillet 2016 1
28 août 2014 à 15:04
Est ce que cette solution " supprimer ", est la seule qui existe ?

est ce que on supprimant la ligne , cela ne va pas changer le fonctionnement du code de la macro "enregistrer" qui est en Module 4 ?

Merci .
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 752
28 août 2014 à 15:19
Et si tu essayais les codes qu'on te donne???
Si tu essayais, peut être ne te poserais tu pas toutes ces questions?,???
0
Le fait d'effacer une ligne ne change rien aux codes car si tu supprimes ligne 2 alors ligne 3 deviendra ligne 2 et ton code marchera toujours.
Le principal en informatique est d'essayer toutes les possibilités, d'observer en pas en pas ce que fait la macro pour trouver le problème. Programme en pas à pas : Commande F8.
0
ui j'essaye ce vous me donnez . Bon je vais travailler avec "supprimer" (Delete) ;

Merci pour vos réponses .

Cordialement .
0