Forcer l'ouverture d'un fichier pour y extraire des données

fattah_5791

XLDnaute Occasionnel
Slt
J'ai un fichier (PV.xlsm) qui contient une macro me permettant d'aller au fichier (Source.xlsx) et d'y extraire qlqs données.
j'ai bien realisé ma macro mais elle fonctionne lorsque le fichier (source.xlsx) est ouvert à l'avance. j'aimerai ajouter du code à ma macro pour forcer l'ouverture du fichier source mm si il est fermé prealablement.

rq: les deux fichiers se trouvent ds le mm dossier
Merci
 

fattah_5791

XLDnaute Occasionnel
Re : Forcer l'ouverture d'un fichier pour y extraire des données

Encore de l'aide: une fois extraire les données voulues, j'ai ajouté un truc me permettant de fermer le fichier Source (les fichiers source) mais un msg de genre (voir pce jointe) surgi. j'ai une dizaine de fichiers source auxquels je dois repondre au msg derangeant.
merci
 

Pièces jointes

  • image.jpg
    image.jpg
    23.5 KB · Affichages: 34
  • image.jpg
    image.jpg
    23.5 KB · Affichages: 35

Lone-wolf

XLDnaute Barbatruc
Re : Forcer l'ouverture d'un fichier pour y extraire des données

Bonjour fattah

ajoute cette macro

Code:
Sub ClearClipboard()
Dim oDataObject As DataObject

Set oDataObject = New DataObject
oDataObject.SetText ""
oDataObject.PutInClipboard

Set oDataObject = Nothing
End Sub

Et dans la macro du copiage, avant la fermeture du classeur tu ajoute Call ClearClipbord

Un exemple

Code:
ActiveWorkbook.ActiveSheet.Range("a3:a" & Range("a65536").End(xlUp).Row).Copy _
    Wbdest.Worksheets("Stock").Range("a65536").End(xlUp)(2)
        Application.DisplayAlerts = False
    Wbdest.Save
Call ClearClipbord
 ActiveWorkbook.Close
 
Dernière édition:

youky(BJ)

XLDnaute Barbatruc
Re : Forcer l'ouverture d'un fichier pour y extraire des données

Bonjour tous,
En complément du poste #2 de Lone-Wolf (salut)
Pour ne pas tenter de reouvrir le fichier s'il est déja ouvert voici qlq lignes.
Bruno
Code:
Sub essai()
Dim Afermer As Boolean

On Error Resume Next ' on gère les erreurs
Workbooks("TONFICHIER.xlsx").Activate 'on tente de l'activer
If Err > 0 Then
Workbooks.Open  ThisWorkbook.Path & "\TONFICHIER.xlsx"
Err.Clear 'efface err
Afermer = True
End If
'suite la macro qui copie


If Afermer = True Then Workbooks("TONFICHIER.xlsx").Close False
'si le fichier était fermé on le referme
End Sub
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 361
Messages
2 087 626
Membres
103 610
dernier inscrit
Guelim