Bonjour drul, merci pour ton intervention : J'explique , je dois trier un relevé bancaire contenant beaucoup d'informations pour ne garder que les lignes au crédit du compte c.a.d. avec le +, les lignes qui m'intéressent ont en colonne B des cellules fusionnées dont je veux garder les informations pour rapprochement.
si je n'en ai pas dis ou mis plus, c'est que j'ai vu qu'il y avait des règles à suivre et qu'après lecture cela ne me semble pas très facile à appliquer pour les non initiés, de la à dire que l'on est un peu pommé !Alors d'avance toutes mes excuses si je ne fais pas comme il faut !
alors j'ai enchainé plusieurs macros pour formater le tableau, pour supprimer les lignes avec un '-', pour supprimer les lignes simples indésirables. ce qui me reste à résoudre, c'est de supprimer les lignes dont la case en D est vide et qui contient pour une cellule en D plusieurs lignes fusionnées en B. je ne sais pas si c'est clair.
en fait manuellement cela revient à clicquer sur une cellule vide en D, étendre la sélection avec la souris jusqu'en A et de supprimer l'ensemble sélectionné, en faisant cela sur tous le fichier bien sûr donc avec une boucle.
je vais essayer de coller le bidouillage que j'ai fait :
Macro : projetBANCAIRE qui enchaine les Macros :
VIRFORMATCOLONNE = mise au format des Largeurs colonnes et hauteur lignes
APOURSELECTION01 = crée la colonne F avec 1 si valeur en colonne C = « - »
ANEWSUPLIGNE = supprime toutes les lignes avec « 1 » en colonne F « ligne individuelle »
VIRSUPPRIMELIGNESEULE = Macro qui supprime bien ligne seule
A1selectionDversb = macro en cours de test qui doit finir de nettoyer le fichier
Code:
Sub projetBANCAIRE()
'
' projetBANCAIRE Macro ENCHAINEMENT DES MACROS POUR TRAITEMENT RELEVE BANCAIRE
VIRFORMATCOLONNE
ApourSELECTION01
ANEWsupligne
VIRSUPPRIMELIGNESEULE
A1selectionDversb
A1selectionDversb
A1selectionDversb
A1selectionDversb
A1selectionDversb
End Sub
Sub VIRFORMATCOLONNE()
'
' VIRFORMATCOLONNE Macro
' Mise en forme colonnes A à D
Columns("A:D").Select
Selection.ColumnWidth = 40
With Selection
.HorizontalAlignment = xlCenter
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
End With
End Sub
Sub ApourSELECTION01()
'
' ApourSELECTION01 Macro crée une colonne F avec 1 si "-" dans la colonne C
Range("F1").Select
ActiveCell.FormulaR1C1 = "=COUNTIF(RC[-3],""*-*"")"
Range("F1").Select
Selection.AutoFill Destination:=Range("F1:F1000"), Type:=xlFillDefault
Range("F1:F1000").Select
ActiveWindow.LargeScroll Down:=-18
ActiveWindow.SmallScroll Down:=-36
End Sub
Sub ANEWsupligne()
'
' ANEWsupligne Macro supprime les lignes dont une valeur est egale a 1
Rows("1:1").Select
Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
Dim derniereligne As Integer
Dim i As Integer
'For i = [F65536].End(xlUp).Row To 2 Step -1
For i = Range("B" & Rows.Count).End(xlUp).Row To 2 Step -1
If Range("F" & i).Value = "1" Then Rows(i).EntireRow.Delete
Next i
Columns("F:F").Select
Selection.Delete Shift:=xlToLeft
End Sub
Sub VIRSUPPRIMELIGNESEULE()
'
' Aencoursdetravail Macro
Dim i As Long
For i = Range("B65536").End(xlUp).Row To 1 Step -1
If UCase(Cells(i, 2).Value) Like UCase("*REM CHQ*") _
Or UCase(Cells(i, 2).Value) Like UCase("*REMCB*") _
Or UCase(Cells(i, 2).Value) Like UCase("*VRST REF*") _
Or UCase(Cells(i, 2).Value) Like UCase("*COMCB*") _
Or UCase(Cells(i, 2).Value) Like UCase("*CHEQUE*") Then Rows(i).Delete
Next i
End Sub
'
Sub A1selectionDversb()
'
' A1selectionDversb Macro
'
' se placer sur la dernière ligne contenant des données
Range("D10000").End(xlUp).Select
Do
If IsEmpty(ActiveCell) Then
ActiveCell.EntireRow.Delete
End If
ActiveCell.Offset(-1, 0).Select
Loop Until ActiveCell.Row = 1
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
voila ! merci pour votre effort par avance ! j'ai essayé de mettre un morceau de fichier à traiter mais je n'y suis pas parvenu. :??: