Fichier excel pas complétement fermé
Résolu
Philou73.ch
-
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.
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:
- Fichier excel pas complétement fermé
- Fichier bin - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
- Fichier .dat - Guide
1 réponse
Bonjour,
essayez ceci, ai pas vos donnees, peut pas tester:
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
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.