OVH Cloud OVH Cloud

Supprimer une cellule selon son contenu

8 réponses
Avatar
ManBas
Re-bonjour,
J'essai d'écrire le code qui me permettrait de supprimer une cellule selon
son contenu.
Ce que j'ai écrit ne marche pas, avec les boucles j'ai du mal.
La cellule active ne "bouge" pas!

Dim cell As Range
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
Range("i2:i" & Range("i65536").End(xlUp).Row).Select
For Each cell In Selection
If cell.Value = NomASupprimer Then ActiveCell.Delete Shift:=xlUp
Next
End Sub

Merci du coup de main les amis!

8 réponses

Avatar
RGI
bonjour

comme ceci

Sub efface()
Dim DernLigne, i, NomASupprimer
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
If NomASupprimer = "" Then Exit Sub
DernLigne = Cells(Rows.Count, 9).End(xlUp).Row
For i = DernLigne To 2 Step -1
If Cells(i, 9).Value = NomASupprimer Then
Cells(i, 9).Delete 'Shift:=xlUp
End If
Next i
End Sub


salutations

Gilbert

"ManBas" a écrit dans le message de news:
eunIyJ%
Re-bonjour,
J'essai d'écrire le code qui me permettrait de supprimer une cellule selon
son contenu.
Ce que j'ai écrit ne marche pas, avec les boucles j'ai du mal.
La cellule active ne "bouge" pas!

Dim cell As Range
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
Range("i2:i" & Range("i65536").End(xlUp).Row).Select
For Each cell In Selection
If cell.Value = NomASupprimer Then ActiveCell.Delete Shift:=xlUp
Next
End Sub

Merci du coup de main les amis!



Avatar
Youky
Dim cell As Range
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
Range("i2:i" & Range("i65536").End(xlUp).Row).Select
For Each cell In Selection
If cell.Value = NomASupprimer Then cell.Value="" 'c'est ici la modif
Next
End Sub

Youky
"ManBas" a écrit dans le message de news:
eunIyJ#
Re-bonjour,
J'essai d'écrire le code qui me permettrait de supprimer une cellule selon
son contenu.
Ce que j'ai écrit ne marche pas, avec les boucles j'ai du mal.
La cellule active ne "bouge" pas!

Dim cell As Range
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
Range("i2:i" & Range("i65536").End(xlUp).Row).Select
For Each cell In Selection
If cell.Value = NomASupprimer Then ActiveCell.Delete Shift:=xlUp
Next
End Sub

Merci du coup de main les amis!




Avatar
R1
"RGI" a écrit dans le message de
news:42cec407$0$892$
bonjour

comme ceci

Sub efface()
Dim DernLigne, i, NomASupprimer
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
If NomASupprimer = "" Then Exit Sub
DernLigne = Cells(Rows.Count, 9).End(xlUp).Row
For i = DernLigne To 2 Step -1
If Cells(i, 9).Value = NomASupprimer Then
Cells(i, 9).Delete 'Shift:=xlUp
End If
Next i
End Sub

salutations

Gilbert

"ManBas" a écrit dans le message de news:
eunIyJ%
Re-bonjour,
J'essai d'écrire le code qui me permettrait de supprimer une cellule
selon


son contenu.
Ce que j'ai écrit ne marche pas, avec les boucles j'ai du mal.
La cellule active ne "bouge" pas!

Dim cell As Range
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
Range("i2:i" & Range("i65536").End(xlUp).Row).Select
For Each cell In Selection
If cell.Value = NomASupprimer Then ActiveCell.Delete Shift:=xlUp
Next
End Sub

Merci du coup de main les amis!



Est-ce que le texte peut être présent plusieurs fois dans la colonne I? Si
oui, faut-il le supprimer à chaque fois?
Dans le cas d'une boucle for sur le numéro de ligne avec un delete à
l'intérieur, il faut se poser la question de deux lignes à supprimer qui se
suivent: est-ce que le up et le next ne font pas sauter une case?

R1


Avatar
ManBas
Voici la réponse que j'ai adressé par erreur au seul expéditeur. Mille
excuses.

(----- Original Message -----
From: "Jacques Ragni"
To: "RGI"
Sent: Friday, July 08, 2005 8:32 PM
Subject: Re: Supprimer une cellule selon son contenu)


Bonsoir RGI, et merci beaucoup
ça marche super mais je regrette de ne pas tout comprendre dans ce code.
Par exemple c'est quoi ce 9?
En pratique j'étais pas sur la voie!!!


***fin de la réponse***

"RGI" a écrit dans le message de news:
42cec407$0$892$
bonjour

comme ceci

Sub efface()
Dim DernLigne, i, NomASupprimer
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
If NomASupprimer = "" Then Exit Sub
DernLigne = Cells(Rows.Count, 9).End(xlUp).Row
For i = DernLigne To 2 Step -1
If Cells(i, 9).Value = NomASupprimer Then
Cells(i, 9).Delete 'Shift:=xlUp
End If
Next i
End Sub


salutations

Gilbert

"ManBas" a écrit dans le message de news:
eunIyJ%
Re-bonjour,
J'essai d'écrire le code qui me permettrait de supprimer une cellule
selon son contenu.
Ce que j'ai écrit ne marche pas, avec les boucles j'ai du mal.
La cellule active ne "bouge" pas!

Dim cell As Range
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
Range("i2:i" & Range("i65536").End(xlUp).Row).Select
For Each cell In Selection
If cell.Value = NomASupprimer Then ActiveCell.Delete Shift:=xlUp
Next
End Sub

Merci du coup de main les amis!







Avatar
ManBas
Bonjour R1,
Le nom à supprimer n'existe qu'une seule fois.
Avec un shiftup seule la colonne est modifiée.
Merci de ton aide.

"R1" a écrit dans le message de news:
u0lJk%23%

"RGI" a écrit dans le message de
news:42cec407$0$892$
bonjour

comme ceci

Sub efface()
Dim DernLigne, i, NomASupprimer
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
If NomASupprimer = "" Then Exit Sub
DernLigne = Cells(Rows.Count, 9).End(xlUp).Row
For i = DernLigne To 2 Step -1
If Cells(i, 9).Value = NomASupprimer Then
Cells(i, 9).Delete 'Shift:=xlUp
End If
Next i
End Sub

salutations

Gilbert

"ManBas" a écrit dans le message de news:
eunIyJ%
Re-bonjour,
J'essai d'écrire le code qui me permettrait de supprimer une cellule
selon


son contenu.
Ce que j'ai écrit ne marche pas, avec les boucles j'ai du mal.
La cellule active ne "bouge" pas!

Dim cell As Range
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
Range("i2:i" & Range("i65536").End(xlUp).Row).Select
For Each cell In Selection
If cell.Value = NomASupprimer Then ActiveCell.Delete Shift:=xlUp
Next
End Sub

Merci du coup de main les amis!



Est-ce que le texte peut être présent plusieurs fois dans la colonne I? Si
oui, faut-il le supprimer à chaque fois?
Dans le cas d'une boucle for sur le numéro de ligne avec un delete à
l'intérieur, il faut se poser la question de deux lignes à supprimer qui
se
suivent: est-ce que le up et le next ne font pas sauter une case?

R1






Avatar
ManBas
Bonjour Youki,
Merci beaucoup de ta réponse qui corrige mon code (et donc que je comprends
mieux).
Ce code efface le contenu de la cellule mais laisse "un trou" dans la
colonne.
Le but est de modifier un menu déroulant dans un userform.

"Youky" a écrit dans le message de news:
ehRDpz%
Dim cell As Range
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
Range("i2:i" & Range("i65536").End(xlUp).Row).Select
For Each cell In Selection
If cell.Value = NomASupprimer Then cell.Value="" 'c'est ici la modif
Next
End Sub

Youky
"ManBas" a écrit dans le message de news:
eunIyJ#
Re-bonjour,
J'essai d'écrire le code qui me permettrait de supprimer une cellule
selon
son contenu.
Ce que j'ai écrit ne marche pas, avec les boucles j'ai du mal.
La cellule active ne "bouge" pas!

Dim cell As Range
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
Range("i2:i" & Range("i65536").End(xlUp).Row).Select
For Each cell In Selection
If cell.Value = NomASupprimer Then ActiveCell.Delete Shift:=xlUp
Next
End Sub

Merci du coup de main les amis!








Avatar
RGI
bonjour Manbas

le 9 correspond à la colonne
ex : Cells(n° de ligne,n° de colonne)
c'est exact que si deux noms semblables sont dans la colonne
ce code n' efface rien
à la place de supprimer la cellule il est possible d'effacer uniquement le
contenu
avec Selection.ClearContents ou dans le code Cells(i, 9).ClearContents

salutations

Gilbert

"ManBas" a écrit dans le message de news:

Bonjour R1,
Le nom à supprimer n'existe qu'une seule fois.
Avec un shiftup seule la colonne est modifiée.
Merci de ton aide.

"R1" a écrit dans le message de news:
u0lJk%23%

"RGI" a écrit dans le message de
news:42cec407$0$892$
bonjour

comme ceci

Sub efface()
Dim DernLigne, i, NomASupprimer
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
If NomASupprimer = "" Then Exit Sub
DernLigne = Cells(Rows.Count, 9).End(xlUp).Row
For i = DernLigne To 2 Step -1
If Cells(i, 9).Value = NomASupprimer Then
Cells(i, 9).Delete 'Shift:=xlUp
End If
Next i
End Sub

salutations

Gilbert

"ManBas" a écrit dans le message de news:
eunIyJ%
Re-bonjour,
J'essai d'écrire le code qui me permettrait de supprimer une cellule
selon


son contenu.
Ce que j'ai écrit ne marche pas, avec les boucles j'ai du mal.
La cellule active ne "bouge" pas!

Dim cell As Range
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
Range("i2:i" & Range("i65536").End(xlUp).Row).Select
For Each cell In Selection
If cell.Value = NomASupprimer Then ActiveCell.Delete Shift:=xlUp
Next
End Sub

Merci du coup de main les amis!



Est-ce que le texte peut être présent plusieurs fois dans la colonne I?
Si
oui, faut-il le supprimer à chaque fois?
Dans le cas d'une boucle for sur le numéro de ligne avec un delete à
l'intérieur, il faut se poser la question de deux lignes à supprimer qui
se
suivent: est-ce que le up et le next ne font pas sauter une case?

R1










Avatar
RGI
Bonjour

après vérification ce code fonctionne également avec des noms multiples

Sub efface()
Dim DernLigne, i, NomASupprimer
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
'nblettre = Len(NomASupprimer)
'MsgBox Asc(Left(NomASupprimer, nblettre))
'If Left(NomASupprimer, (nblettre - 1)) = Chr$(32) Then
'NomASupprimer = Right(NomASupprimer, (nblettre - 1))
'End If
If NomASupprimer = "" Then Exit Sub
DernLigne = Cells(Rows.Count, 9).End(xlUp).Row
For i = DernLigne To 2 Step -1
'MsgBox Len(Cells(i, 9).Value) & " = " & Len(NomASupprimer)
compCell = Cells(i, 9).Value
If compCell = NomASupprimer Then
'MsgBox "ok"
'Cells(i, 9).Delete 'Shift:=xlUp
Cells(i, 9).ClearContents
End If
Next i
End Sub

salutations

Gilbert
"RGI" a écrit dans le message de news:
42cf86bd$0$907$
bonjour Manbas

le 9 correspond à la colonne
ex : Cells(n° de ligne,n° de colonne)
c'est exact que si deux noms semblables sont dans la colonne
ce code n' efface rien
à la place de supprimer la cellule il est possible d'effacer uniquement le
contenu
avec Selection.ClearContents ou dans le code Cells(i, 9).ClearContents

salutations

Gilbert

"ManBas" a écrit dans le message de news:

Bonjour R1,
Le nom à supprimer n'existe qu'une seule fois.
Avec un shiftup seule la colonne est modifiée.
Merci de ton aide.

"R1" a écrit dans le message de news:
u0lJk%23%

"RGI" a écrit dans le message de
news:42cec407$0$892$
bonjour

comme ceci

Sub efface()
Dim DernLigne, i, NomASupprimer
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
If NomASupprimer = "" Then Exit Sub
DernLigne = Cells(Rows.Count, 9).End(xlUp).Row
For i = DernLigne To 2 Step -1
If Cells(i, 9).Value = NomASupprimer Then
Cells(i, 9).Delete 'Shift:=xlUp
End If
Next i
End Sub

salutations

Gilbert

"ManBas" a écrit dans le message de news:
eunIyJ%
Re-bonjour,
J'essai d'écrire le code qui me permettrait de supprimer une cellule
selon


son contenu.
Ce que j'ai écrit ne marche pas, avec les boucles j'ai du mal.
La cellule active ne "bouge" pas!

Dim cell As Range
NomASupprimer = InputBox("Taper le libellé EXACT du nom à supprimer")
Range("i2:i" & Range("i65536").End(xlUp).Row).Select
For Each cell In Selection
If cell.Value = NomASupprimer Then ActiveCell.Delete Shift:=xlUp
Next
End Sub

Merci du coup de main les amis!



Est-ce que le texte peut être présent plusieurs fois dans la colonne I?
Si
oui, faut-il le supprimer à chaque fois?
Dans le cas d'une boucle for sur le numéro de ligne avec un delete à
l'intérieur, il faut se poser la question de deux lignes à supprimer qui
se
suivent: est-ce que le up et le next ne font pas sauter une case?

R1