Accueil
Accueil Le Club Delphi Kylix C C++ Java J2EE DotNET & C# Visual Basic Access Pascal Dev Web PHP ASP XML UML SQLSGBD Windows Linux Autres
logo

precedent    sommaire    suivant   


Comment empêcher l'affichage systématique du volet Presse-papiers ?
auteur : SilkyRoad
Dans le volet Presse-papiers,
cliquez sur le bouton "Options".
Décochez l'option "Afficher le presse-papiers Office automatiquement".



Comment copier une feuille dans un nouveau classeur ?
auteur : SilkyRoad
Cet exemple copie la feuille nommée "Synthese" dans un nouveau classeur.

Vba

Workbooks("Classeur1.xls").Worksheets("Synthese").Copy

Comment fermer le mode couper/copier ?
auteur : SilkyRoad
Pour désactiver le mode couper/copier, utilisez:

Vba

Application.CutCopyMode = False



Cela a pour conséquence de griser le bouton Coller et d'empêcher le collage de données.



Comment vider le presse papier ?
auteur : SilkyRoad
Utilisez cette procédure pour vider le contenu du presse papier.

Vba

Sub ViderPressePapier()
'Nécéssite d'activer la référence "Microsoft Forms 2.0 Object Library."
Dim Cible As dataObject

Set Cible = New dataObject
Cible.setText ""
Cible.putInClipboard

Set Cible = Nothing
End Sub

Comment récupérer le contenu du presse papier dans une variable ?
auteur : SilkyRoad
Pour récupérer du texte contenu dans le presse papier, vous pouvez utiliser:

Vba

Sub recupererTextePressePapier()
'nécéssite d'activer la référence "Microsoft Forms 2.0 Object Library."
Dim Resultat As String

With New dataObject
    .GetFromClipboard
    Resultat = .GetText(1)
End With

MsgBox Resultat
End Sub

Pourquoi j'ai un message d'erreur en utilisant xlPasteColumnWidths avec Excel 2000 ?
auteur : SilkyRoad
Il s'agit d'un bug connu: La constante xlPasteColumnWidths peut renvoyer un message d'erreur dans certains cas.

Vba

'xlPasteColumnWidths= la largeur de colonne copiée est collée.
ActiveSheet.Range("A1").PasteSpecial Paste:=xlPasteColumnWidths, _ 
    Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False 


Pour y remédier, remplacez xlPasteColumnWidths par la valeur 8.
Par exemple:

Vba

ActiveSheet.Range("A1").PasteSpecial Paste:=8, _ 
    Operation:=xlPasteSpecialOperationNone, SkipBlanks:=False, Transpose:=False

Comment empêcher l'utilisation du Copier Coller dans un classeur ?
auteur : SilkyRoad
Placez ces procédures dans le module objet ThisWorkbook.
Bien entendu les macros doivent être activées pour que ça fonctionne.

Vba

Option Explicit

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    Application.CutCopyMode = False
End Sub


Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
    Application.CutCopyMode = False
End Sub

Comment réaliser une capture d'écran par macro?
auteur : SilkyRoad
Cet exemple permet de coller l'image d'un UserForm dans la feuille de calcul.

Vba

Option Explicit

Private Declare Sub keybd_event Lib "user32" ( _
    ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
    ByVal dwExtraInfo As Long)

Private Sub commandButton1_Click()
    keybd_event vbKeySnapshot, 1, 0&, 0&
    DoEvents
    
    Range("A1").Select
    ActiveSheet.Paste
End Sub

Comment récupérer l'image contenue dans le presse papier pour l'enregistrer sur le PC ?
auteur : SilkyRoad
Vba

Option Explicit

Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" _
    (ByVal hwnd As Long, ByVal lpOperation As String, _
    ByVal lpFile As String, ByVal lpParameters As String, _
    ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long


Sub Image_ClipBoard()
Dim x As Byte
Dim Sh As Shape
Dim monImage As String

'Compte le nombre d'objet initial dans la feuille
x = ActiveSheet.Shapes.Count

Application.ScreenUpdating = False
ActiveSheet.Range("A1").Select
'Colle le contenu du presse papier dans la feuille de calcul
ActiveSheet.Paste

'vérifie si le collage effectué correspond à une image
If x = ActiveSheet.Shapes.Count Then
    Application.ScreenUpdating = True
    MsgBox "Opération annulée"
    Exit Sub
    
    Else
    
    'Récupère la dernière forme de la feuille
    Set Sh = ActiveSheet.Shapes(ActiveSheet.Shapes.Count)
    'Définit le nom et le lieu de stockage de l'image
    monImage = "C:\monImage.jpg"
    
    'Colle l'image dans un graphique
    With ActiveSheet.ChartObjects.Add(0, 0, Sh.Width, Sh.Height).Chart
        .Paste
        'Sauvegarde l'image du graphique au format jpg
        .Export monImage, "JPG"
    End With
    
    'Supprime le graphique et la forme.
    With ActiveSheet
        .ChartObjects(ActiveSheet.ChartObjects.Count).Delete
        .Shapes(ActiveSheet.Shapes.Count).Delete
    End With
    
    Application.ScreenUpdating = True
    
    
    '-------------------------------------------------------------
    'Option pour les utilisateurs de Windows XP :
    'visualisation de l'image créée, avec l'apercu images_telecopies Windows
    'testé avec Excel2002 et WinXP
    
    ShellExecute 0, "open", "rundll32.exe", _
        "C:\WINDOWS\System32\shimgvw.dll,ImageView_Fullscreen " & monImage, 0, 1
End If

End Sub

precedent    sommaire    suivant   

Consultez les autres F.A.Q's


Les sources présentés sur cette pages sont libre de droits, et vous pouvez les utiliser à votre convenance. Par contre cette page de présentation de ces sources constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©2008  Developpez LLC. Tout droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérets. Cette page est déposée à la SACD.

Vos questions techniques : forum d'entraide Accueil - Publiez vos articles, tutoriels, cours et rejoignez-nous dans l'équipe de rédaction du club d'entraide des développeurs francophones. Nous contacter - Copyright 2000..2005 www.developpez.com