Supprimer une ligne avec cellule de choix

Résolu/Fermé
medbo Messages postés 551 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 24 mars 2019 - 4 juin 2009 à 21:59
medbo Messages postés 551 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 24 mars 2019 - 10 juin 2009 à 21:21
Bonjour,

je viens de me lancer en VBA Excel, et je ne trouve pas de solution à mon problème

je voudrai après avoir choisi une entrée dans un "combobox" supprimer la ligne auquelle appartient la cellule contenant le choix effectué dans "combobox"

Merci pour votre aide
A voir également:

11 réponses

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
5 juin 2009 à 16:45
Salut,
essaie ceci (merci michel_m!!!)

valeur = ComboBox1
lig = Columns(1).Find(valeur, Range("A65536")).Row 'si ta valeur est en colonne A si en B : Columns(2) si en C : Columns(3) etc...
Rows(lig).Select
Selection.Delete Shift:=xlUp
0
medbo Messages postés 551 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 24 mars 2019 29
5 juin 2009 à 18:15
Ça ne marche pas
0
medbo Messages postés 551 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 24 mars 2019 29
5 juin 2009 à 20:01
la valeur choisi dans le combobox doit être rechérché dans la feuil Entrées puis supprimer la ligne correspondante, voici le code que j'ai rentré :

Private Sub UserForm_Click()
valeur = ComboBox1
lig = Worksheets("Entrées").Columns(1).Find(valeur, Range("A65536")).Row
Rows(lig).Select
Selection.Delete Shift:=xlUp
End Sub

dites moi où est l'erreur
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
8 juin 2009 à 14:11
Salut,
Il n'y a pas d'erreur apparente.
Dans qu'elle colonne se trouve la valeur à rechercher?
Si c'est colonne A : lig = Worksheets("Entrées").Columns(1).Find(valeur, Range("A65536")).Row
colonne B : lig = Worksheets("Entrées").Columns(2).Find(valeur, Range("A65536")).Row
colonne C : lig = Worksheets("Entrées").Columns(3).Find(valeur, Range("A65536")).Row
et coetera...
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
8 juin 2009 à 14:27
Bonjour
pat'quoi pijaku ;o)

si colonne B
lig = Worksheets("Entrées").Columns(2).Find(valeur, Range("B65536")).Row

comme on est pas sûrs que la feuille active est la feuille "entées", pour ma part j'aurais écrit
With Worksheets("Entrées")
.rows(.Columns(2).Find(valeur, .Range("B65536")).Row ).delete
end with
ne pas oublier les points
mais je n'ai pas testé


0

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

Posez votre question
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
8 juin 2009 à 14:28
Fectivement ai oublié modifier Range ..... Range("B65536")).Row au lieu de Range("A65536")).Row
comme quoi 2 têtes valent mieux....
0
medbo Messages postés 551 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 24 mars 2019 29
9 juin 2009 à 22:25
Ça me supprime la ligne voulue mais aussi toutes les lignes se trouvant après elle et ce n'est pas ce que je veux. je veux celement supprimer la ligne voulu et garder toute les autres lignes, celle en dessu et celle en dessou
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
9 juin 2009 à 22:48
vachement poli ce post 8 pour ceux qui essayent de t'aider
alors, dem... toi tout seul
--
0
medbo Messages postés 551 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 24 mars 2019 29
9 juin 2009 à 23:29
Je suis désolé pour cette réponse, j'avoue que ce n'est pas gentille de ma part de ne pas dire aumoins merci, mais c'est que je me tire les cheuveux avec VBA, je ne suis pas un programmeur et j'éssaie d'apprendre et ça m'enerve un peux car j'en ai besoin et ça urge. Voila pourquoi.

ce n'est pas mon intention d'être impoli.

encore désolé et merci beaucoup pour tout ceux qui m'ont aider et ceux qui essaient de m'aider.
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
10 juin 2009 à 13:33
Salut,
Le code (donné par michel_m) : lig = Worksheets("Entrées").Columns(2).Find(valeur, Range("B65536")).Row te renvoie le numéro de la ligne ou figure la valeur recherchée. Ok?
Donc pour supprimer uniquement la ligne concerné, tu la sélectionnes :
row(lig).select (ou un truc dans le genre...)
et tu la supprime
selection.delete (ou un truc dans le genre...)
0
michel_m Messages postés 16603 Date d'inscription lundi 12 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2023 3 303
10 juin 2009 à 13:38
bonjour,
directement
rows(lig).delete
(toujours éviter les select-selection inutiles, ralentisseurs et bouffeurs de mémoire...)
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 743
10 juin 2009 à 13:39
exact.
Merci pour lui.
0
medbo Messages postés 551 Date d'inscription lundi 18 avril 2005 Statut Membre Dernière intervention 24 mars 2019 29
10 juin 2009 à 21:21
Merci beaucoup, c'est exactement ce que je cherchais. c'est très gentille de votre part

encore désolé pour le post 8.
0