IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VBA Word Discussion :

[VBA-W] Libérer automatiquement la mémoire du presse papier.


Sujet :

VBA Word

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Points : 50
    Points
    50
    Par défaut [VBA-W] Libérer automatiquement la mémoire du presse papier.
    Bonjour,

    Lors de mon code VBA sous Word, j'ouvre un fichier excel, copie une grande plage de données, la colle sous Word puis ferme le fichier excel.

    Alors il me demande si je veux libérer la mémoire :



    Cependant, je voudrais que lorsque je le ferme, il libère la mémoire automatiquement (click sur non).

    Mon script est le suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Sub rapport_esd()
    Excel.Workbooks.Open FileName:="C:\DATA\TDA\ESD_IHM_2005.xls", ReadOnly:=True
    Excel.Worksheets("rapport").Select
    Excel.Range("A2:L52").Select
    Excel.Selection.Copy
    Selection.PasteSpecial DataType:=wdPasteBitmap
    Excel.Workbooks("ESD_IHM_2005.xls").Close SaveChanges:=False
    End Sub
    Merci d'avance pr l'astuce !

  2. #2
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    VBA ne connait pas l'objet Clipboard
    Il faut déclarer une fonction de l'API

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Private Declare Function EmptyClipboard Lib "user32" () As Long
    et dans ton code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Selection.PasteSpecial DataType:=wdPasteBitmap
    EmptyClipboard 
    Excel.Workbooks("ESD_IHM_2005.xls").Close SaveChanges:=False

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Points : 50
    Points
    50
    Par défaut
    Merci pour ta réponse, mais ça me demande toujours si je veux libérer la mémoire...

    Voilà mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    Private Declare Function EmptyClipboard Lib "user32" () As Long
     
    Private Sub CommandButton1_Click()
    Application.ScreenUpdating = False
    sem = Semaine.Text
    an = Annee.Text
    an_court = Right(an, 2)
    dossier = Gun.Text
    fichier = "ESD_Week_" & sem & "_" & an_court & ".xls"
    On Error GoTo bug
    Excel.Workbooks.Open FileName:="O:\Atse\T3___com\T3\Measures\Tests-Reports\Tests\Verification_Hebdo\ESD\" & dossier & "\" & an & "\" & fichier, ReadOnly:=True
    'Excel.Worksheets("rapport").Select
    Excel.Range("A2:L52").Select
    Excel.Selection.Copy
    Selection.PasteSpecial DataType:=wdPasteBitmap, Placement:=wdInLine
    EmptyClipboard
    Excel.Workbooks(fichier).Close SaveChanges:=False
    GoTo fin
    bug:
    MsgBox ("Erreur d'ouverture du fichier")
    fin:
    Application.ScreenUpdating = True
    End Sub
     
    Private Sub UserForm_Initialize()
     MaDate = Date
     Semaine.Text = Format(MaDate, "ww", vbFriday) - 0
     Annee.Text = Format(MaDate, "yyyy")
    End Sub

  4. #4
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    Ne connais pas VBA, mais (mémoire uniquement de ce que j'(ai vu et lu sur ce forum) quelquechose comme Application.DisplayAlert = False...

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    60
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 60
    Points : 50
    Points
    50
    Par défaut
    Merci bien !!

    EN fait c'est Application.DisplayAlerts = wdNone
    et wdAll pour ré-activer

    merzi !

  6. #6
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    Application.DisplayAlerts = wdNone
    ou
    Application.DisplayAlerts = False
    C'est pareil

  7. #7
    Inactif  
    Avatar de jmfmarques
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    3 784
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 3 784
    Points : 4 674
    Points
    4 674
    Par défaut
    je vais essayer de mettre ce s en mémoire (faut que je trouve une case libre)

  8. #8
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Points : 15 546
    Points
    15 546
    Par défaut
    C'est bien, jemefe, tu progresses. Grâce à tes efforts tu pourras bientôt aider les autres...
    ..............................................

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Vider le presse papier en VBA
    Par knecmotet dans le forum Général VBA
    Réponses: 17
    Dernier message: 05/03/2022, 20h50
  2. Réponses: 12
    Dernier message: 10/06/2006, 19h07
  3. [VBA-E] Lancement automatique d'une macro (débutante)
    Par pom_poir dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 28/11/2005, 17h57
  4. [VBA] Vider le presse papier
    Par Kelyane dans le forum VBA Access
    Réponses: 7
    Dernier message: 07/10/2003, 12h05
  5. [VBA-E] Vider le presse-papier
    Par tinej dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/12/2002, 09h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo