Supprimer uniquement 2 cellules dans une liste
Résolu/Fermé
balou11
Messages postés
26
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
1 juin 2022
-
26 mai 2022 à 10:08
balou11 Messages postés 26 Date d'inscription jeudi 17 janvier 2013 Statut Membre Dernière intervention 1 juin 2022 - 27 mai 2022 à 15:40
balou11 Messages postés 26 Date d'inscription jeudi 17 janvier 2013 Statut Membre Dernière intervention 1 juin 2022 - 27 mai 2022 à 15:40
A voir également:
- Supprimer uniquement 2 cellules dans une liste
- Liste déroulante excel - Guide
- Supprimer une page word - Guide
- Supprimer compte instagram - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Aller à la ligne dans une cellule excel - Guide
9 réponses
_Ritchi_
Messages postés
21288
Date d'inscription
samedi 17 mars 2007
Statut
Contributeur
Dernière intervention
11 novembre 2024
6 079
26 mai 2022 à 10:30
26 mai 2022 à 10:30
Bonjour
Juste une info: EntireRow signifie ligne entière et donc la commande Delete qui suit efface ... la ligne entière.
Toi ce que tu veux c’est effacer la/les cellules trouvées : pourquoi ne pas demander à Excel de remplacer la valeur par rien comme dans cet exemple qui devrait t’inspirer:
https://www.extendoffice.com/documents/excel/4088-excel-button-to-clear-specific-cells.html
Ritchi
Juste une info: EntireRow signifie ligne entière et donc la commande Delete qui suit efface ... la ligne entière.
Toi ce que tu veux c’est effacer la/les cellules trouvées : pourquoi ne pas demander à Excel de remplacer la valeur par rien comme dans cet exemple qui devrait t’inspirer:
https://www.extendoffice.com/documents/excel/4088-excel-button-to-clear-specific-cells.html
Ritchi
_Ritchi_
Messages postés
21288
Date d'inscription
samedi 17 mars 2007
Statut
Contributeur
Dernière intervention
11 novembre 2024
6 079
Modifié le 26 mai 2022 à 12:08
Modifié le 26 mai 2022 à 12:08
il y a alors ceci: https://www.mrexcel.com/board/threads/vba-macro-to-delete-cells-and-shift-up.1117528/
ou cela: https://analysistabs.com/vba-code/range/m/delete/
Cela utilise range.delete et tu peux indiquer le décalage (haut, droite, gauche) qui sera fait pour combler les cellules effacées
En voici une version illustrée dans la partie "Difference Between Clear & Delete Methods": https://www.wallstreetmojo.com/vba-clear-contents/
ou cela: https://analysistabs.com/vba-code/range/m/delete/
Cela utilise range.delete et tu peux indiquer le décalage (haut, droite, gauche) qui sera fait pour combler les cellules effacées
En voici une version illustrée dans la partie "Difference Between Clear & Delete Methods": https://www.wallstreetmojo.com/vba-clear-contents/
balou11
Messages postés
26
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
1 juin 2022
26 mai 2022 à 16:45
26 mai 2022 à 16:45
Je viens d'essayer un tas de lignes de commandes, mais en vain !
Sais tu me dire par quoi je dois remplacer cette ligne :
Rows([G02:G1048576].Find(TxtEntrepriseRecherche.Value).Row).EntireRow.Delete
pour résoudre mon problème !
Merci,
Sais tu me dire par quoi je dois remplacer cette ligne :
Rows([G02:G1048576].Find(TxtEntrepriseRecherche.Value).Row).EntireRow.Delete
pour résoudre mon problème !
Merci,
cs_Le Pivert
Messages postés
7904
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
14 août 2024
729
26 mai 2022 à 17:25
26 mai 2022 à 17:25
Bonjour,
voici un exemple. J'ai remplacé TxtEntrepriseRecherche par une InputBox:
voilà à adapter
voici un exemple. J'ai remplacé TxtEntrepriseRecherche par une InputBox:
Sub test() Dim entreprise As String Dim ligne As Integer entreprise = InputBox("Entrez le nom de l'entreprise:", "Suppression") ligne = Cells.Find(entreprise, , xlValues, xlWhole).Row Range("G" & ligne & ":H" & ligne).ClearContents End Sub
voilà à adapter
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
balou11
Messages postés
26
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
1 juin 2022
26 mai 2022 à 20:27
26 mai 2022 à 20:27
Bonjour le pivert,
Alors après plusieurs essais infructueux, je ne m'en sort toujours pas .....je vais continuer mes investigations.
Je vais continuer de chercher a moins que ....... !
Merci beaucoup
Alors après plusieurs essais infructueux, je ne m'en sort toujours pas .....je vais continuer mes investigations.
Je vais continuer de chercher a moins que ....... !
Merci beaucoup
via55
Messages postés
14496
Date d'inscription
mercredi 16 janvier 2013
Statut
Membre
Dernière intervention
22 novembre 2024
2 735
Modifié le 26 mai 2022 à 20:49
Modifié le 26 mai 2022 à 20:49
Bonsoir à vous tous
Balou, Le Pivert t'a aiguillé vers la solution mais incomplètement car il n'y a pas suppression des vides
En utilisant son instruction combinée à la tienne tu peux obtenir
ligne = Cells.Find(TxtEntrepriseRecherche.Value, , xlValues, xlWhole).Row
te donnant le n° de la ligne où effacer les valeurs en G et H
que tu effaceras avec l'instruction de Le PIvert :
Range("G" & ligne & ":H" & ligne).ClearContents
Ensuite pour supprimer les blancs ainsi créés dans tes listes en G et H il te suffit de faire trier ta liste en G et ta liste en H en même temps sur la colonne G par ordre alphabétique. Fais ce tri "manuellement" une fois en ayant lancé avant l'enregistreur de macros et tu auras les lignes de macros à ajouter à la fin de la tienne après l'effacement des cellules
Cdlmnt
Via
Balou, Le Pivert t'a aiguillé vers la solution mais incomplètement car il n'y a pas suppression des vides
En utilisant son instruction combinée à la tienne tu peux obtenir
ligne = Cells.Find(TxtEntrepriseRecherche.Value, , xlValues, xlWhole).Row
te donnant le n° de la ligne où effacer les valeurs en G et H
que tu effaceras avec l'instruction de Le PIvert :
Range("G" & ligne & ":H" & ligne).ClearContents
Ensuite pour supprimer les blancs ainsi créés dans tes listes en G et H il te suffit de faire trier ta liste en G et ta liste en H en même temps sur la colonne G par ordre alphabétique. Fais ce tri "manuellement" une fois en ayant lancé avant l'enregistreur de macros et tu auras les lignes de macros à ajouter à la fin de la tienne après l'effacement des cellules
Cdlmnt
Via
balou11
Messages postés
26
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
1 juin 2022
26 mai 2022 à 20:52
26 mai 2022 à 20:52
Bonsoir Via,
C'est super sympa.
Je vais essayer de combiné tout ça, si je trouve quelque chose de simple et efficace , je vous ferais passer le code.
Merci beaucoup, a vous tous !
Bonne soirée
C'est super sympa.
Je vais essayer de combiné tout ça, si je trouve quelque chose de simple et efficace , je vous ferais passer le code.
Merci beaucoup, a vous tous !
Bonne soirée
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 427
Modifié le 26 mai 2022 à 21:04
Modifié le 26 mai 2022 à 21:04
Bonjour à tous
En reprenant la solution de via55, une fois ligne trouvée, en utilisant la remarque de _Ritchi_ (post 3)
Range("G" & ligne & ":H" & ligne).Delete
permet de supprimer les deux cellules et de remonter la suite des colonnes G et H d'une ligne
Là, tu n'auras plus besoin d'effacer le contenu des cellules à supprimer
Cdlmnt
En reprenant la solution de via55, une fois ligne trouvée, en utilisant la remarque de _Ritchi_ (post 3)
Range("G" & ligne & ":H" & ligne).Delete
permet de supprimer les deux cellules et de remonter la suite des colonnes G et H d'une ligne
Là, tu n'auras plus besoin d'effacer le contenu des cellules à supprimer
Cdlmnt
balou11
Messages postés
26
Date d'inscription
jeudi 17 janvier 2013
Statut
Membre
Dernière intervention
1 juin 2022
27 mai 2022 à 15:40
27 mai 2022 à 15:40
Bonjour a tous,
Voila le code qui fonctionne parfaitement bien et ceci grâce a votre aide précieuse !
Private Sub BtnSuppression_Click()
Dim entreprise As String
Dim ligne As Integer
Sheets("Liste").Select
If MsgBox("Confirme tu la suppression de cette ENTREPRISE ?", vbYesNo, "Demande de suppression de l'entreprise") = vbYes Then
ligne = Cells.Find(TxtEntrepriseRecherche.Value, , xlValues, xlWhole).Row 'correspond a la ligne recherchée
Range("G" & ligne & ":H" & ligne).Delete Shift:=xlUp ' permet de supprimer les cellules sélectionnées et de remonter vers le haut
Sheets("tableau de bord").Activate
End If
Encore merci a tous.
Voila le code qui fonctionne parfaitement bien et ceci grâce a votre aide précieuse !
Private Sub BtnSuppression_Click()
Dim entreprise As String
Dim ligne As Integer
Sheets("Liste").Select
If MsgBox("Confirme tu la suppression de cette ENTREPRISE ?", vbYesNo, "Demande de suppression de l'entreprise") = vbYes Then
ligne = Cells.Find(TxtEntrepriseRecherche.Value, , xlValues, xlWhole).Row 'correspond a la ligne recherchée
Range("G" & ligne & ":H" & ligne).Delete Shift:=xlUp ' permet de supprimer les cellules sélectionnées et de remonter vers le haut
Sheets("tableau de bord").Activate
End If
Encore merci a tous.
26 mai 2022 à 11:29
Oui cela j'y avait pensé, mais les cellules sont nominatives, je veux juste au lieu de supprimer la ligne, supprimer l'entreprise avec le nombre de salariés. Elle peut (l'entreprise) se trouver en G12 ou G20 ou G3012 ou ....etc, donc je ne peux pas utiliser la macro de ton exemple, en plus et il faut en même temps de supprimer l'entreprise, supprimer le nombre d'employés qui se trouve a coté en colonne H !
Donc l'idée c'est de trouver le code qui va bien, pour remplacer celui ci dessous car il fonctionne très bien mais il supprime la ligne entière effectivement a cause de la valeur EntireRow. Le début du code est bon je pense a savoir :
Rows([G02:G1048576].Find(TxtEntrepriseRecherche.Value).Row)
Mais c'est la fin que je ne trouve pas il faut remplacer (.EntireRow.Delete) par ????
En tout cas merci Ritchi d'voir pris du temps pour me répondre !
Bonne journée