Supprimer des lignes sous condition

  • Initiateur de la discussion Initiateur de la discussion boby
  • 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 !

B

boby

Guest
Bonjour à tous,

je suis le nouveau de la classe

j'ai un fichier dont je souhaiterai supprimer quelques lignes sous conditions😡 :

- colonne H : supprimer toutes les lignes dont les codes ISIN ne commençant pas par "AT" - "DK" - "FI" - "GB" - "IE" - "JP" - "NL" - "PT" - "XS0"
ps: (0=zero)
😕
- colonne W: supprimer toutes les lignes dont les cellules ne contiennent pas "UNM" ou "ICMO" conserver les cellules vides
😱
- trier par ordre croissant les colonnes N puis O
🙄
- sauter trois lignes entières quand dans la colonnes N on passe de "C" à "E" et de "E" à "X"

- mise en page:
uniformiser les lignes et les colonnes avec un zoom à 82%, des cellules centrées ajustée, les colonnes J K et L en separateur de milliers, et une couleur de remplissage blanche puis fenetres/reorganiser/horizontal

voici un echantillon du fichier

merci d'avance pour votre aide
 

Pièces jointes

Dernière modification par un modérateur:
Re : Supprimer des lignes sous condition

Salut Boby, Jacques 🙂

J'ai repris la dernière version de la macro que tu proposais Boby et j'ai rajouter quelques morceaux sans avoir tester.

Sub cleaner()
Dim I As Integer
Dim code As String, debut1 As String, debut2 As String
Application.ScreenUpdating = False
For I = Range("A65536").End(xlUp).Row To 2 Step -1
Select Case Left(Cells(I, 8).Value, 2)
Case "BE", "DE", "ES", "FR", "HU", "IT", "NO", "SE", "US"
Rows(I).Delete Shift:=xlUp
End Select
Select Case Left(Cells(I, 8).Value, 7)
Case "XSDUMMY"
Rows(I).Delete Shift:=xlUp
End Select
'colonne W: supprimer toutes les lignes dont les cellules ne contiennent pas "UNM" ou "ICMO" conserver les cellules vides
Select Case Left(Cells(I, 23).Value, 25)
Case "E - DONE", "E - INT - FUT", "E - INT - FUT - EXT - MAT", "Filtered", "Stamina - Filtered", "E - GENR"
Rows(I).Delete Shift:=xlUp
End Select
Next I
'trier par ordre croissant les colonnes N puis O
Selection.Sort Key1:=Range("N2"), Order1:=xlAscending, Key2:=Range("O2") _
, Order2:=xlAscending, Header:=xlGuess, OrderCustom:=1, MatchCase:= _
False, Orientation:=xlTopToBottom
'sauter trois lignes entières quand dans la colonnes N on passe de "C" à "E" et de "E" à "X"
For I = 2 To Range("A65536").End(xlUp).Row
If Cells(I, 14).Value = "C" And Cells(I + 1, 14).Value = "E" Then Rows(I + 1 & ":" & I + 3).Insert Shift:=xlDown
If Cells(I, 14).Value = "E" And Cells(I + 1, 14).Value = "X" Then Rows(I + 1 & ":" & I + 3).Insert Shift:=xlDown
If Cells(I, 14).Value = "E" And IsEmpty(Cells(I + 1, 14)) = True Then Rows(I + 1 & ":" & I + 3).Insert Shift:=xlDown
If Cells(I, 14).Value = "X" And IsEmpty(Cells(I + 1, 14)) = True Then Rows(I + 1 & ":" & I + 3).Insert Shift:=xlDown
Next I
Columns("J:L").NumberFormat = "#,##0.00 _€"
Windows.Arrange ArrangeStyle:=xlHorizontal
Application.ScreenUpdating = True
With Cells
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Interior.ColorIndex = 2
End With
ActiveWindow.Zoom = 80
Cells.Select
Cells.EntireColumn.AutoFit

'je souhaiterai avoir la premiere ligne en gras, largeur de ligne 30,
'couleur remplissage Turquoise clair, ombre portee style 6

With Rows("1:1")
.Font.Bold = True
.RowHeight = 30
.Interior.ColorIndex = 34
End With

End Sub


Par contre je ne sais pas ce qu'est ombre portee style 6, mais un conseil, utilise l'enregistreur de macro, ca rends pas mal de service.

@+
 
Re : Supprimer des lignes sous condition

bonjour à tous

voici ce qui me reste à faire

- je souhaiterai avoir la premiere ligne en gras, largeur de ligne 30, couleur remplissage Turquoise clair, ombre portee style 6

- j'aurai souhaité sauter egalement trois lignes entre la valeur X et la cellule vide ou bien entre la valeur E et la cellule vide au cas ou il n'y aurai pas de X


je pense à mettre des mises en forme conditionnelles
avez vous une astuce
la mise en forme sera du gense
si la cellule = B mettre en gras couleur bleu nuit
si la cellule = S mettre en gras couleur Rouge
si la cellule = T mettre en gras couleur violet

c'est grace à vous si j'ai pu faire tout ça
j'ai beaucoup appris en deux jours

encore merci de votre aide
 
Re : Supprimer des lignes sous condition

hahahah


sisi senior j'ai bien regardé porcinet
et en effet ça marche

tu sais moi je suis tres impressionné par la maniere dont vous programmez sur VB
j'aimerai pouvoir en faire autant mais je n'ai pas vos competences
par contre j'aimerai bien apprendre

il y a des ptits codes par ci par la qui peuvent servir

comme par exemple
quel est le code qui permet faire une mise en page paysage ajustée sur une page en largeur et longeur, centree avec o marge à droite et à gauche

ca j'en ai besoin pour tous mes fichiers

et en ce qui concerne les mises en forme conditionnelles
avez vous une astuce
la mise en forme sera du gense
si la cellule = B mettre en gras couleur bleu nuit
si la cellule = S mettre en gras couleur Rouge
si la cellule = T mettre en gras couleur violet

a+++

thank a lot
 
Re : Supprimer des lignes sous condition

Merci Tibo,

je sais me servir de la mise en forme conditionnelle sur Excel
mais je me demandais si vous aviez un code qui puisse faire cela et que je puisse ratacher à ma macro, car je genere plusieurs fichier de ce genre

si dans la colonne E la cellule = B mettre en gras couleur bleu nuit
si dans la colonne E la cellule = S mettre en gras couleur Rouge
si dans la colonne N la cellule = C mettre en gras couleur Rouge
si dans la colonne N la cellule = E mettre en gras couleur bleu nuit
si dans la colonne N la cellule = X mettre en gras couleur bleu Violet
si dans la colonne Q la cellule = OP mettre en gras couleur bleu nuit
si dans la colonne Q la cellule = CL mettre en gras couleur Rouge
si dans la colonne V la cellule = UPAID mettre en gras couleur Rouge

quand il y a 2 condition on peut utiliser "sinon" d'apres moi

voila un exemple

encore merci Tibo
 
Re : Supprimer des lignes sous condition

re,

Dans ce cas, regarde le fichier de notre ami mDF.

Permet de gérer les mises en formes conditionnelles multiples

(en attendant la version d'Excel 2007 qui n'a plus de limite).

@+
 

Pièces jointes

Re : Supprimer des lignes sous condition

merci Tibo,
bonjour Porcinet
bonjour a tous

est ce que tu connais des astuces comme par exemple le code qui permet faire une mise en page paysage ajustée sur une page en largeur et longeur, centree avec aucune marge à droite et à gauche

ca j'en ai besoin pour tous mes fichiers


encore merci
 
Re : Supprimer des lignes sous condition

re,

En tant que formuliste, je ne suis sans doute pas le mieux placé pour te répondre.

Mais tu peux essayer avec l'enregistreur de macro. Ca va te donner un code de base à adapter (c'est ce que je fais quand j'ai besoin d'une petite macro).

@+
 
Re : Supprimer des lignes sous condition

en effet c'est ce que je fais egalement de temps en temps
mais il est vrai que la maniere de programlmer du pc est tres dificile a comprendre
alors que la maniere de programmer de Porcinet est assez abordable pour un cancre comme moi

connais tu une astuce pour faire apparaitres les en-tete et pieds de page avec
le mon de l'onglet en haut au centre
la date en haut à droite
l'heure en bas à gauche
mon nom en ba à droite

merci
 
Re : Supprimer des lignes sous condition

bonjour à tous,

est ce qu'il y a une manière plus simple de faire ça

ActiveSheet.PageSetup.PrintArea = ""
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = "&""Arial,Gras""&11&A"
.RightHeader = "&D"
.LeftFooter = "&T"
.CenterFooter = ""
.RightFooter = "&""Arial,Gras""&11Mr boby"
.LeftMargin = Application.InchesToPoints(0)
.RightMargin = Application.InchesToPoints(0)
.TopMargin = Application.InchesToPoints(0.590551181102362)
.BottomMargin = Application.InchesToPoints(0.590551181102362)
.HeaderMargin = Application.InchesToPoints(0.511811023622047)
.FooterMargin = Application.InchesToPoints(0.511811023622047)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = True
.CenterVertically = True
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA4
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = False
.FitToPagesWide = 1
.FitToPagesTall = 54
End With
Range("F15").Select

merci
 
Re : Supprimer des lignes sous condition

Bonjour le fil,

Et bien je vois qu'il s'en passe des choses sur ce fil, il suffit de s'absenter une journée et je vois que Tibo essaye de me piquer mes clients...😛

Pour ce qui est de faire plus simple, tu peux mettre :
PHP:
    With ActiveSheet.PageSetup
        .CenterHeader = "&""Arial,Gras""&11&A"
        .RightHeader = "&D"
        .LeftFooter = "&T"
        .RightFooter = "&""Arial,Gras""&11Mr boby"
        .LeftMargin = Application.InchesToPoints(0.8)
        .RightMargin = Application.InchesToPoints(0.8)
        .TopMargin = Application.InchesToPoints(1)
        .BottomMargin = Application.InchesToPoints(1)
        .HeaderMargin = Application.InchesToPoints(0.5)
        .FooterMargin = Application.InchesToPoints(0.5)
        .PrintQuality = 600
        .CenterHorizontally = False
        .CenterVertically = False
        .Orientation = xlPortrait
        .Draft = False
        .PaperSize = xlPaperA4
        .FirstPageNumber = xlAutomatic
        .Order = xlDownThenOver
        .BlackAndWhite = False
        .Zoom = 100
    End With

Sinon je pense que pas mal de paramètres sont des paramètres par défaut et que l'on peut les enlever sans soucis, ce qui donnerait :
PHP:
With ActiveSheet.PageSetup
    .CenterHeader = "&""Arial,Gras""&11&A"
    .RightHeader = "&D"
    .LeftFooter = "&T"
    .RightFooter = "&""Arial,Gras""&11Mr boby"
End With

@+
 
Re : Supprimer des lignes sous condition

Oui porcinet,

j'ai reussit à le trouver par moi meme juste avant d'aller dejeuner
(je parle un peu anglais)
j'ai aussi pu regler pas mal d'autres petits soucis

sauf un:
lorsque je lance une de mes macros, et que j'imprime, il y a une vingtaine de pages qui sortent:
une pleine (bonne page)
et 19 vides

comment faire pour avoir mes données sur le nomnbre de pages necessaires et eviter de gacher du papier

dans la foulée, j'ai posté un autre souci dans un post qui s'appelle "Trier / somme sous total / ....
pourrais tu me secourir

merci porcinet

ps : qui a dit que les anes étaient des tete de mules
 
- 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éponses
10
Affichages
516
F
Réponses
2
Affichages
690
F
A
Réponses
4
Affichages
869
A
H
Réponses
5
Affichages
678
C
Réponses
1
Affichages
2 K
claivier_58
C
C
Réponses
3
Affichages
2 K
claivier_58
C
Retour