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

Résolu
sossso -  
 sossso -
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

  1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
     
    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
  2. Normad Messages postés 112 Date d'inscription   Statut Membre Dernière intervention   40
     
    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
  3. sossso
     
    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
  4. sossso
     
    Svp est ce que quelqu'un peut me répondre à la question de " remonter une ligne à une ligne vide "

    Merci .

    Cordialement .
    1
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      as tu essayé ce que l'on te propose???
      0
    2. sossso
       
      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
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Effacer + remonter = supprimer.

      si je supprime ça va changer mon code vba
      Et bien change le...
      C'est quoi ton code exact?
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. sossso
     
    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
  7. borntobealive Messages postés 167 Statut Membre 7
     
    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
  8. sossso Messages postés 30 Statut Membre 1
     
    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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
  9. borntobealive Messages postés 167 Statut Membre 7
     
    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
  10. sossso Messages postés 30 Statut Membre 1
     
    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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      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
    2. borntobealive Messages postés 167 Statut Membre 7
       
      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
  11. sossso Messages postés 30 Statut Membre 1
     
    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
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Et si tu essayais les codes qu'on te donne???
      Si tu essayais, peut être ne te poserais tu pas toutes ces questions?,???
      0
    2. Stikmou
       
      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
  12. sossso
     
    ui j'essaye ce vous me donnez . Bon je vais travailler avec "supprimer" (Delete) ;

    Merci pour vos réponses .

    Cordialement .
    0