olivthill | En VBA, on peut écrire une macro qui ressemblerait à :
Code :
- ' Recherche le début
- seuil_debut = 2
- col_no = 1 ' pour la colonne B (A = 1, B = 2)
- lg_no = 1 ' à partir de la première ligne
- Do While Not IsEmpty(Cells(lg_no, col_no))
- If (src_feuille.Cells(src_lg_no, src_col_no).Value = seuil_debut) Then
- Exit For
- End If
- lg_no = lg_no + 1
- Loop
- If (IsEmpty(Cells(lg_no, col_no)) Then
- Return ' Seuil non trouvé, on sort
- End If
- lg_debut_copie = lg_no;
- ' Recherche la fin
- seuil_fin = 7
- lg_no = lg_debut_copie
- Do While Not IsEmpty(Cells(lg_no, col_no))
- If (src_feuille.Cells(src_lg_no, src_col_no).Value = seuil_fin) Then
- Exit For
- End If
- lg_no = lg_no + 1
- Loop
- If (IsEmpty(Cells(lg_no, col_no)) Then
- Return ' Seuil non trouvé, on sort
- End If
- lg_fin_copie = lg_no;
- ' Copie
- src_col_no = 1 ' pour la colonne B (A = 1, B = 2)
- src_lg_no = lg_debut_copie ' à partir de la première ligne
- dst_col_no = 3
- dst_lg_no = 1
- Do While (src_lg_no <= lg_fin_copie)
- Cells(dst_lg_no, dst_col_no).Value = Cells(src_lg_no, src_col_no).Value
- Cells(dst_lg_no, dst_col_no + 1).Value = Cells(src_lg_no, src_col_no + 1).Value
- dst_lg_no = dst_lg_no + 1
- src_lg_no = src_lg_no + 1
- Loop
|
Message édité par olivthill le 24-05-2011 à 11:10:48
|