1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| Sub Test2()
Dim CelTest As Range
Dim StrFeuil As String
Dim IntLigne As Integer
With Sheets("Général")
'On va boucler sur les cellule de A9, jusqu'a la derniere ligne pleine de la colonne A
For Each CelTest In .Range(.Range("A7"), .Cells(Rows.Count, "A").End(xlUp))
'On va se decaler pour aller voir la valeur de la colonne K
StrFeuil = CelTest.Offset(0, 10).Value
'On evite un plantage sur une cellule qui serait vide
If StrFeuil <> "" Then
'On controle que ca n'est pas la 1er entrée que l'on fait dans le tableau
'Je fait ca a cause des 2 lignes qui sont presente dans ton tableau et qui laissent donc 2 case vide dans la colonne A
'Cases qui ne doivent bien sur pas etre prisent en compte.
If Sheets(StrFeuil).Cells(Rows.Count, "A").End(xlUp).Row = 5 Then
'On est dans le cas d'une 1ere saisi
'On va donc effectuer la copy 2 lignes plus bas
'On copy la ligne dans l'onglet correspondant
'CelTest.EntireRow.Copy Sheets(StrFeuil).Cells(Rows.Count, "A").End(xlUp).Offset(2, 0)
'On peut ne copier que les cellules qui contiennent les valeurs necessaires (de A à J)
.Range(CelTest, CelTest.Offset(0, 9)).Copy Sheets(StrFeuil).Cells(Rows.Count, "A").End(xlUp).Offset(3, 0)
Else
'On copy la ligne dans l'onglet correspondant, a la suite des lignes deja saisies
'CelTest.EntireRow.Copy Sheets(StrFeuil).Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
'On peut ne copier que les cellules qui contiennent les valeurs necessaires (de A à J)
.Range(CelTest, CelTest.Offset(0, 9)).Copy Sheets(StrFeuil).Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
End If
End If
Next
End With
End Sub |
Partager