Re bonjour,
Comme ce matin, dès que la deuxième ligne de la feuille histo est remplie la macro ne fonctionne plus.
De plus, les données sont collées en colonne 1,2,8,9,10,11 de la feuille "histo" au lieu de se mettre à la suite.
Marlène4242
Voici le code :
Sub Valider()
Dim ligDeb, ligFin As Long
Dim colDeb, colFin As Long
Dim ligCpt, colCpt As Long
Dim ligLogDeb, ligLogFin As Long
Dim colLogDeb, colLogFin As Long
Worksheets("Suivi Collaborateurs NE").Select
ligDeb = 3 ' Debut du tableau en ligne 3
colDeb = 1 ' -- -- -- -- colonne 1
colFin = 20
Cells(ligDeb, colDeb).Select ' Se positionner au debut
Selection.End(xlDown).Select ' Aller a la fin
ligFin = Selection.Row ' Retenir la ligne de fin
Worksheets("Histo").Select
ligLogDeb = 2
colLogDeb = 1
Cells(ligLogDeb, colLogDeb).Select ' Se positionner au debut
If Not (Cells(ligLogDeb, colLogDeb)) = "" Then ' Le fichier LOG est il vide ?
Selection.End(xlDown).Select ' NON => Aller a la fin
ligLogFin = Selection.Row ' Retenir la ligne de fin
ligLogDeb = ligLogFin + 1
End If ' Fin du Si
Worksheets("Suivi Collaborateurs NE").Select ' Revenir au fichier ORIGINE
Application.EnableEvents = False ' Pour eviter les procedures evenementielles qui viendraient perturber le traitement en cours
Application.ScreenUpdating = False ' Pour aller plus vite en evitant d'afficher les modifs en cours
For ligCpt = ligDeb To ligFin ' De la 1ere ligne du tableau jusqua la Derniere
If UCase(Cells(ligCpt, 20)) = "OUI" Then ' SI VALIDATION = OUI ALORS traiter...
' Copier dans LOG
For colCpt = colDeb To colFin
Select Case colCpt
Case 1, 2, 8, 9, 10, 11 ' ici toutes les colonnes à copier et SEULEMENT celles là !
Worksheets("Histo").Cells(ligLogDeb, colCpt) = Worksheets("Suivi Collaborateurs NE").Cells(ligCpt, colCpt)
End Select
Next
Worksheets("Histo").Cells(ligLogDeb, colCpt) = Worksheets("Suivi Collaborateurs NE").Cells(ligCpt, colCpt)
ligLogDeb = ligLogDeb + 1
Worksheets("Suivi Collaborateurs NE").Select
Cells(ligCpt, 10) = Cells(ligCpt, 12).Value ' J = L (NE ACTUEL deveint NE VISE) ** avec value pour ne copier que la valeur et non la formule
Cells(ligCpt, 11) = Cells(ligCpt, 18) ' K = R (DATE DER EVAL = DATE EVAL)
Cells(ligCpt, 18) = "" ' R = "" (DATE EVAL effacee)
Cells(ligCpt, 20) = "" ' T = "" (VALIDATION = "")
End If ' FIN du SI
Next ' Ligne Suivante
Application.EnableEvents = True ' Remettre en place le traitement des procedures evenementielles
Application.ScreenUpdating = True ' Remettre en place l'affichage de l'ecran
End Sub