Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

supprimer toutes les lignes sauf celles ayant la valeur VRAI

6 réponses
Avatar
olivier.pichard
Bonjour,

après avoir cherché sur les news, je n'ai toujours pas trouvé solution
à mon problème :

a l'aide d'une macro, je récupère des valeurs VRAI FAUX ou Null issues
de cases à cocher d'une autre feuille grâce à un collage spécial
(pastespecial).
Je veux ensuite dans cette nouvelle feuille où j'ai des cellules
vides, des cellules avec la valeur VRAI et d'autres avec des valeurs
FAUX, ne conserver que les lignes qui ont la valeur VRAI.

J'ai essayé le code suivant :

derniereLigne = ActiveSheet.UsedRange.Rows.Count
For r = derniereLigne To 1 Step -1
If Cells(r, 1) <> "Vrai" Then Cells.Select:
Selection.EntireRow.Delete
Next r

Le résultat de ce code est que tout est supprimé !
Je pense que le problème vient de la valeur VRAI. En effet lorsqu'on
tape cette valeur dans une cellule elle se trouve centré et est donc
traité différement qu'un autre texte. J'ai donc essayé de mettre à la
place de "vrai" :
true
"true"
vrai
VRAI

mais ça ne change rien, tout est toujours supprimé.

Avez vous une idée ?

Merci

Olivier

6 réponses

Avatar
Denis Michon
Bonjour Olivier

'-----------
derniereLigne = ActiveSheet.UsedRange.Rows.Count
For r = derniereLigne To 1 Step -1
If Cells(r, 1) <> "Vrai" Then Cells.Select:
Selection.EntireRow.Delete
Next r
'-----------

Dans ta procédure, lorsque la condition est remplie, tu sélectionnes toutes les cellules, rien de moins. Il ne faut pas
t'étonner que tout s'efface !

Then Cells.Select

Tu pourrais changer pour ceci :

If Cells(r, 1) <> "Vrai" Then
Cells(r, 1).EntireRow.Delete (xlup)
end if


Salutations!



"olivier" a écrit dans le message de news:
Bonjour,

après avoir cherché sur les news, je n'ai toujours pas trouvé solution
à mon problème :

a l'aide d'une macro, je récupère des valeurs VRAI FAUX ou Null issues
de cases à cocher d'une autre feuille grâce à un collage spécial
(pastespecial).
Je veux ensuite dans cette nouvelle feuille où j'ai des cellules
vides, des cellules avec la valeur VRAI et d'autres avec des valeurs
FAUX, ne conserver que les lignes qui ont la valeur VRAI.

J'ai essayé le code suivant :

derniereLigne = ActiveSheet.UsedRange.Rows.Count
For r = derniereLigne To 1 Step -1
If Cells(r, 1) <> "Vrai" Then Cells.Select:
Selection.EntireRow.Delete
Next r

Le résultat de ce code est que tout est supprimé !
Je pense que le problème vient de la valeur VRAI. En effet lorsqu'on
tape cette valeur dans une cellule elle se trouve centré et est donc
traité différement qu'un autre texte. J'ai donc essayé de mettre à la
place de "vrai" :
true
"true"
vrai
VRAI

mais ça ne change rien, tout est toujours supprimé.

Avez vous une idée ?

Merci

Olivier
Avatar
isabelle
bonjour Olivier,

remplace
If Cells(r, 1) <> "Vrai" Then Cells.Select:
Selection.EntireRow.Delete

par

If Cells(r, 1) <> "VRAI" Then Rows(r).Delete

ou par

If Cells(r, 1) <> "Vrai" Then Rows(r).Delete Shift:=xlUp

isabelle


Bonjour,

après avoir cherché sur les news, je n'ai toujours pas trouvé solution
à mon problème :

a l'aide d'une macro, je récupère des valeurs VRAI FAUX ou Null issues
de cases à cocher d'une autre feuille grâce à un collage spécial
(pastespecial).
Je veux ensuite dans cette nouvelle feuille où j'ai des cellules
vides, des cellules avec la valeur VRAI et d'autres avec des valeurs
FAUX, ne conserver que les lignes qui ont la valeur VRAI.

J'ai essayé le code suivant :

derniereLigne = ActiveSheet.UsedRange.Rows.Count
For r = derniereLigne To 1 Step -1
If Cells(r, 1) <> "Vrai" Then Cells.Select:
Selection.EntireRow.Delete
Next r

Le résultat de ce code est que tout est supprimé !
Je pense que le problème vient de la valeur VRAI. En effet lorsqu'on
tape cette valeur dans une cellule elle se trouve centré et est donc
traité différement qu'un autre texte. J'ai donc essayé de mettre à la
place de "vrai" :
true
"true"
vrai
VRAI

mais ça ne change rien, tout est toujours supprimé.

Avez vous une idée ?

Merci

Olivier


Avatar
Jacquouille
Bonjour
Et si tu essayais avec la valeur 1, qui est celle de vrai ?
Bonne chance

--
Jacquouille con seille : http://www.excelabo.net


"olivier" a écrit dans le message news:

Bonjour,

après avoir cherché sur les news, je n'ai toujours pas trouvé solution
à mon problème :

a l'aide d'une macro, je récupère des valeurs VRAI FAUX ou Null issues
de cases à cocher d'une autre feuille grâce à un collage spécial
(pastespecial).
Je veux ensuite dans cette nouvelle feuille où j'ai des cellules
vides, des cellules avec la valeur VRAI et d'autres avec des valeurs
FAUX, ne conserver que les lignes qui ont la valeur VRAI.

J'ai essayé le code suivant :

derniereLigne = ActiveSheet.UsedRange.Rows.Count
For r = derniereLigne To 1 Step -1
If Cells(r, 1) <> "Vrai" Then Cells.Select:
Selection.EntireRow.Delete
Next r

Le résultat de ce code est que tout est supprimé !
Je pense que le problème vient de la valeur VRAI. En effet lorsqu'on
tape cette valeur dans une cellule elle se trouve centré et est donc
traité différement qu'un autre texte. J'ai donc essayé de mettre à la
place de "vrai" :
true
"true"
vrai
VRAI

mais ça ne change rien, tout est toujours supprimé.

Avez vous une idée ?

Merci

Olivier


Avatar
Bourby
bonjour,

en complément de ma réponse précédente,
ce code marche aussi:
If Cells(r, 1) = True Then ....

Tu peux vérifier qu'il reconnaît le mot-clef "true" en le tapant en
minuscules. S'il le reconnaît, le T passe en majuscules quand tu vas
à la ligne suivante.

Et voici ce que dit l'aide de VBA:
Boolean, type de données
Les variables de type Boolean sont stockées sous la forme de nombres de 16
bits (2 octets), mais elles ne peuvent avoir pour valeur que True ou False.
Elles s'affichent sous la forme True et False (avec l'instruction Print) ou
#TRUE# et #FALSE# (avec l'instruction Write #). Utilisez les mots clés True
et False pour faire passer d'un état à l'autre des variables de type
Boolean.

Lorsque d'autres types de données numériques sont convertis en valeurs de
type Boolean, 0 devient False et toutes les autres valeurs deviennent True.
Lorsque des valeurs de type Boolean sont converties en d'autres types de
données, False devient 0 et True devient -1.

Bon Excel...

Bourby

"olivier" a écrit dans le message news:

Bonjour,

après avoir cherché sur les news, je n'ai toujours pas trouvé solution
à mon problème :

a l'aide d'une macro, je récupère des valeurs VRAI FAUX ou Null issues
de cases à cocher d'une autre feuille grâce à un collage spécial
(pastespecial).
Je veux ensuite dans cette nouvelle feuille où j'ai des cellules
vides, des cellules avec la valeur VRAI et d'autres avec des valeurs
FAUX, ne conserver que les lignes qui ont la valeur VRAI.

J'ai essayé le code suivant :

derniereLigne = ActiveSheet.UsedRange.Rows.Count
For r = derniereLigne To 1 Step -1
If Cells(r, 1) <> "Vrai" Then Cells.Select:
Selection.EntireRow.Delete
Next r

Le résultat de ce code est que tout est supprimé !
Je pense que le problème vient de la valeur VRAI. En effet lorsqu'on
tape cette valeur dans une cellule elle se trouve centré et est donc
traité différement qu'un autre texte. J'ai donc essayé de mettre à la
place de "vrai" :
true
"true"
vrai
VRAI

mais ça ne change rien, tout est toujours supprimé.

Avez vous une idée ?

Merci

Olivier


Avatar
AV
Aussi....

Sub zz_Sup()
[A:A].AutoFilter Field:=1, Criteria1:="VRAI"
[A2:A65536].SpecialCells(xlCellTypeVisible).EntireRow.Delete
Selection.AutoFilter
End Sub

PS : si tes VRAI/FAUX sont des valeurs booléennes, remplacer
[A:A].AutoFilter Field:=1, Criteria1:="VRAI"
par
[A:A].AutoFilter Field:=1, Criteria1:= True

AV
Avatar
Alain CROS
Bonjour.

Cells sélectionne toutes tes cellules.
Dés qu'une cellule <> "vrai", tu efface toute ta feuille.
Essaye comme ça.

Sub EffaceLigne()
Dim r&
Application.ScreenUpdating = False
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
If Not Range("A" & r) = True Then Range("A" & r).EntireRow.Delete
Next r
Application.ScreenUpdating = True
End Sub

Alain CROS.

"olivier" a écrit dans le message de news:
Bonjour,

après avoir cherché sur les news, je n'ai toujours pas trouvé solution
à mon problème :

a l'aide d'une macro, je récupère des valeurs VRAI FAUX ou Null issues
de cases à cocher d'une autre feuille grâce à un collage spécial
(pastespecial).
Je veux ensuite dans cette nouvelle feuille où j'ai des cellules
vides, des cellules avec la valeur VRAI et d'autres avec des valeurs
FAUX, ne conserver que les lignes qui ont la valeur VRAI.

J'ai essayé le code suivant :

derniereLigne = ActiveSheet.UsedRange.Rows.Count
For r = derniereLigne To 1 Step -1
If Cells(r, 1) <> "Vrai" Then Cells.Select:
Selection.EntireRow.Delete
Next r

Le résultat de ce code est que tout est supprimé !
Je pense que le problème vient de la valeur VRAI. En effet lorsqu'on
tape cette valeur dans une cellule elle se trouve centré et est donc
traité différement qu'un autre texte. J'ai donc essayé de mettre à la
place de "vrai" :
true
"true"
vrai
VRAI

mais ça ne change rien, tout est toujours supprimé.

Avez vous une idée ?

Merci

Olivier