Fermeture automatique d'un fichier qui a été ouvert

  • Initiateur de la discussion Initiateur de la discussion shmider
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

shmider

XLDnaute Occasionnel
Bonsoir tout le monde,

Sachant qu'il ne s'agit pas du classeur actif, je voudrais pouvoir fermer un fichier excel à la fin de ma macro.

j'utilise ce code, sauf qu'à la fin j'ai un message d'erreur comme quoi "l indice n'apartien pas à la selection" et il me selectionne "chercher" !!

je ne voit pas la raison de cette erreur en fait !! 😱

le code:

Sub Calculer()
Dim Lig_FinExtraction As Integer
Dim F As Workbook
Dim chercher As String

Application.ScreenUpdating = 0

Set F = ThisWorkbook
chercher = Application.GetOpenFilename()
Workbooks.Open chercher
On Error GoTo erreur


'On detecte la dernière ligne vide et on arrete de tirer sur les formules juste avant
F.Activate
Sheets("forme").Activate
Sheets("forme").Range("B10:B210").Select
Selection.Find(What:="", After:=ActiveCell, LookIn:=xlValues, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False) _
.Activate
Lig_FinExtraction = ActiveCell.Row - 1

Sheets("2calculs").Activate
Sheets("2calculs").Range("A10:Z10").Select
Selection.Copy
Range("A11:Z" & Lig_FinExtraction).Select
ActiveSheet.Paste

Application.ScreenUpdating = 1



erreur:
MsgBox "traitement annulé !!", vbCritical

End Sub
 
Dernière édition:
Re : Fermeture automatique d'un fichier qui a été ouvert

Salut shmider,
voici ton code avec quelques petites modifications. Vois si cela te convient.

Code:
Sub Calculer()
Dim Lig_FinExtraction As Integer
Dim FAI As Workbook
Dim chercher As String, Fichier_Travail As String
Dim LigneRecherche As Variant


Application.ScreenUpdating = False

Set FAI = ThisWorkbook
chercher = Application.GetOpenFilename()
Workbooks.Open chercher
Fichier_Travail = ActiveWorkbook.Name

On Error GoTo erreur
FAI.Activate
Sheets("forme").Select
Set LigneRecherche = Range("B10:B210").Find(What:="", LookIn:=xlValues, LookAt:=xlWhole)
If Not LigneRecherche Is Nothing Then
    Lig_FinExtraction = LigneRecherche.Row - 1
Else
    Exit Sub
End If
 
'Windows(Fichier_Travail).Activate peut-être ? Ou alors c'est bien dans le même classeur ?
Sheets("2calculs").Select
Range("A10:Z10").Copy
Range("A11:Z" & Lig_FinExtraction).Select
ActiveSheet.Paste

Exit Sub

erreur:
MsgBox "traitement annulé !!", vbCritical

End Sub
Cordialement,

Étienne
 
Dernière édition:
Re : Fermeture automatique d'un fichier qui a été ouvert

Re bonsoir,

En fait ce code ne permet pas de fermer mon fichier "chercher" !! Et c'est ce que je cherche à faire dans mon premier code.

merci pour ton aide.
@+



Salut shmider,
voici ton code avec quelques petites modifications. Vois si cela te convient.

Code:
Sub Calculer()
Dim Lig_FinExtraction As Integer
Dim F As Workbook
Dim chercher As String, Fichier_Travail As String
Dim LigneRecherche As Variant


Application.ScreenUpdating = False

Set F = ThisWorkbook
chercher = Application.GetOpenFilename()
Workbooks.Open chercher
Fichier_Travail = ActiveWorkbook.Name

On Error GoTo erreur
F.Activate
Sheets("forme").Select
Set LigneRecherche = Range("B10:B210").Find(What:="", LookIn:=xlValues, LookAt:=xlWhole)
If Not LigneRecherche Is Nothing Then
    Lig_FinExtraction = LigneRecherche.Row - 1
Else
    Exit Sub
End If
 
'Windows(Fichier_Travail).Activate peut-être ? Ou alors c'est bien dans le même classeur ?
Sheets("2calculs").Select
Range("A10:Z10").Copy
Range("A11:Z" & Lig_FinExtraction).Select
ActiveSheet.Paste

Exit Sub

erreur:
MsgBox "traitement annulé !!", vbCritical

End Sub
Cordialement,

Étienne
 
Dernière édition:
Re : Fermeture automatique d'un fichier qui a été ouvert

Re,
si tu cherches à fermer ton fichier à la fin de ta procédure, la ligne à utiliser est la suivante :

Code:
Workbooks(chercher).Close

Pour le fermer sans enregistrer :

Code:
Workbooks(chercher).Close False

Si tu nous donnes plus de détails sur tes besoins, les réponses seront également beaucoup plus précises et adaptées à ta situation. Par exemple, déposer ton fichier en pièce jointe serait très utile.

À te relire pour plus

Étienne
 
Re : Fermeture automatique d'un fichier qui a été ouvert

Hello,

En fait je viens de résoudre le problème. c'était à cause du workbooks.name qu il fallait rajouté avant...

cf. le code de etienne il resoud ce problème.

Merci à vous et @+
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
2
Affichages
541
Réponses
0
Affichages
1 K
Retour