Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Supp lignes en fct du début d'une cellule

  • Initiateur de la discussion Initiateur de la discussion Antoine
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

Antoine

Guest
bonjour,

Ma demande est identique à celle présente sur ce lien
Lien supprimé

Seul la condition sur la cellule change.

En effet, je veux supprimer les lignes dont le contenu de la cellule commence par 'Prix :'.
J'ai essayé d'utiliser la fonction left( ) mais je ne sais pas comment elle marche.

Voici un rappel du programme :

Range('A1').Select ' si ta colonne est la A
Do
If ActiveCell.Value = 'Prix :' Then
'Prix est que la partie gauche du contenu de la cellule concernée,
'donc comme écrit là ça ne marche pas

ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Value = '' ' descend d'une case jusqu'a ce que la cellule active soit vide

Merci de votre aide

Antoine
 
Re

Oui c'est plus sur

Imagine en ligne 4 et 5 tu as prix

il arrive à la 4 il supprime la ligne
donc la cellule active devient celle de la ligne 5
ensuite tu passes à la ligne suivante donc à la 6
Et tu as oublié de supprimer la ligne 5

Bon courage
 
Ta macro marche super.

Juste pour info g testé aussi le programme suivant (autre solution) qui se trouve
Lien supprimé

où j'ai modifier une instruction en fonction de ce que je veux :
.FormulaR1C1 = '=IF(Left((RC[1], 9) = ''Adaptable'',''del'')'

mais ne fonctionne pas avec cette instruction. Saurais-tu pourquoi?

rappel du programme:

Sub SuppCertainLigne2()
' Sans boucle:
' (données en colonne A, recherche 'Adaptable')

Dim rng As Range
Columns(1).Insert
Set rng = Range([B1], [B65536].End(xlUp)).Offset(, -1)
With rng
.FormulaR1C1 = '=IF(Left((RC[1], 9) = ''Adaptable'',''del'')'
On Error Resume Next
.SpecialCells(xlCellTypeFormulas, xlConstants).EntireRow.Delete
On Error GoTo 0
.EntireColumn.Delete
End With
Set rng = Nothing

' Suppression des lignes en fonction de la longueur de caractère
' de la cellule
' tu remplaces:
' .FormulaR1C1 = '=IF(RC[1]=''texte'',''del'')'
' par
' .FormulaR1C1 = '=IF(LEN(RC[1])=5,''del'')'

Bonne soirée
Antoine
 
Re

Je ne vais pas critiqué un code qui n'est pas de moi mais je le trouve un peu compliqué. Le code crée une colonne dans lequel il met une formule et ensuite suppprime les lignes où il ya une valeur et non FAUX puis supprime la colonne.

Perso j'ai essayé ça marche mais bon c'est pas du tout ma façon de programmer
 
J'adhère totalement à ta macro pour deux raisons :

1_ je la comprends

2_ elle supprime aussi les lignes vides en même temps alors que les autres macros ne le font pas.

Merci encore,
Antoine
 
G testé ta macro dans la pratique est je me suis heurté à deux problèmes :

1_ Si le nombre de lignes est trop important ça ne marche pas. Je commence donc depuis la ligne 15000 et je répète l'opération.

2_ Dans l'esemple du fichier joint, quand je lance ta macro, cela ne supprime que la dernière ligne!

Bonne journée,
Antoine
 
Merci pour la solution de 'Long'

Désolé le fichier ne s'est pas attaché...
Le voici

A+
Antoine [file name=EffaceLigneDtCelluleVide.zip size=9809]http://www.excel-downloads.com/components/com_simpleboard/uploaded/files/EffaceLigneDtCelluleVide.zip[/file]
 

Pièces jointes

Bonjour

Si tu parles de cette macro il est normal qu'elle ne fonctionne pas

Sub SuppLigneDtCelluleVides()

Dim x As Integer

For x = Range('B65536').End(xlUp).Row To 1 Step -1
If IsEmpty(Range('B' & x)) Then
Rows(x).Delete
End If
Next

End Sub

En effet ta colonne B est vide donc

Range('B65536').End(xlUp).Row

Renvoie 1 donc ta boucle ne traite que la ligne 1

Il faut que tu regardes la dernière ligne de la colonne A

For x = Range('A65536').End(xlUp).Row To 1 Step -1

Bonne journée
 
Encore une fois merci Pascal de tes lumières.

Je viens d'utiliser ta macro plusieurs fois et c'est parfait.

Sinon pour l'autre cas de copie plage je viens d'y joindre un fichier sur
Lien supprimé

Bonne soirée à toi et à très bientôt,
Antoine
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

R
Réponses
1
Affichages
680
Rose_Chlh
R
Z
Réponses
7
Affichages
1 K
Zifox
Z
Réponses
11
Affichages
1 K
T
Réponses
4
Affichages
6 K
ThomasGLT
T
E
Réponses
1
Affichages
1 K
Elegancya
E
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…