Bonjour,
J'utilise le code ci-dessous pour obtenir le report de données d'un fichier à l'autre.
J'ai 2 soucis :
Les reports ne semble pas se faire correctement (j'ai bien des données reportées mais ce ne sont pas les bonnes, peut être y-a-t-il un problème de ligne)
L'exécution est extrêmement lente (pourriez-vous m'aider à accélérer l'exécution ?)
2 fichiers en pièce-jointe avec explications sur feuille explications
Merci beaucoup pour votre aide.
	
	
	
	
	
		
	
		
			
		
		
	
				
			J'utilise le code ci-dessous pour obtenir le report de données d'un fichier à l'autre.
J'ai 2 soucis :
Les reports ne semble pas se faire correctement (j'ai bien des données reportées mais ce ne sont pas les bonnes, peut être y-a-t-il un problème de ligne)
L'exécution est extrêmement lente (pourriez-vous m'aider à accélérer l'exécution ?)
2 fichiers en pièce-jointe avec explications sur feuille explications
Merci beaucoup pour votre aide.
		Code:
	
	
	Sub ACTU()
  Dim NumSem, NOM, CAUSE, Mois, AdresseNom As String
  Dim REM As Boolean
  Dim PlanCong, Plan As Workbook
  Dim result As Range
  Dim Jour As Byte
  NumSem = UCase(Range("B1").Value)
  Mois = Range("A1").Value & " " & Range("A2").Value
  Application.ScreenUpdating = False  
  Set PlanCong = Workbooks.Add("C:\ACT2017\DEVO\Plan_Orga_2017.xlsx")
  Set Plan = Workbooks("PLANNIF 2017")
  Workbooks("PLANNIF 2017").Activate
  Range("A23", "A146").Select 'C'est là que se trouvent les noms
  For Each Cell In Selection
  NOM = Cell.Value 
  If NOM<> "" Then 
  For i = 2 To 10 Step 2
  PlanCong.Worksheets(Mois).Activate 'on active la feuille 
  If NumMois(Month(Plan.Sheets(NumSem).Cells(2, i).Value)) & " 2017" <> Mois Then
  PlanCong.Worksheets(NumMois(Month(Plan.Sheets(NumSem).Cells(2, i).Value)) & " 2017").Activate
  Mois = ActiveSheet.Name
  End If
  Set result = PlanCong.Worksheets(Mois).Range("A1:A92").Find(What:=NOM, LookIn:=xlValues)
  If result Is Nothing Then GoTo fin
   AdresseNom = result.Address
  Jour = Day(Plan.Worksheets(NumSem).Cells(2, i).Value
  Select Case Range(AdresseNom).Offset(0, Jour).Value
  Case Is = "M"
  Cell.Offset(0, i).Value = "M"
   Case Is = "R"
  Cell.Offset(0, i).Value = "R"
  Case Is = "T"
  Cell.Offset(0, i).Value = "T"
  Case Else
  If Range(AdresseNom).Offset(0, Jour).Value <> "" Then
  Cell.Offset(0, i).Value = Range(AdresseNom).Offset(0, Jour).Value  '"ABS"
  Else
  Cell.Offset(0, i).Value = ""
  End If
  End Select
  Select Case Range(AdresseNom).Offset(-1, Jour).Value
  Case Is = "M"
  Cell.Offset(0, i - 1).Value = "M"
  Case Is = "R"
  Cell.Offset(0, i - 1).Value = "R"
  Case Is = "T"
  Cell.Offset(0, i - 1).Value = "T"
   Case Else
   If Range(AdresseNom).Offset(-1, Jour).Value <> "" Then
  Cell.Offset(0, i - 1).Value = Range(AdresseNom).Offset(-1, Jour).Value '"ABS"
  Else
  Cell.Offset(0, i - 1).Value = ""
  End If
  End Select
  Next i
  End If
  Next
  PlanCong.Close SaveChanges:=False
  Application.ScreenUpdating = True
  Set PlanCong = Nothing
End Sub