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