Problème avec Application.DisplayAlerts = False

Bonjour à tous,

Je suis plus que débutant sur VBA et j'ai besoin de votre aide. J'ai trouvé un code qui à priori fait exactement je veux, le seul problème c'est que cela me demande si je veux enregistrer le fichier après avoir actualisé les données et moi je veux que le fichier s’enregistre automatiquyent. J'ai cherché sur plusieurs forum mais je ne vois pas ou est l’erreur, pouvez-vous m'aider svp?

Sub RefreshWorkbooks()

Dim cel As Range, rgFiles As Range

Dim wb As Workbook

Application.ScreenUpdating = False

Application.DisplayAlerts = False

Application.EnableEvents = False

With Worksheets("Sheet1")

Set rgFiles = .Range("A2") 'First file & path

Set rgFiles = Range(rgFiles, .Cells(.Rows.Count, rgFiles.Column).End(xlUp)) 'All the files & paths

End With

On Error Resume Next

For Each cel In rgFiles.Cells

If cel.Value <> "" Then

Set wb = Workbooks.Open(cel.Value, UpdateLinks:=True)

wb.RefreshAll

wb.Close SaveChanges:=True

End If

Next

On Error GoTo 0

Application.DisplayAlerts = True

Application.ScreenUpdating = True

Application.EnableEvents = True

End Sub

Merci d'avance,

Julien

Bonjour,

problème c'est que cela me demande si je veux enregistrer le fichier après avoir actualisé les données et moi je veux que le fichier s’enregistre automatiquement.

le ligne wb.Close SaveChanges:=True

veut dire: fermer le classeur et ignorer toutes les modifications qui lui ont été apportées.

essais plutot avec:

wb.Save
wb.Close SaveChanges:=True

Bonjour,

et en faisant un .save avant ?

eric

Bonjour,

Une proposition à étudier !?

https://docs.microsoft.com/fr-fr/office/vba/api/excel.workbook.close

snip 20190126123812
Public Sub RefreshWorkbooks()
Dim wb As Workbook, wb2 As Workbook
Dim ws As Worksheet
Dim i As Long, rw As Long

    With Application
        .EnableEvents = False
        .ScreenUpdating = False
    End With

    Set wb = ThisWorkbook
    Set ws = wb.Worksheets("Sheet1")
    With ws
        rw = .Cells(.Rows.Count).End(xlUp).Row
        For i = 2 To rw
            On Error GoTo err_Handler
            If Not IsEmpty(.Cells(i, 1).Value) Then
                Set wb2 = Nothing
                Set wb2 = Workbooks.Open(.Cells(i, 1).Value, UpdateLinks:=True)
                With wb2
                    .RefreshAll
                    .Close savechanges:=True
                End With
            End If
        Next i
    End With

exit_Handler:
    Application.EnableEvents = True
    Exit Sub

err_Handler:
    MsgBox "Erreur : " & Err.Number & Chr(10) & Err.Description
    Resume exit_Handler

End Sub
Rechercher des sujets similaires à "probleme application displayalerts false"