Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Pb de fermeture de fichier appelé par macro avec Activate.Previous Activate.Next

fb62840

XLDnaute Impliqué
Bonjour,

J'ai parcouru de nombreux forums afin de trouver une solution à mon problème sans succès.
Je sollicite donc votre aide et je vous remercie de m'aider à trouver une solution.

Voici le problème :
Une macro appelle l'ouverture d'une multitude de fichiers et sur lesdits fichiers de x feuilles et "bascule" les données présentes dans ce fichier sur le fichier excel d'appel d'exécution de la macro. Le problème c'est qu'il semble que tous les fichiers ouverts (et qui devrait selon toute logique se fermer) ne se ferme pas, il reste pour chacun d'eux une instance EXCEL.EXE dans le gestionnaire de tâche...

voici le code :

Code:
Sub ventil()
Application.ScreenUpdating = False

zz = 1
Sheets("TTR").Select
Range("b5").Select
para = ActiveCell.Row
Range("m1").Select
ActiveCell.FormulaR1C1 = para

Range("b5").Select
Do While ActiveCell <> ""
Range(ActiveCell.Offset(0, 4), ActiveCell.Offset(0, 4)).Select
Fic = ActiveCell.Value

Set appExcel = CreateObject("Excel.Application")
appExcel.Workbooks.Open Filename:=Fic
Dim feuille As Object

For Each feuille In appExcel.Sheets
Sheets("Loc").Select

Range("a" & zz).Select
ActiveCell.FormulaR1C1 = Fic

Range("b" & zz).Select
ActiveCell.FormulaR1C1 = feuille.Name
zz = zz + 1

Next feuille

Sheets("TTR").Select
para = para + 1
Range("b" & para).Select

Loop

Sheets("LOC").Select
Range("b1").Select
Do While ActiveCell <> ""
If Left(ActiveCell.Value, 11) = "HL" Then
Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 1)).Select
ActiveCell.FormulaR1C1 = "ok"
Range(ActiveCell.Offset(0, -1), ActiveCell.Offset(0, -1)).Select
End If

Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(1, 0)).Select

Loop

Range("a1").Select
ActiveCell.FormulaR1C1 = "ITM"
Range("b1").Select
ActiveCell.FormulaR1C1 = "ADAA"
Range("c1").Select
ActiveCell.FormulaR1C1 = "INTG"

Sheets("HL").Select
Range("c1").Select
debnotform = 2
Do While ActiveCell <> ""
Range(ActiveCell.Offset(0, -2), ActiveCell.Offset(0, -2)).Select
fichform = ActiveCell.Value 'chemin
Range(ActiveCell.Offset(0, 1), ActiveCell.Offset(0, 1)).Select
feuilform = ActiveCell.Value 'onglet
    Workbooks.Open Filename:=fichform
    Sheets(feuilform).Select
Range("b1").Select
Selection.Copy

ActiveWindow.ActivatePrevious '
Sheets("NTL").Select
Range("a" & debnotform).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=True 

ActiveWindow.ActivatePrevious ' arrive fichier marché
Sheets(feuilform).Select
Range("q1").Select 
Selection.Copy

ActiveWindow.ActivatePrevious ' arrive sur recap marche
Sheets("NTL").Select
Range("b" & debnotform & ":b" & debnotform + 39).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False 
Selection.FillDown

ActiveWindow.ActivatePrevious
Sheets(NTL).Select
Range("j1").Select
Selection.Copy
ActiveWindow.ActivatePrevious
Sheets("NTL").Select
Range("c" & debnotform & ":c" & debnotform + 39).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False 'colle special valeur sans transpose
Selection.FillDown

ActiveWindow.ActivatePrevious

ActiveWindow.Close

debnotform = debnotform + 40

Sheets("LOC").Select
Range(ActiveCell.Offset(1, 1), ActiveCell.Offset(1, 1)).Select
Loop


Range("a2").Select
Do While ActiveCell <> ""
Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(1, 0)).Select
Loop
finlis = ActiveCell.Row
Rows(finlis & ":10000").Select
Selection.ClearContents
    
Call SupprLigneVide

End Sub

Merci pour votre aide
 

Pierrot93

XLDnaute Barbatruc
Re : Pb de fermeture de fichier appelé par macro avec Activate.Previous Activate.Next

Bonjour,

petite question au passage, pourquoi créer des objets "application excel" ?

bon après midi
@+
 

fb62840

XLDnaute Impliqué
Re : Pb de fermeture de fichier appelé par macro avec Activate.Previous Activate.Next

Bonjour,

Afin d'ouvrir l'application Excel et d'ouvrir successivement tous les fichiers que prendra la valeur Fic.

Cordialement
 

Pierrot93

XLDnaute Barbatruc
Re : Pb de fermeture de fichier appelé par macro avec Activate.Previous Activate.Next

Re,

tu pourrais tres bien ouvrir les classeurs dans l'appli ou s'exécute le code...... pour fermer l'appli, anant le "loop" :
Code:
appExcel.close

mas bon, on doit pouvoir faire mieux...
 

fb62840

XLDnaute Impliqué
Re : Pb de fermeture de fichier appelé par macro avec Activate.Previous Activate.Next

Bonjour,

Malheureusement cela ne change rien. Les multiples instances Excel.exe restent ouvertes dans le gestionnaire des tâches. Et, il faut "manuellement" fermer chacune d'elle.

Merci
 

Pierrot93

XLDnaute Barbatruc
Re : Pb de fermeture de fichier appelé par macro avec Activate.Previous Activate.Next

Bonjour,

bah... ouvres tes fichiers dans la même instance que celle utilisée par l'exécution de ta macro.... comme dit au post 2, eso vois pas l'utilité de créer une nouvelle application Excel à chaque ouverture de fichier...

bonne journée
@+
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…