bonsoir
je ne comprends pas la macro ci dessous fonctionne une fois sur deux!!
je m'explique: selon certaines conditions une ligne s insère mais ca marche pas a tous les coups meme si les conditions sont les memes
kkun a t"il une reponse??
merci
Private Sub CommandButton3_Click()
Dim cell As Range
Application.ScreenUpdating = False
With Sheets("Relance")
.Range("A4" & ":" & "H" & .Range("G65536").End(xlUp).Row + 1).Clear
End With
For Each cell In Sheets("FEB").Range("E7:E" & Sheets("FEB").Range("E65536").End(xlUp).Row)
If cell.Value = "Validation ACHATS" Or cell.Value = "Traitement ACHATS" Then
If cell.Offset(0, 2) = "Oui" Then
cell.Offset(0, -3).Copy Sheets("Relance").Range("A" & Sheets("Relance").Range("A65536").End(xlUp).Row + 1)
cell.Offset(0, -1).Copy Sheets("Relance").Range("B" & Sheets("Relance").Range("B65536").End(xlUp).Row + 1)
cell.Copy Sheets("Relance").Range("C" & Sheets("Relance").Range("C65536").End(xlUp).Row + 1)
cell.Offset(0, 1).Copy Sheets("Relance").Range("D" & Sheets("Relance").Range("D65536").End(xlUp).Row + 1)
cell.Offset(0, 8).Copy Sheets("Relance").Range("E" & Sheets("Relance").Range("E65536").End(xlUp).Row + 1)
cell.Offset(0, 9).Copy Sheets("Relance").Range("F" & Sheets("Relance").Range("F65536").End(xlUp).Row + 1)
cell.Offset(0, 10).Copy Sheets("Relance").Range("G" & Sheets("Relance").Range("G65536").End(xlUp).Row + 1)
cell.Offset(0, 11).Copy Sheets("Relance").Range("H" & Sheets("Relance").Range("H65536").End(xlUp).Row + 1)
cell.Offset(0, 15).Copy Sheets("Relance").Range("I" & Sheets("Relance").Range("I65536").End(xlUp).Row + 1)
End If
End If
Next
Tri_InserLigne
Application.ScreenUpdating = True
End Sub
Sub Tri_InserLigne()
Application.ScreenUpdating = False
Dim plg As Range, plg2 As Range
Dim i As Long
If Sheets("Relance").Range("A4") = "" Then Exit Sub
With Sheets("Relance")
.Range(.Range("A4"), .Range("A4").SpecialCells(xlLastCell)).Interior.ColorIndex = xlNone
.Range("A4:" & .Range("H65536").End(xlUp).Address).Sort Key1:=.Range("F4"), Header:=xlNo
Set plg = .Range("A4:" & .Range("A65536").End(xlUp).Address)
For i = plg.Row + plg.Count - 1 To plg.Row + 1 Step -1
If Cells(i, 6) <> Cells(i - 1, 6) Then
Cells(i, 6).EntireRow.Insert
Cells(i, 1).Resize(1, 9).Interior.ColorIndex = 3
End If
Next
End With
Application.ScreenUpdating = True
End Sub
je ne comprends pas la macro ci dessous fonctionne une fois sur deux!!
je m'explique: selon certaines conditions une ligne s insère mais ca marche pas a tous les coups meme si les conditions sont les memes
kkun a t"il une reponse??
merci
Private Sub CommandButton3_Click()
Dim cell As Range
Application.ScreenUpdating = False
With Sheets("Relance")
.Range("A4" & ":" & "H" & .Range("G65536").End(xlUp).Row + 1).Clear
End With
For Each cell In Sheets("FEB").Range("E7:E" & Sheets("FEB").Range("E65536").End(xlUp).Row)
If cell.Value = "Validation ACHATS" Or cell.Value = "Traitement ACHATS" Then
If cell.Offset(0, 2) = "Oui" Then
cell.Offset(0, -3).Copy Sheets("Relance").Range("A" & Sheets("Relance").Range("A65536").End(xlUp).Row + 1)
cell.Offset(0, -1).Copy Sheets("Relance").Range("B" & Sheets("Relance").Range("B65536").End(xlUp).Row + 1)
cell.Copy Sheets("Relance").Range("C" & Sheets("Relance").Range("C65536").End(xlUp).Row + 1)
cell.Offset(0, 1).Copy Sheets("Relance").Range("D" & Sheets("Relance").Range("D65536").End(xlUp).Row + 1)
cell.Offset(0, 8).Copy Sheets("Relance").Range("E" & Sheets("Relance").Range("E65536").End(xlUp).Row + 1)
cell.Offset(0, 9).Copy Sheets("Relance").Range("F" & Sheets("Relance").Range("F65536").End(xlUp).Row + 1)
cell.Offset(0, 10).Copy Sheets("Relance").Range("G" & Sheets("Relance").Range("G65536").End(xlUp).Row + 1)
cell.Offset(0, 11).Copy Sheets("Relance").Range("H" & Sheets("Relance").Range("H65536").End(xlUp).Row + 1)
cell.Offset(0, 15).Copy Sheets("Relance").Range("I" & Sheets("Relance").Range("I65536").End(xlUp).Row + 1)
End If
End If
Next
Tri_InserLigne
Application.ScreenUpdating = True
End Sub
Sub Tri_InserLigne()
Application.ScreenUpdating = False
Dim plg As Range, plg2 As Range
Dim i As Long
If Sheets("Relance").Range("A4") = "" Then Exit Sub
With Sheets("Relance")
.Range(.Range("A4"), .Range("A4").SpecialCells(xlLastCell)).Interior.ColorIndex = xlNone
.Range("A4:" & .Range("H65536").End(xlUp).Address).Sort Key1:=.Range("F4"), Header:=xlNo
Set plg = .Range("A4:" & .Range("A65536").End(xlUp).Address)
For i = plg.Row + plg.Count - 1 To plg.Row + 1 Step -1
If Cells(i, 6) <> Cells(i - 1, 6) Then
Cells(i, 6).EntireRow.Insert
Cells(i, 1).Resize(1, 9).Interior.ColorIndex = 3
End If
Next
End With
Application.ScreenUpdating = True
End Sub