Marwa Chefii
XLDnaute Nouveau
Bonjour à tous,
Je suis débutante en VBA et je rencontre un problème très gênant.
J'ai créé un bouton dans mon fichier EXCEL qui permet d'actualiser les données d'un onglet "SOURCE" à partir d'un autre fichier (voir code ci dessous).
Le code fonctionne parfaitement, sauf qu'une erreur aléatoire se produit [50290 erreur définie par l'application ou par l'objet] , et pointe sur la ligne en jaune dans la capture ci dessous.
Lors du débogage, je clique sur continuer et l'exécution du code reprenne normalement.
Any help please ! c'est un peut urgent 😳
	
	
	
	
	
		
	
		
			
		
		
	
				
			Je suis débutante en VBA et je rencontre un problème très gênant.
J'ai créé un bouton dans mon fichier EXCEL qui permet d'actualiser les données d'un onglet "SOURCE" à partir d'un autre fichier (voir code ci dessous).
Le code fonctionne parfaitement, sauf qu'une erreur aléatoire se produit [50290 erreur définie par l'application ou par l'objet] , et pointe sur la ligne en jaune dans la capture ci dessous.
Lors du débogage, je clique sur continuer et l'exécution du code reprenne normalement.
Any help please ! c'est un peut urgent 😳
		VB:
	
	
	Sub Bouton_Actualiser()
    Application.ScreenUpdating = False
    
    Dim Var As String
    Sheets("PERSONNES PHYSIQUES").Select
    Var = Range("C7").Value
    
    Set XL = CreateObject("Excel.Application")
    XL.Visible = False
    XL.Application.DisplayAlerts = False
    XL.Application.AlertBeforeOverwriting = False
    XL.Workbooks.Open ("C:\tmp\SOURCE PPH.xls")
    XL.Sheets("SOURCE PPH").Activate
    XL.ActiveSheet.Range("A2").Copy
    
    Sheets("PERSONNES PHYSIQUES").Activate
    
    Déprotéger
    
    ActiveSheet.Range("C5").PasteSpecial Paste:=xlPasteValues
    ActiveSheet.Range("C7").Select
    Selection.Copy
    ActiveSheet.Range("C5").PasteSpecial Paste:=xlPasteFormats
    Application.CutCopyMode = False
    Selection.NumberFormat = "[$-fr-FR]mmm-yy;@"
    
    If ActiveSheet.Range("D5").Value = "NON" Then
    XL.Range("B1").Select
    XL.Selection.AutoFilter
    XL.ActiveSheet.Range("$A$1:$U" & XL.ActiveSheet.UsedRange.Rows.Count).AutoFilter Field:=2, Criteria1:=Var
    XL.ActiveSheet.Range("A2:U" & XL.ActiveSheet.UsedRange.Rows.Count).Copy
    Sheets("AGT85 SOURCE PPH").Select
    ActiveSheet.Range("A" & ActiveSheet.UsedRange.Rows.Count + 1).Select
    ActiveSheet.Paste
    ActiveSheet.Range("V2").Select
    Selection.AutoFill Destination:=Range("V2:V" & ActiveSheet.UsedRange.Rows.Count)
    
    Sheets("PERSONNES PHYSIQUES").Select
    
    ActiveSheet.AutoFilterMode = False
    
    Dim PL1 As Range
    Set PL1 = Application.Union(Range("E12:M" & ActiveSheet.UsedRange.Rows.Count), Range("T12:U" & ActiveSheet.UsedRange.Rows.Count), Range("W12:W" & ActiveSheet.UsedRange.Rows.Count))
    PL1.Locked = True
    
    Range("B11").Select
    Selection.AutoFilter
    ActiveSheet.Range("$B$11:$AD" & ActiveSheet.UsedRange.Rows.Count).AutoFilter Field:=1, Criteria1:="Actuelle"
    
    Dim PL As Range
    Set PL = Application.Union(Range("E12:M" & ActiveSheet.UsedRange.Rows.Count), Range("T12:U" & ActiveSheet.UsedRange.Rows.Count), Range("W12:W" & ActiveSheet.UsedRange.Rows.Count))
    PL.Locked = False
    
    ActiveSheet.Range("C5").Select
    
    Protéger
    MsgBox "FICHIER ACTUALISE AVEC SUCCES!"
    
    CutCopyMode = False
    
    XL.CutCopyMode = False
    XL.ActiveWorkbook.Close
    XL.Quit
    Set XL = Nothing
    
    Exit Sub
    
    Else:
    
    Protéger
    
    MsgBox "ATTENTION ... FICHIER DEJA ACTUALISE!"
    
    CutCopyMode = False
    
    XL.CutCopyMode = False
    XL.ActiveWorkbook.Close
    XL.Quit
    Set XL = Nothing
    
    Exit Sub
    
    End If
    
    Application.ScreenUpdating = True
    
End Sub