Salut,
Je rencontre un problème d'adaptation d'une macro qui m'avait été gentillement donnée il y a quelques temps par un ExcelDownloadien bien connu (Job75).
A l'époque l'objectif était de récupérer dans une feuille "recap", des données saisies dans une feuille "Saisie". Les lignes sur lesquelles un utilisateurs avait écrit un "X" devaient arriver sur "Recap" et à chaque modification des "X" sur la feuille saisie, la feuille "Recap" s'actualisait.
Cela fonctionne parfaitement ! Malheureusement les besoins ont évolués et l'on me demande aujourd'hui de modifier l'extraction pour obtenir certaines infos sur 1 feuille et d'autre infos sur une autre.
J'ai formulé les contraintes sur un classeur en pièce jointe et je remets la macro de Job75.
Merci infiniement de prendre un peu de votre temps
Bonne journée
Je rencontre un problème d'adaptation d'une macro qui m'avait été gentillement donnée il y a quelques temps par un ExcelDownloadien bien connu (Job75).
A l'époque l'objectif était de récupérer dans une feuille "recap", des données saisies dans une feuille "Saisie". Les lignes sur lesquelles un utilisateurs avait écrit un "X" devaient arriver sur "Recap" et à chaque modification des "X" sur la feuille saisie, la feuille "Recap" s'actualisait.
Cela fonctionne parfaitement ! Malheureusement les besoins ont évolués et l'on me demande aujourd'hui de modifier l'extraction pour obtenir certaines infos sur 1 feuille et d'autre infos sur une autre.
J'ai formulé les contraintes sur un classeur en pièce jointe et je remets la macro de Job75.
Merci infiniement de prendre un peu de votre temps
Bonne journée
Code:
Private Sub Worksheet_Activate()
Dim plage As Range, i As Long
Application.ScreenUpdating = False
With Sheets("SAISIE")
Set plage = .Range("A5", .Range("A" & Rows.Count).End(xlUp))
End With
On Error Resume Next
[Zone].Delete 'suppression préalable
On Error GoTo 0
plage.EntireRow.Copy 'copie de la plage
[8:8].Insert 'insertion de lignes
Me.Names.Add "Zone", [8:8].Resize(plage.Count) 'mémorisation dans un nom
[Zone].Resize(, 2).Cut [C8]
For i = 11 + plage.Count To 12 Step -1
If Cells(i, 3).Interior.ColorIndex < 0 And Cells(i, 3) <> "" And Cells(i, 4) = "" _
Or Cells(i, 3).Interior.ColorIndex > 0 And Cells(i + 1, 3) = "" _
Or Cells(i, 3) & Cells(i + 1, 3) = "" Then Rows(i).Delete
Next
If [C8] = "" And [C9] <> "" Then Rows(8).Delete
On Error Resume Next 'si la plage Zone a été supprimée
[Zone].Columns(6).ClearContents 'si l'on veut effacer les "x" en colonne D
Range("C1").Select
End Sub