> Tous les forums > Forum Bureautique
 Excel 2007 - Suppression selon formatSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
Kassie
  Posté le 25/03/2010 @ 16:40 
Aller en bas de la page 
Petite astucienne

Bonjour à tous,

Je travaille sous Excel 2007. J'ai un classeur dans lequel des doublons sont présents dans la colonne A et D mais ou j'ai des données jusqu'à la colonne H. Ces doublons sont colorés via une macro ainsi que certaines cellules de la colonne H, sur d'autres valeurs. Cette partie là, pas de problèmes.

La question est la suivante: Comment faire pour supprimer les lignes dont aucune cellule n'est coloriée?

Ca peut etre une formule, une mise en forme conditionnelle ou une macro, j'avoue avoir un blanc pour y arriver.

À savoir que mon fichier comportera dans les 20 000 lignes, j'implore votre aide svp !

Merci d'avance !

Publicité
Mytå
 Posté le 25/03/2010 à 16:56 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Salut le forum

Ta macro "Colorer" les doublons pourrait déjà supprimer ceux qui ne le sont pas.

A te relire

Mytå



Modifié par Mytå le 25/03/2010 16:58
Kassie
 Posté le 25/03/2010 à 17:55 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bonjour Myta,

C'est en effet une idée de l'ajouter ou plutot d'en faire une autre qui puisse faire ca, puisque j'ai des opérations à faire entre les deux étapes.

En VBA donc, comment faire pour lui dire de sélectionner toute la ligne si aucune cellule de cette ligne n'est en format conditionnel ?

Tel est finalement la vraie question...

Mytå
 Posté le 25/03/2010 à 18:01 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Re le forum

Un format conditionnel n'est pas évidant à traiter en VBA.

Pourrais-tu fournir ton code qui colore les doublons ?

Mytå

Kassie
 Posté le 25/03/2010 à 18:25 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Rebonjour Myta et tous !

Voici le code que j'utilise, ramassé je ne sais plus où sur le net mais ca fait exactement ce que j'ai besoin.

Sub MarqueLesDoublons()
Dim Plage As Range, i&, Cell As Range, Rng As Range

On Error Resume Next
Set Plage = Application.InputBox("Plage à examiner", Type:=8)
If IsEmpty(Plage) Then Exit Sub

Application.ScreenUpdating = False

For Each Cell In Plage
For i = 1 To Plage.Count
Set Rng = Cell.Offset(i)
If Rng <> "" And Rng = Cell Then
Cell.Interior.ColorIndex = 43
Rng.Interior.ColorIndex = 43
Exit For
End If
Next i
Next Cell

End Sub

Donc si on prends le problème autrement... comment pourrait-on formuler que si toutes les cellules d'une ligne de A à H sont blanches (Cell.Interior.ColorIndex = 2), alors il faut sélectionner la ligne au complet et la supprimer?

Merci

Kassie
 Posté le 25/03/2010 à 21:35 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Rebonjour !

Je planche sur le problème depuis tout à l'heure mais je n'y arrive pas. Voici ce que j'ai de fait pour le moment:

Sub SupprimerLigneBlanche()
Selection.CurrentRegion.Select
ActiveCell.Offset(1, 0).Range("a1").Select
Do While ActiveCell.Offset(0, 0).Value <> ""
If ActiveCell.Offset(0, 1).Interior.ColorIndex = 2 _
And ActiveCell.Offset(0, 1).Interior.ColorIndex = 2 _
And ActiveCell.Offset(0, 1).Interior.ColorIndex = 2 _
And ActiveCell.Offset(0, 1).Interior.ColorIndex = 2 _
And ActiveCell.Offset(0, 1).Interior.ColorIndex = 2 _
And ActiveCell.Offset(0, 1).Interior.ColorIndex = 2 _
And ActiveCell.Offset(0, 1).Interior.ColorIndex = 2 Then

Range(Trim(Str(ActiveCell.Row)) & ":" & Trim(Str(ActiveCell.Row))).Select

End If
ActiveCell.Offset(1, 0).Select
Loop

End Sub

Ma macro s'éxécute mais ne supprime rien, j'ai donc des erreurs dans les conditions mais je ne vois pas quoi...

Une bonne âme fortiche en VBA pour m'aider svp ?

Kassie
 Posté le 29/03/2010 à 14:27 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bonjour

un petit up pour ce message, j'aurais vraiment besoin d'aide de quelqu'un qui s'y connait en VBA pour m'aider svp

Merci d'avance !

Kassie
 Posté le 29/03/2010 à 16:05 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petite astucienne

Bon, en fouillant d'avantage sur le net, j'ai trouvé quelque chose de satisfaisant pour moi.
Je la colle ici, si quelqu'un d'autre en a besoin:

Option Explicit
Sub SupprimerLignes()
Dim i As Long
For i = Range("C2").End(xlDown).Row To 2 Step -1
If Cells(i, 1).Interior.ColorIndex = xlNone Then
Rows(i).Delete
End If
Next
End Sub

Merci à tous ceux qui m'ont aidé dans cette problématique !
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Sujets relatifs
[Excel 2007] Macro : Sélection d'un tableau selon sa longueur variable
Format de cellule personnalisée - Excel 2007
excel 2007 classement selon nombre de points
Suppression de titres dans liste excel 2007.
Imposer format dans cellule excel 2007
menu contextuel excel 2007 ne fonctionne plus
Excel 2007 Copier/Coller d’une feuille à l’autre Dans un même classeur.
EXCEL 2007-stdole32.tlb-WIN7 SP1x64
Formule excel 2007
Excel 2007, insertion ligne vierge en automatique
Plus de sujets relatifs à Excel 2007 - Suppression selon format
 > Tous les forums > Forum Bureautique