Fichier excel pas complétement fermé

Résolu
Philou73.ch -  
 Philou73.ch -
Bonjour à vous,

Je vous ai mis ci-dessous, la macro qui me sert à quitter un fichier excel en allant dans un autre.
Pour résumé, j'ouvre un fichier excel ( A) , je choisi ce qui j'ai à faire. Le choix m'envoi, si nécessaire dans un autre fichier ( B) . J'y introduit les différentes données et quand j'ai fini, j'aimerai retourné dans A tout en enregistrant et quittant B.
Celà me semblait fonctionné, mais ces derniers temps, j'ai le message que le fichier A est déjà ouvert et que je ne peux pas y accéder.

Je ne comprends pas. Pourtant, je ne vois le fichier A ouvert

Sub Quitter()
'Faire apparaître la barre des formules
Application.DisplayFormulaBar = True
'Pose des variables pour fermeture et contrôle
Dim CEFI As String, Cifi As String, Civa As String, CheFi As String, CiOn As String
CEFI = Sheets("ArPr").Range("D2").Value
If Sheets("ArPr").Range("K1") <> "" Then Cifi = "Répertoire_Unique"
If Cifi = "" Then Cifi = "Classeur de bienvenue" ' Sortie normale
Civa = "Rien"
X = 2
'Boucle pour trouver la ligne du fichier
While Sheets("ArPr").Range("A" & X) <> ""
Civa = Sheets("ArPr").Range("A" & X).Value
'Si identique
If Civa = Cifi Then
' Compléter les données selon la liste
CheFi = Sheets("ArPr").Range("B" & X).Value
Cifi = Sheets("ArPr").Range("D" & X).Value
CiOn = Sheets("ArPr").Range("H" & X).Value
'Contrôle si déjà ouvert
On Error Resume Next
Workbooks(Cifi).Activate
' Si une erreur est renvoyée, fichier non ouvert
If Err.Number <> 0 Then
' Fichier NON ouvert --> l'ouvrir
Workbooks.Open Filename:=CheFi & Cifi
Workbooks(CEFI).Activate
Workbooks(CEFI).Save
Workbooks(CEFI).Saved = True
ActiveWorkbook.Close
Workbooks(Cifi).Activate
Sheets(CiOn).Activate
End
Else
' Fichier déjà ouvert
Workbooks(CEFI).Save
Workbooks(CEFI).Saved = True
ActiveWorkbook.Close
Workbooks(Cifi).Activate
Sheets(CiOn).Activate
End If
End If
X = X + 1
Wend

Merci à vous de votre aide qui m'a déjà été très très précieuse.

1 réponse

  1. f894009 Messages postés 17417 Date d'inscription   Statut Membre Dernière intervention   1 717
     
    Bonjour,

    essayez ceci, ai pas vos donnees, peut pas tester:

    Sub Quitter()
    'Pose des variables pour fermeture et contrôle
    Dim CEFI As String, Cifi As String, Civa As String, CheFi As String, CiOn As String

    'Faire apparaître la barre des formules
    Application.DisplayFormulaBar = True

    CEFI = Sheets("ArPr").Range("D2").Value
    If Sheets("ArPr").Range("K1") <> "" Then
    Cifi = "Répertoire_Unique"
    Else
    Cifi = "Classeur de bienvenue" ' Sortie normale
    End If
    With Worksheets("ArPr")
    Lig = 2
    Lig = .Columns("A").Find(Cifi, .Cells(Lig, "A"), , xlWhole).Row
    ' Compléter les données selon la liste
    CheFi = .Range("B" & Lig).Value
    Cifi = .Range("D" & Lig).Value
    CiOn = .Range("H" & Lig).Value
    End With

    'Contrôle si déjà ouvert
    ouvert = False
    For Each fich In Workbooks
    If fich.Name = Cifi Then
    ouvert = True
    Exit For
    End If
    Next
    If ouvert = False Then
    ' Fichier NON ouvert --> l'ouvrir
    Workbooks.Open Filename:=CheFi & Cifi
    Workbooks(CEFI).Activate
    End If
    Workbooks(CEFI).Save
    Workbooks(CEFI).Saved = True
    ActiveWorkbook.Close
    Workbooks(Cifi).Activate
    Sheets(CiOn).Activate
    End Sub
    0
    1. Philou73.ch
       
      Merci à vous.
      Je viens de tester votre macro. C'est tout bon. Ca a bugger, au moment au premier essai, et c'est là que je me suis rendu compte, que je m'étais tromper dans le nom d'un fichier.
      Là, 'cest merveilleux, ca tourne nickel.
      Un grand grand merci.
      0