Jess88026467
XLDnaute Nouveau
Bonjour,
J'ai une feuille source où la colonne T donne la condition de transfert de la ligne vers le fichier de destination.
Une fois la ligne dans le fichier de destination je ne souhaite plus la voir apparaitre dans le fichier source.
Pouvez -vous m'aider ?
J'ai déja essayé plusieurs macro mais il n'y a toujours un problème. Celle qui se rapproche le plus de mes attentes est :
(celle ci transfert si le code reconnait le chiffre 1 dans la ligne, je souhaite juste remplacer "1& par "OUI" et sélectionner la colonne T)
Sub Archivageformation()
Dim I As Long, Plage As Range, Ligne As Long
On Error Resume Next
Ligne = Sheets("Formation (archives)").Cells.Find("*", , xlValues, , xlByRows, xlPrevious).Row
If Err.Number > 0 Then Ligne = 0
On Error GoTo 0
With Sheets("Formation (personnel)")
For I = 1 To .Cells.Find("*", , xlValues, , xlByRows, xlPrevious).Row
If Application.CountIf(.Rows(I), 1) > 0 Then
Ligne = Ligne + 1
.Rows(I).Copy Sheets("Formation (archives)").Cells(Ligne, 1)
End If
Next I
For I = .Cells.Find("*", , xlValues, , xlByRows, xlPrevious).Row To 1 Step -1
If Application.CountIf(Rows(I), 1) > 0 Then
Rows(I).Delete
End If
Next I
End With
End Sub
Merci pour votre aide, je n'ai aucunes bases en VBA et il est compliqué poiur moi d'adapter les codes.
J'ai une feuille source où la colonne T donne la condition de transfert de la ligne vers le fichier de destination.
Une fois la ligne dans le fichier de destination je ne souhaite plus la voir apparaitre dans le fichier source.
Pouvez -vous m'aider ?
J'ai déja essayé plusieurs macro mais il n'y a toujours un problème. Celle qui se rapproche le plus de mes attentes est :
(celle ci transfert si le code reconnait le chiffre 1 dans la ligne, je souhaite juste remplacer "1& par "OUI" et sélectionner la colonne T)
Sub Archivageformation()
Dim I As Long, Plage As Range, Ligne As Long
On Error Resume Next
Ligne = Sheets("Formation (archives)").Cells.Find("*", , xlValues, , xlByRows, xlPrevious).Row
If Err.Number > 0 Then Ligne = 0
On Error GoTo 0
With Sheets("Formation (personnel)")
For I = 1 To .Cells.Find("*", , xlValues, , xlByRows, xlPrevious).Row
If Application.CountIf(.Rows(I), 1) > 0 Then
Ligne = Ligne + 1
.Rows(I).Copy Sheets("Formation (archives)").Cells(Ligne, 1)
End If
Next I
For I = .Cells.Find("*", , xlValues, , xlByRows, xlPrevious).Row To 1 Step -1
If Application.CountIf(Rows(I), 1) > 0 Then
Rows(I).Delete
End If
Next I
End With
End Sub
Merci pour votre aide, je n'ai aucunes bases en VBA et il est compliqué poiur moi d'adapter les codes.