Fichier excel pas complétement fermé

Résolu/Fermé
Philou73.ch - 1 sept. 2014 à 14:36
 Philou73.ch - 5 sept. 2014 à 20:18
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.
A voir également:

1 réponse

f894009 Messages postés 17213 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 25 décembre 2024 1 711
2 sept. 2014 à 16:34
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
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