Bonjour à tous,
Je vous écris en désespoir de cause, faisant des tests depuis des jours et des jours sans parvenir à un résultat convenable.
Je m'explique : je dois générer plus de 250 fichiers Excel, sur lesquels je dois faire à chaque fois les mêmes manip, et cela dans un laps de temps très réduit.
Les macro m'ont paru une solution idéale, mais n'y connaissant absolument rien, il y a toujours quelque chose qui ne vas pas comme je voudrais.
Premier point qui me pose problème :
j'ai créé une macro (automatiquement, en enregistrant mes actions) pour mettre en forme le fichier tel que je le veux.
J'utilise notamment une formule SI.
Mais si le fichier que j'ai utilisé pour faire ma macro contient moins de ligne que le fichier à traiter, la formule ne s'applique sur sur le même nombre de ligne que celui de la macro.
Si au contraire il en contient plus, il me crée plein de lignes à 0.
Comment faire svp pour qu'il se contente de traiter les lignes existantes ?
Voici le code qui s'est créé :
Sub Macrofichierclient()
'
' Macrofichierclient Macro
'
'
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
Columns("AB:AB").Select
Selection.Cut
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Columns("A:A").Select
Selection.Insert Shift:=xlToRight
Range("B8").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
Columns("J:J").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("K:K").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("J:J").ColumnWidth = 20.11
Range("J2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=0,RC[-2],RC[-1])"
Range("J2").Select
Selection.AutoFill Destination:=Range("J2:J2358")
Range("J2:J2358").Select
Columns("J:J").Select
Selection.Copy
Columns("K:K").Select
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("K1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "Prix de base pièce ou mètre linéaire"
Columns("H:J").Select
Range("J1").Activate
Selection.Delete Shift:=xlToLeft
Range("N13").Select
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
Columns("U:U").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("V:V").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("U:U").ColumnWidth = 13.56
Selection.ColumnWidth = 16.22
Range("U2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=0,RC[-2],RC[-1])"
Range("U2").Select
Selection.AutoFill Destination:=Range("U2:U2358")
Range("U2:U2358").Select
Columns("U:U").Select
Selection.Copy
Columns("V:V").Select
ActiveSheet.Paste
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 21
ActiveWindow.ScrollRow = 25
ActiveWindow.ScrollRow = 28
ActiveWindow.ScrollRow = 35
ActiveWindow.ScrollRow = 42
ActiveWindow.ScrollRow = 45
ActiveWindow.ScrollRow = 52
ActiveWindow.ScrollRow = 55
ActiveWindow.ScrollRow = 62
ActiveWindow.ScrollRow = 76
ActiveWindow.ScrollRow = 93
ActiveWindow.ScrollRow = 100
ActiveWindow.ScrollRow = 114
ActiveWindow.ScrollRow = 165
ActiveWindow.ScrollRow = 176
ActiveWindow.ScrollRow = 186
ActiveWindow.ScrollRow = 220
ActiveWindow.ScrollRow = 234
ActiveWindow.ScrollRow = 244
ActiveWindow.ScrollRow = 251
ActiveWindow.ScrollRow = 282
ActiveWindow.ScrollRow = 289
ActiveWindow.ScrollRow = 303
ActiveWindow.ScrollRow = 327
ActiveWindow.ScrollRow = 337
ActiveWindow.ScrollRow = 344
ActiveWindow.ScrollRow = 358
ActiveWindow.ScrollRow = 392
ActiveWindow.ScrollRow = 416
ActiveWindow.ScrollRow = 430
ActiveWindow.ScrollRow = 533
ActiveWindow.ScrollRow = 567
ActiveWindow.ScrollRow = 770
ActiveWindow.ScrollRow = 801
ActiveWindow.ScrollRow = 856
ActiveWindow.ScrollRow = 908
ActiveWindow.ScrollRow = 942
ActiveWindow.ScrollRow = 990
ActiveWindow.ScrollRow = 1017
ActiveWindow.ScrollRow = 1028
ActiveWindow.ScrollRow = 1086
ActiveWindow.ScrollRow = 1097
ActiveWindow.ScrollRow = 1127
ActiveWindow.ScrollRow = 1189
ActiveWindow.ScrollRow = 1203
ActiveWindow.ScrollRow = 1206
ActiveWindow.ScrollRow = 1210
ActiveWindow.ScrollRow = 1237
ActiveWindow.ScrollRow = 1248
ActiveWindow.ScrollRow = 1258
ActiveWindow.ScrollRow = 1279
ActiveWindow.ScrollRow = 1361
ActiveWindow.ScrollRow = 1426
ActiveWindow.ScrollRow = 1461
ActiveWindow.ScrollRow = 1736
ActiveWindow.ScrollRow = 1760
ActiveWindow.ScrollRow = 1907
ActiveWindow.ScrollRow = 1928
ActiveWindow.ScrollRow = 2028
ActiveWindow.ScrollRow = 2038
ActiveWindow.ScrollRow = 2062
ActiveWindow.ScrollRow = 2076
ActiveWindow.ScrollRow = 2144
ActiveWindow.ScrollRow = 2162
ActiveWindow.ScrollRow = 2278
ActiveWindow.ScrollRow = 2302
ActiveWindow.ScrollRow = 2327
ActiveWindow.ScrollRow = 2278
ActiveWindow.ScrollRow = 2206
ActiveWindow.ScrollRow = 1382
ActiveWindow.ScrollRow = 1279
ActiveWindow.ScrollRow = 378
ActiveWindow.ScrollRow = 296
ActiveWindow.ScrollRow = 172
ActiveWindow.ScrollRow = 162
ActiveWindow.ScrollRow = 124
ActiveWindow.ScrollRow = 121
ActiveWindow.ScrollRow = 117
ActiveWindow.ScrollRow = 114
ActiveWindow.ScrollRow = 110
ActiveWindow.ScrollRow = 107
ActiveWindow.ScrollRow = 100
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 83
ActiveWindow.ScrollRow = 69
ActiveWindow.ScrollRow = 49
ActiveWindow.ScrollRow = 38
ActiveWindow.ScrollRow = 1
Range("V1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "Prix net pièce ou mètre linéaire"
Columns("S:U").Select
Range("U1").Activate
Columns("V:V").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("S:U").Select
Range("U1").Activate
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Columns("O:R").Select
Range("R1").Activate
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
Selection.Delete Shift:=xlToLeft
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
Columns("L:L").Select
Selection.Delete Shift:=xlToLeft
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
Range("A1:U1").Select
Range("U1").Activate
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 192
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Selection.Font.Bold = True
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection.Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
Selection.AutoFilter
Range("E13").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("A1").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A2:U2358")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B16").Select
End Sub
Deuxième question portant sur la suppression des lignes.
J'ai lu beaucoup de solutions apportées ici, j'en ai testé beaucoup également, mais soit rien ne se passe (!), soit ca supprime plus que ce que je souhaite.
L'idée est de trouver un code me permettant de supprimer plusieurs lignes contenant soit MOT1, soit MOT2, soit MOT3
mais uniquement ces mots, par exemple une ligne contenant MOT1OUI ne devrait pas être supprimée (pour le moment les solutions trouvées suppriment tout ce qui contient MOT1 donc aussi ce qui contient MOT1OUI.
Voici ce que j'ai testé :
Sub test() Dim I As Integer For I = [A65000].End(xlUp).Row To 1 Step -1
If Not Cells(I, 1) .Resize(1, 6).Find("BOX2") Is Nothing Or _
Not Cells(I, 1).Find("BOX3") Is Nothing Or _
Not Cells(I, 1).Find("BOX-ACC-REHAU") Is Nothing Then Rows(I).Delete
Next I
End Sub
-----------------
Sub test()
Dim c As Range
For Each c In ActiveSheet.UsedRange
If c Like "box2" Or c Like "box3" Then c.Rows.Delete
Next
End Sub
-----------------
Sub test()
Dim I As Integer
Application.ScreenUpdating = False
For I = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
If Range("A" & I).Value Like "*BOX2*" Then Rows(I).Delete
Next I
Application.ScreenUpdating = True
End Sub
J'espère avoir été à peu près claire dans ma demande, je vous remercie par avance de votre aide !
Je vous écris en désespoir de cause, faisant des tests depuis des jours et des jours sans parvenir à un résultat convenable.
Je m'explique : je dois générer plus de 250 fichiers Excel, sur lesquels je dois faire à chaque fois les mêmes manip, et cela dans un laps de temps très réduit.
Les macro m'ont paru une solution idéale, mais n'y connaissant absolument rien, il y a toujours quelque chose qui ne vas pas comme je voudrais.
Premier point qui me pose problème :
j'ai créé une macro (automatiquement, en enregistrant mes actions) pour mettre en forme le fichier tel que je le veux.
J'utilise notamment une formule SI.
Mais si le fichier que j'ai utilisé pour faire ma macro contient moins de ligne que le fichier à traiter, la formule ne s'applique sur sur le même nombre de ligne que celui de la macro.
Si au contraire il en contient plus, il me crée plein de lignes à 0.
Comment faire svp pour qu'il se contente de traiter les lignes existantes ?
Voici le code qui s'est créé :
Sub Macrofichierclient()
'
' Macrofichierclient Macro
'
'
Columns("A:A").Select
Selection.Delete Shift:=xlToLeft
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
Columns("AB:AB").Select
Selection.Cut
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Columns("A:A").Select
Selection.Insert Shift:=xlToRight
Range("B8").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
Columns("J:J").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("K:K").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("J:J").ColumnWidth = 20.11
Range("J2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=0,RC[-2],RC[-1])"
Range("J2").Select
Selection.AutoFill Destination:=Range("J2:J2358")
Range("J2:J2358").Select
Columns("J:J").Select
Selection.Copy
Columns("K:K").Select
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Range("K1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "Prix de base pièce ou mètre linéaire"
Columns("H:J").Select
Range("J1").Activate
Selection.Delete Shift:=xlToLeft
Range("N13").Select
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
Columns("U:U").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("V:V").Select
Selection.Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
Columns("U:U").ColumnWidth = 13.56
Selection.ColumnWidth = 16.22
Range("U2").Select
ActiveCell.FormulaR1C1 = "=IF(RC[-1]=0,RC[-2],RC[-1])"
Range("U2").Select
Selection.AutoFill Destination:=Range("U2:U2358")
Range("U2:U2358").Select
Columns("U:U").Select
Selection.Copy
Columns("V:V").Select
ActiveSheet.Paste
ActiveWindow.ScrollRow = 4
ActiveWindow.ScrollRow = 7
ActiveWindow.ScrollRow = 21
ActiveWindow.ScrollRow = 25
ActiveWindow.ScrollRow = 28
ActiveWindow.ScrollRow = 35
ActiveWindow.ScrollRow = 42
ActiveWindow.ScrollRow = 45
ActiveWindow.ScrollRow = 52
ActiveWindow.ScrollRow = 55
ActiveWindow.ScrollRow = 62
ActiveWindow.ScrollRow = 76
ActiveWindow.ScrollRow = 93
ActiveWindow.ScrollRow = 100
ActiveWindow.ScrollRow = 114
ActiveWindow.ScrollRow = 165
ActiveWindow.ScrollRow = 176
ActiveWindow.ScrollRow = 186
ActiveWindow.ScrollRow = 220
ActiveWindow.ScrollRow = 234
ActiveWindow.ScrollRow = 244
ActiveWindow.ScrollRow = 251
ActiveWindow.ScrollRow = 282
ActiveWindow.ScrollRow = 289
ActiveWindow.ScrollRow = 303
ActiveWindow.ScrollRow = 327
ActiveWindow.ScrollRow = 337
ActiveWindow.ScrollRow = 344
ActiveWindow.ScrollRow = 358
ActiveWindow.ScrollRow = 392
ActiveWindow.ScrollRow = 416
ActiveWindow.ScrollRow = 430
ActiveWindow.ScrollRow = 533
ActiveWindow.ScrollRow = 567
ActiveWindow.ScrollRow = 770
ActiveWindow.ScrollRow = 801
ActiveWindow.ScrollRow = 856
ActiveWindow.ScrollRow = 908
ActiveWindow.ScrollRow = 942
ActiveWindow.ScrollRow = 990
ActiveWindow.ScrollRow = 1017
ActiveWindow.ScrollRow = 1028
ActiveWindow.ScrollRow = 1086
ActiveWindow.ScrollRow = 1097
ActiveWindow.ScrollRow = 1127
ActiveWindow.ScrollRow = 1189
ActiveWindow.ScrollRow = 1203
ActiveWindow.ScrollRow = 1206
ActiveWindow.ScrollRow = 1210
ActiveWindow.ScrollRow = 1237
ActiveWindow.ScrollRow = 1248
ActiveWindow.ScrollRow = 1258
ActiveWindow.ScrollRow = 1279
ActiveWindow.ScrollRow = 1361
ActiveWindow.ScrollRow = 1426
ActiveWindow.ScrollRow = 1461
ActiveWindow.ScrollRow = 1736
ActiveWindow.ScrollRow = 1760
ActiveWindow.ScrollRow = 1907
ActiveWindow.ScrollRow = 1928
ActiveWindow.ScrollRow = 2028
ActiveWindow.ScrollRow = 2038
ActiveWindow.ScrollRow = 2062
ActiveWindow.ScrollRow = 2076
ActiveWindow.ScrollRow = 2144
ActiveWindow.ScrollRow = 2162
ActiveWindow.ScrollRow = 2278
ActiveWindow.ScrollRow = 2302
ActiveWindow.ScrollRow = 2327
ActiveWindow.ScrollRow = 2278
ActiveWindow.ScrollRow = 2206
ActiveWindow.ScrollRow = 1382
ActiveWindow.ScrollRow = 1279
ActiveWindow.ScrollRow = 378
ActiveWindow.ScrollRow = 296
ActiveWindow.ScrollRow = 172
ActiveWindow.ScrollRow = 162
ActiveWindow.ScrollRow = 124
ActiveWindow.ScrollRow = 121
ActiveWindow.ScrollRow = 117
ActiveWindow.ScrollRow = 114
ActiveWindow.ScrollRow = 110
ActiveWindow.ScrollRow = 107
ActiveWindow.ScrollRow = 100
ActiveWindow.ScrollRow = 90
ActiveWindow.ScrollRow = 83
ActiveWindow.ScrollRow = 69
ActiveWindow.ScrollRow = 49
ActiveWindow.ScrollRow = 38
ActiveWindow.ScrollRow = 1
Range("V1").Select
Application.CutCopyMode = False
ActiveCell.FormulaR1C1 = "Prix net pièce ou mètre linéaire"
Columns("S:U").Select
Range("U1").Activate
Columns("V:V").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
, SkipBlanks:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Columns("S:U").Select
Range("U1").Activate
Application.CutCopyMode = False
Selection.Delete Shift:=xlToLeft
Columns("O:R").Select
Range("R1").Activate
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
Selection.Delete Shift:=xlToLeft
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
Columns("L:L").Select
Selection.Delete Shift:=xlToLeft
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
Range("A1:U1").Select
Range("U1").Activate
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 192
.TintAndShade = 0
.PatternTintAndShade = 0
End With
Selection.Font.Bold = True
With Selection
.HorizontalAlignment = xlGeneral
.VerticalAlignment = xlCenter
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection
.HorizontalAlignment = xlCenter
.VerticalAlignment = xlCenter
.Orientation = 0
.AddIndent = False
.IndentLevel = 0
.ShrinkToFit = False
.ReadingOrder = xlContext
.MergeCells = False
End With
With Selection.Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
Selection.AutoFilter
Range("E13").Select
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 8
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 15
ActiveWindow.ScrollColumn = 14
ActiveWindow.ScrollColumn = 13
ActiveWindow.ScrollColumn = 12
ActiveWindow.ScrollColumn = 11
ActiveWindow.ScrollColumn = 10
ActiveWindow.ScrollColumn = 9
ActiveWindow.ScrollColumn = 7
ActiveWindow.ScrollColumn = 6
ActiveWindow.ScrollColumn = 5
ActiveWindow.ScrollColumn = 4
ActiveWindow.ScrollColumn = 3
ActiveWindow.ScrollColumn = 2
ActiveWindow.ScrollColumn = 1
Range("A1").Select
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("A1"), _
SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Sheet1").Sort
.SetRange Range("A2:U2358")
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("B16").Select
End Sub
Deuxième question portant sur la suppression des lignes.
J'ai lu beaucoup de solutions apportées ici, j'en ai testé beaucoup également, mais soit rien ne se passe (!), soit ca supprime plus que ce que je souhaite.
L'idée est de trouver un code me permettant de supprimer plusieurs lignes contenant soit MOT1, soit MOT2, soit MOT3
mais uniquement ces mots, par exemple une ligne contenant MOT1OUI ne devrait pas être supprimée (pour le moment les solutions trouvées suppriment tout ce qui contient MOT1 donc aussi ce qui contient MOT1OUI.
Voici ce que j'ai testé :
Sub test() Dim I As Integer For I = [A65000].End(xlUp).Row To 1 Step -1
If Not Cells(I, 1) .Resize(1, 6).Find("BOX2") Is Nothing Or _
Not Cells(I, 1).Find("BOX3") Is Nothing Or _
Not Cells(I, 1).Find("BOX-ACC-REHAU") Is Nothing Then Rows(I).Delete
Next I
End Sub
-----------------
Sub test()
Dim c As Range
For Each c In ActiveSheet.UsedRange
If c Like "box2" Or c Like "box3" Then c.Rows.Delete
Next
End Sub
-----------------
Sub test()
Dim I As Integer
Application.ScreenUpdating = False
For I = Range("A" & Rows.Count).End(xlUp).Row To 1 Step -1
If Range("A" & I).Value Like "*BOX2*" Then Rows(I).Delete
Next I
Application.ScreenUpdating = True
End Sub
J'espère avoir été à peu près claire dans ma demande, je vous remercie par avance de votre aide !