Vos recrutements informatiques

700 000 développeurs, chefs de projets, ingénieurs, informaticiens...

Contactez notre équipe spécialiste en recrutement

FAQ ExcelConsultez toutes les FAQ

Nombre d'auteurs : 46, nombre de questions : 845, dernière mise à jour : 30 mars 2017 

 
OuvrirSommaireLes macros VBApiloter d'autres applications depuis Excel

Pour activer une bibliothèque (référence), déplacez vous dans l'éditeur de macros (ALT+F11):
Menu Outils
Références
Cochez la ligne qui correspond à l'application que vous souhaitez piloter.
Cliquez sur le bouton OK pour Valider.
Vous avez désormais accès aux méthodes et propriétés VBA de l'application spécifiée.


Quelques exemples de bibliothèques (en fonction des applications installées sur votre poste): Microsoft Word xx.x Object Library (xx.x dépend de la version installée sur le poste)
Microsoft ActiveX Data Object 2.x Library (modèle ADO)
Windows Media Player
Shockwave Flash
?etc?

Voici un exemple pour déclarer une variable qui utilise la bibliothèque Word:

Vba
Sélectionnez

Dim wordApp As Word.Application


Remarque: L'outil de saisie semi automatique (intellisense) permet d'afficher les méthodes et propriétés de la bibliothèque.

Vous n'avez pas besoin de réactiver la référence si vous utilisez le classeur sur un autre poste de travail. Quand plusieurs versions d'une librairie sont disponibles (exemple AD0 2.1, 2.5, 2.7 ...) et que vous devez utiliser le classeur sur plusieurs Postes possédant des configurations différentes, sélectionnez la version la plus ancienne commune pour assurer une compatibilité.


La configuration WindowsXP/Office97 peut provoquer des erreurs lors de la création d'objets. Le message qui s'affiche est: "Erreur d'exécution -2147417851 (80010105)".
Dans ce cas, une solution consiste à remplacer l'instance Early Binding:

Vba
Sélectionnez

   Dim wordApp As Word.Application
   Dim wordDoc As Word.Document
 
   Set wordApp = New Word.Application
   wordApp.Visible = True
   Set wordDoc = wordApp.Documents.Add


par une instance Late Binding:

Vba
Sélectionnez

   Dim wordApp As Object
   Dim wordDoc As Object
 
   Set wordApp = CreateObject("Word.Application")
   wordApp.Visible = True
   Set wordDoc = wordApp.Documents.Add 


Vous trouvez des informations complémentaires sur le site Microsoft


L'instance Late Binding permet principalement de gérer les problèmes de version lorque le fichier est utilisé sur des postes disposant de configurations différentes.



Remarque:
Il est possible d'ajouter une référence par macro:

Vba
Sélectionnez

'Ajoute la référence Outlook pour OfficeXP
Dim xRef As String
xRef = "C:\Program Files\Microsoft Office\Office10\MSOUTL.OLB"
ThisWorkbook.VBProject.References.AddFromFile xRef
Créé le 10 juin 2007  par SilkyRoad

L'archivage des visites depuis l'explorateur FireFox est nommé history.dat. Ce fichier est généralement dans le répertoire:
C:\Documents and Settings\nom_utilisateur\Application Data\Mozilla\Firefox\Profiles\11ndnaxb.default\history.dat

La procédure ci-dessous lit le contenu du fichier, extrait les url et les dates de dernière visite.

Vba
Sélectionnez

Sub ExtraireURL_History_FireFox()
    Dim CibleLigne As String
    Dim Fichier As String, Resultat As String
    Dim Valeur As Double
    Dim Place As Double, Fin As Double, Debut As Double
    Dim x As Double, y As Double
    Dim i As Integer
 
    Fichier = "C:\Documents and Settings\nom_utilisateur\...\Firefox\...\history.dat"
 
    'Lit le contenu du fichier
    Open Fichier For Input As #1
        Valeur = FileLen(Fichier)
        CibleLigne = Input(Valeur, 1)
    Close 1
 
    Debut = 1
 
    'Boucle sur les chaines commençant par http
    Do While InStr(Debut, CibleLigne, "http") <> 0
        Place = InStr(Debut, CibleLigne, "http")
        Fin = InStr(Place, CibleLigne, ")")
 
        Resultat = Replace(Replace(Mid(CibleLigne, Place, Fin - Place), _
            vbCrLf, ""), "\", "")
 
        If InStr(1, Resultat, "pagead2.googlesyndication.com") = 0 Then
            i = i + 1
            'place les Url dans la Feuille
            Worksheets("Feuil1").Cells(i, 1) = Resultat
 
            'Recherche les dates
            x = InStr(Fin, CibleLigne, "=")
            y = InStr(x, CibleLigne, ")")
 
            If IsNumeric(Mid(CibleLigne, x + 1, y - x - 1)) Then _
                Worksheets("Feuil1").Cells(i, 2) = _
                Timestamp_To_Date(Left(Mid(CibleLigne, x + 1, y - x - 1), 10), 1970)
        End If
 
    Debut = Fin
    Loop
 
    Columns("A:B").AutoFit
End Sub
 
 
 
'Transforme Le TimeStamp UNIX en format Date local
'TimeStamp est un nombre de secondes écoulées depuis le 1er janvier 1970 (standard).
Function Timestamp_To_Date(TimeStamp As Double, Annee As Double) As Date
    Dim DebutAnnee As Date
 
    DebutAnnee = CDate("01/01/" + Str(Annee))
    Timestamp_To_Date = DateAdd("s", TimeStamp, DebutAnnee)
 
End Function
Créé le 5 décembre 2007  par SilkyRoad
Vba
Sélectionnez

'   sous VBE Menu Outils | Références
'   Cocher Acrobat Distiller
 
Option Explicit
Dim sNomPortReseau As String
 
Sub Tst_Adobe_PDF_03()
Dim sNomFichierPS As String
Dim sNomFichierPDF As String
Dim sNomFichierLOG As String
Dim PDFDist As PdfDistiller
Dim PrinterDefault As String
 
    '   Sur un PC "Personnel" : a priori choix libre du Nom
    '   et de l'emplacement du fichier de sortie, on est logué en 
    '   Administrateur sur son PC
    '
    '   Sur un PC "Entreprise" :
    '   Il faut être logué en Administrateur ou en
    '   Avoir les droits pour utiliser Distiller
    '   Les chemins PS PDF LOG devront être de la forme :
    '       "C:\Documents and Settings\UserName\.....\....."
 
    '   Si l'on a plusieurs imprimantes il faut :
    '       Sélectionner l'imprimante virtuelle Adobe PDF tout en conservant
    '           trace de l'imprimante utilisée par défaut
    '   Le  de port réseau NeXY varie suivant le PC sur lequel la macro tourne
 
    PrinterDefault = Application.ActivePrinter
    If Imprimante_AdobePDF Then
        Application.ActivePrinter = sNomPortReseau
    Else
        MsgBox "Pas d'imprimante Adobe PDF sur NeXY ", vbOKOnly+vbCritical, "Achtung"
        Exit Sub
    End If
 
    ' Ici le cas d'un PC "Personnel"
    sNomFichierPS = ThisWorkbook.Path & "\" & "Essai_AdobbePDF.ps"
    sNomFichierPDF = ThisWorkbook.Path & "\" & "Essai_AdobbePDF.pdf"
    sNomFichierLOG = ThisWorkbook.Path & "\" & "Essai_AdobbePDF.log"
 
    '   Impression d'une zone nommée
    ActiveSheet.Range("Zone").PrintOut Copies:=1, Preview:=False, _
                                       ActivePrinter:=sNomPortReseau , PrintToFile:=True, _
                                       Collate:=True, PrToFilename:=sNomFichierPS
 
    Set PDFDist = New PdfDistiller
    PDFDist.FileToPDF sNomFichierPS, sNomFichierPDF, ""
    Set PDFDist = Nothing
 
    Kill sNomFichierPS
    Kill sNomFichierLOG
 
    Application.ActivePrinter = PrinterDefault
End Sub
 
Private Function Imprimante_AdobePDF() As Boolean
Dim i As Long
    ' 11 imprimantes réseau
    Imprimante_AdobePDF = False
    For i = 0 To 10
        If i < 10 Then
            sNomPortReseau = "Adobe PDF sur Ne0" & i & ":"
        Else
            sNomPortReseau = "Adobe PDF sur Ne" & i & ":"
        End If
        On Error Resume Next
        Application.ActivePrinter = sNomPortReseau
        If ActivePrinter = sNomPortReseau Then
            Imprimante_AdobePDF = True
            Exit For
        End If
    Next i
End Function




Dans une configuration d'Entreprise avec de multiples utilisateurs et les droits attenants, il peut être nécessaire de connaitre son nom de login (qui n'a rien à voir avec Application.UserName de VBA ).

Vba
Sélectionnez

'...
Dim sUserName As String
    sUserName = Environ("USERNAME")
'...




Ou si l'on préfère connaître le chemin "C:\Documents and Settings\UserName" :

Vba
Sélectionnez

'...
Dim sUserProfile As String
    sUserProfile = Environ("USERPROFILE")
'...




Dans ce cas, l'exemple ci-dessus deviendra :

Vba
Sélectionnez

Option Explicit
 
Dim sNomPortReseau As String
 
Sub Tst_Adobe_PDF()
Dim sNomFichierPS As String
Dim sNomFichierPDF As String
Dim sNomFichierLOG As String
Dim PDFDist As PdfDistiller
Dim PrinterDefault As String
Dim sUserProfile As String
 
    sUserProfile = Environ("USERPROFILE")
 
    PrinterDefault = Application.ActivePrinter
    If Imprimante_AdobePDF Then
        Application.ActivePrinter = sNomPortReseau
    Else
        MsgBox "Pas d'imprimante Adobe PDF sur NeXY ", vbOKOnly+vbCritical, "Achtung"
        Exit Sub
    End If
 
    ' Ici le cas d'un PC "Entreprise"
    sNomFichierPS = sUserProfile & "\" & "Essai_AdobbePDF.ps"
    sNomFichierPDF = sUserProfile & "\" & "Essai_AdobbePDF.pdf"
    sNomFichierLOG = sUserProfile & "\" & "Essai_AdobbePDF.log"
 
    ActiveSheet.Range("Zone").PrintOut Copies:=1, Preview:=False, _
                                       ActivePrinter:=sNomPortReseau , PrintToFile:=True, _
                                       Collate:=True, PrToFilename:=sNomFichierPS
 
    Set PDFDist = New PdfDistiller
    PDFDist.FileToPDF sNomFichierPS, sNomFichierPDF, ""
    Set PDFDist = Nothing
 
    Kill sNomFichierPS
    Kill sNomFichierLOG
 
    Application.ActivePrinter = PrinterDefault
End Sub
 
Private Function Imprimante_AdobePDF() As Boolean
Dim i As Long
    ' 11 imprimantes réseau
    Imprimante_AdobePDF = False
    For i = 0 To 10
        If i < 10 Then
            sNomPortReseau = "Adobe PDF sur Ne0" & i & ":"
        Else
            sNomPortReseau = "Adobe PDF sur Ne" & i & ":"
        End If
        On Error Resume Next
        Application.ActivePrinter = sNomPortReseau
        If ActivePrinter = sNomPortReseau Then
            Imprimante_AdobePDF = True
            Exit For
        End If
    Next i
End Function




Impression de certaines Feuilles d'un classeur via un tableau dans un seul Pdf résultant :

Vba
Sélectionnez

Option Explicit
Dim sNomPortReseau As String
 
Sub Tst4()
Dim sNomFichierPS As String
Dim sNomFichierPDF As String
Dim sNomFichierLog As String
Dim PDFDist As PdfDistiller, PrinterDefault As String
Dim i As Long, Cpt As Long
Dim Ar() As String
 
    sNomFichierPS = ThisWorkbook.Path & "\" & "Tableau.ps"
    sNomFichierPDF = ThisWorkbook.Path & "\" & "Tableau.pdf"
    sNomFichierLog = ThisWorkbook.Path & "\" & "Tableau.log"
 
    Cpt = 0
    For i = 1 To ThisWorkbook.Sheets.Count
        If Left(Sheets(i).Name, 2) = "RF" Or Left(Sheets(i).Name, 2) = "RC" Then
            ReDim Preserve Ar(Cpt)
            Ar(Cpt) = Sheets(i).Name
            Cpt = Cpt + 1
        End If
    Next i
    If Cpt = 0 Then Exit Sub
 
    PrinterDefault = Application.ActivePrinter
    If Imprimante_AdobePDF Then
        Application.ActivePrinter = sNomPortReseau
    Else
        MsgBox "Pas d'imprimante Adobe PDF sur NeXY ", vbOKOnly + vbCritical, "Achtung"
        Exit Sub
    End If
 
    Application.ScreenUpdating = False
    Sheets(Ar).PrintOut copies:=1, Preview:=False, _
                        ActivePrinter:=sNomPortReseau, PrintToFile:=True, _
                        PrToFileName:=sNomFichierPS
 
    Set PDFDist = New PdfDistiller
    PDFDist.FileToPDF sNomFichierPS, sNomFichierPDF, ""
    Set PDFDist = Nothing
 
    Kill sNomFichierPS
    Kill sNomFichierLog
 
    Application.ScreenUpdating = True
    Application.ActivePrinter = PrinterDefault
    Sheets("Feuil1").Select
End Sub
 
Private Function Imprimante_AdobePDF() As Boolean
Dim i As Long
    ' 11 imprimantes réseau
    Imprimante_AdobePDF = False
    For i = 0 To 10
        If i < 10 Then
            sNomPortReseau = "Adobe PDF sur Ne0" & i & ":"
        Else
            sNomPortReseau = "Adobe PDF sur Ne" & i & ":"
        End If
        On Error Resume Next
        Application.ActivePrinter = sNomPortReseau
        If ActivePrinter = sNomPortReseau Then
            Imprimante_AdobePDF = True
            Exit For
        End If
    Next i
End Function




En Late Binding (sans référence à cocher) :

Vba
Sélectionnez

Option Explicit
 
Dim sNomPortReseau As String
 
Sub Tst_Adobe_PDF()
Dim sNomFichierPS As String
Dim sNomFichierPDF As String
Dim sNomFichierLOG As String
Dim PDFDist As Object
Dim PrinterDefault As String
Dim sUserProfile As String
 
    sUserProfile = Environ("USERPROFILE")
 
    PrinterDefault = Application.ActivePrinter
    If Imprimante_AdobePDF Then
        Application.ActivePrinter = sNomPortReseau
    Else
        MsgBox "Pas d'imprimante Adobe PDF sur NeXY ", vbOKOnly + vbCritical, "Achtung"
        Exit Sub
    End If
 
    sNomFichierPS = sUserProfile & "\" & "LateBinding_AdobePDF.ps"
    sNomFichierPDF = sUserProfile & "\" & "LateBinding_AdobePDF.pdf"
    sNomFichierLOG = sUserProfile & "\" & "LateBinding_AdobePDF.log"
 
    ActiveSheet.Range("Zone").PrintOut Copies:=1, Preview:=False, _
                                       ActivePrinter:=sNomPortReseau, PrintToFile:=True, _
                                       Collate:=True, PrToFilename:=sNomFichierPS
 
    Set PDFDist = CreateObject("PdfDistiller.PdfDistiller")
    PDFDist.FileToPDF sNomFichierPS, sNomFichierPDF, ""
    Set PDFDist = Nothing
 
    Kill sNomFichierPS
    Kill sNomFichierLOG
 
    Application.ActivePrinter = PrinterDefault
End Sub
 
Private Function Imprimante_AdobePDF() As Boolean
Dim i As Long
    Imprimante_AdobePDF = False
    For i = 0 To 10
        If i < 10 Then
            sNomPortReseau = "Adobe PDF sur Ne0" & i & ":"
        Else
            sNomPortReseau = "Adobe PDF sur Ne" & i & ":"
        End If
        On Error Resume Next
        Application.ActivePrinter = sNomPortReseau
        If ActivePrinter = sNomPortReseau Then
            Imprimante_AdobePDF = True
            Exit For
        End If
    Next i
End Function
Mis à jour le 20 septembre 2008  par Kiki29

Cet exemple ferme tous les fichiers ouverts par le bloc notes ('notepad.exe').

Vba
Sélectionnez

Sub FermerUneApplication()
    'Nécessite d'activer la référence "Microsoft WMI Scripting Library"
    Dim objProcess As WbemScripting.SWbemObject
    Dim colProcessList As WbemScripting.SWbemObjectSet
    Dim objWMIService As WbemScripting.SWbemServices
    Dim strComputer As String
 
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colProcessList = objWMIService.ExecQuery _
        ("Select * from Win32_Process Where Name = 'notepad.exe'")
 
    For Each objProcess In colProcessList
        objProcess.Terminate
    Next
End Sub
Créé le 5 décembre 2007  par SilkyRoad

Cet exemple vérifie si la calculatrice est déjà ouverte, l'affiche au premier plan et sinon déclenche l'ouverture de l'application.
La procédure ne doit pas être déclenchée depuis l'éditeur de macros.

Vba
Sélectionnez

Option Explicit
 
Private Declare Function BringWindowToTop Lib "user32" _
    (ByVal Hwnd As Long) As Long
 
Private Declare Function FindWindow Lib "user32" Alias _
    "FindWindowA" (ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
 
Private Declare Function ShowWindow Lib "user32" _
    (ByVal Hwnd As Long, ByVal nCmdShow As Long) As Long
 
 
'Remarque importante:
'La procédure ne doit pas être déclenchée depuis l'éditeur de macros /!\
'
Sub ApplicationPremierPlan()
    Dim Hwnd As Long
 
    'Récupère le Handle d'une fenêtre (la calculatrice dans cet exemple).
    'Le Handle est un nombre entier unique généré par Windows afin d'identifier les fenêtres.
    '"Calculatrice" correspond au titre de la fenêtre.
    Hwnd = FindWindow(vbNullString, "Calculatrice")
 
    'Si la calculatrice est déjà ouverte
    If Hwnd > 0 Then
        'Ramène la calculatrice au premier plan
        BringWindowToTop Hwnd
        'Affiche en mode "Normal"
        ShowWindow Hwnd, 1
        Else
        'Sinon, ouvre la calculatrice
        Shell "C:\WINDOWS\system32\calc.exe", vbNormalFocus
    End If
End Sub
Créé le 19 février 2008  par SilkyRoad

Il est possible de piloter l'application Open Office par VBA, grâce au pont (bridge) UNO-Automation.

Vous allez tout d'abord créer une référence à l'objet "Gestionnaire de Service" d'OOo:

Vba
Sélectionnez

Dim oServ As Object
Set oServ = CreateObject("com.sun.star.ServiceManager")



Et ensuite vous allez utiliser cette référence pour manipuler l'API d'OpenOffice.

Vba
Sélectionnez

Dim Desktop As Object, Document As Object
Dim args()
 
Set Desktop = oServ.createInstance("com.sun.star.frame.Desktop")
'Création d'un nouveau document Writer
Set Document = Desktop.loadComponentFromURL("private:factory/swriter", "_blank", 0, args)




Consultez le tutoriel.

Créé le 19 février 2008  par SilkyRoad

Vous pouvez utiliser l'API sndPlaySound32 :

Vba
Sélectionnez

Private Const SND_FILENAME = &H20000
Private Const SND_SYNC = &H0
Private Const SND_ASYNC = &H1
 
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
    (ByVal lpszName As String, ByVal hModule As Long, _
    ByVal dwFlags As Long) As Long
 
 
Sub JouerMusique()
    PlaySound "C:\WINDOWS\system32\BuzzingBee.wav", ByVal SND_SYNC, SND_FILENAME Or SND_ASYNC
End Sub
 
 
Sub StopMusique()
    PlaySound SND_SYNC, ByVal SND_SYNC, SND_FILENAME Or SND_ASYNC
End Sub




Il est également possible d'utiliser la bibliothèque Windows Media Player.


ou l'interface multimédia MCI : Créer un lecteur de CD audio dans Excel.

Créé le 20 septembre 2008  par SilkyRoad

Utilisez la macro suivante pour compresser un classeur au format .rar.

Vba
Sélectionnez

Option Explicit
 
Private 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 Lancer()
    'creer un fichier rar
    Dim Chemin As String
    Dim Param As String
    Dim Action As String
 
    Chemin = "C:\Program Files\WinRAR\WinRAR.exe"
    Param = "a -ep1 -r0 -iext -- C:\classueur.rar C:\classeur.xls"
    Action = "Ouvrir"
 
    Call ShellExecute(0, Action, Chemin, Param, vbNullString, 1)
End Sub




Un deuxième exemple qui archive le classeur actif sur le bureau :

Vba
Sélectionnez

'---------------------------------------------------------------------------------------
' Module      : modWinRar
' Auteur      : fred65200 - Frédéric CHAPIN - 
'http://www.developpez.net/forums/f542/hardware-systemes-logiciels/microsoft-office/excel/
' Date        : 25/02/2009
' Description : Archiver le classeur actif en sur le bureau
'               Copie du classeur
'               Archivage et copie dans la corbeille
'---------------------------------------------------------------------------------------
' déclaration Api
'Chemin du Bureau
Declare Function SHGetPathFromIDList Lib "shell32.dll" _
    Alias "SHGetPathFromIDListA" ( _
    ByVal pidl As Long, _
    ByVal pszPath As String) As Long
 
Declare Function SHGetSpecialFolderLocation Lib "shell32.dll" ( _
    ByVal hwndOwner As Long, _
    ByVal nFolder As Long, _
    pidl As ITEMIDLIST) As Long
 
Type SHITEMID
    cb As Long
    abID As Byte
End Type
 
Type ITEMIDLIST
    mkid As SHITEMID
End Type
'---------------------------------------------------------------------------------------
Sub TestArchivage()
     Archiver "rar"
'    Archiver "zip"
End Sub
'---------------------------------------------------------------------------------------
Sub Archiver(FormatArchive As String)
'Liste des commandes et des paramètres en bas du Module.
 
Dim FichierTemp As String, Archive As String
Dim ShellStr As String, NomOri  As String
Dim Ext As String, NomFichier As String
Dim NomFichierSansExt As String, Parametres As String
Dim RepBureau As String
Dim AWbk As Workbook
 
Const RepRar As String = "C:\Program Files\WinRAR\"
 
Set AWbk = ActiveWorkbook
 
    NomOri = AWbk.FullName
    NomFichier = AWbk.Name
    NomFichierSansExt = SansExtension(AWbk.Name)
    Ext = Extension(NomOri)
    RepBureau = Cherche_Chemin(&H10) & Application.PathSeparator
    'Liste des commandes et paramètres en bas du module
    Parametres = "winrar a -af" & FormatArchive & " -ag{-fred65200}-NN -ep1 -dr"
    'Fichier archive sur le Bureau
    FichierTemp = IIf(RepBureau & NomFichier = NomOri, _
        RepBureau & NomFichierSansExt & "1" & Ext, _
        RepBureau & NomFichier)
    Archive = SansExtension(FichierTemp) & "." & FormatArchive
 
    ShellStr = RepRar & Parametres & " """ & Archive & """ """ & FichierTemp & """"
 
    'Enregistrement d'une copie
    AWbk.SaveCopyAs FichierTemp
 
    'Archivage
    Shell ShellStr
 
    MsgBox "Archivage effectué."
End Sub
'renvoi le chemin d'un des dossier spéciaux de Windows
Function Cherche_Chemin(Param As Long) As String
Dim RetVal As Long
Dim Path As String
Dim IDL As ITEMIDLIST
 
RetVal = SHGetSpecialFolderLocation(0, Param, IDL) ' appel de la fonction api
If RetVal = NOERROR Then
    Path = Space(512) ' taille du tampon
    RetVal = SHGetPathFromIDList(ByVal IDL.mkid.cb, ByVal Path)
    Cherche_Chemin = Left(Path, InStr(Path, Chr(0)) - 1) ' extraction du chemin
Else
    Cherche_Chemin = ""
End If
End Function
 
'renvoi l'extension d'un fichier
Function Extension(Fichier As String) As String
    Extension = Mid(Fichier, InStrRev(Fichier, "."))
End Function
 
'Renvoi le non du fichier sans sont extension
Function SansExtension(Fichier As String) As String
    SansExtension = Left(Fichier, InStrRev(Fichier, ".") - 1)
End Function
'---------------------------------------------------------------------------------------
'LISTE DES COMMANDES
'a              --> Ajouter les fichiers à une archive
'c              --> Ajouter un commentaire d'archive
'ch             --> Modifier les paramètres de l'archive
'cv             --> Convertir les archives
'cw             --> Ecrire un commentaire d'archive dans le fichier
'd              --> Supprimer les fichiers d'une archive
'e              --> Extraire des fichiers d'une archive, en ignorant leurs chemins
'f              --> Actualiser les fichiers d'une archive
'i              --> Rechercher une chaîne dans les archives
'k              --> Verrouiller une archive
'm              --> Déplacer des fichiers et des dossiers vers une archive
'r              --> Réparer une archive endommagée
'rc             --> Reconstruire les volumes manquants
'rn             --> Renommer les fichiers archivés
'rr[N]          --> Ajouter des données à un enregistrement de restauration
'rv[N]          --> Créer des volumes de restauration
's[name]        --> Convertir une archive en archive auto-extractible
's-             --> Supprimer le module SFX
't              --> Tester des fichiers d'archive
'Menu "Outils"  --> Mettre à jour des fichiers dans une archive
'x              --> Extraire des fichiers d'une archive, en tenant compte de leurs chemins complets
 
'LISTE DES PARAMÈTRES
'-dr                        --> -Déplacer les fichiers dans la corbeille
'-ds                        --> -Ne trie pas les fichiers archivés
'-dw                        --> -Supprimer les fichiers définitivement après archivage
'-ed                        --> -N'ajoute pas les dossiers vides
'-en                        --> -N'ajoute pas à la fin du bloc "fin de l'archive"
'-ep                        --> -Exclut les chemins des noms
'-ep1                       --> -Exclut le dossier de base des noms
'-ep2                       --> -Inclut le chemin complet
'-ep3                       --> -Ajoute au chemin complet la lettre de l'unité
'-e[+]<attr>                --> -Exclut ou inclut les fichiers différents du masque d'attributs
'-f                         --> -Actualise les fichiers
'-hp[mot_de_passe]          --> -Crypte les données et les en-têtes du fichier
'-iadm                      --> -demander des droits d'administration pour un archive SFX
'-ibck                      --> -Lance WinRAR en arrière-plan
'-ieml[.][adr]              --> -Envoie l'archive par e-mail
'-iicon<nom>                --> -specifie l'icône SFX
'-iimg<nom>                 --> -specifie le logo SFX
'-ilog[nom]                 --> -Place les erreurs dans un fichier journal ".log"
'-inul                      --> -Désactive les messages d'erreur
'-ioff                      --> -Arrête le PC
'-k                         --> -verrouiller l'archive
'-kb                        --> -Conserve les fichiers endommagés extraits
'-m<n>                      --> -Définit la méthode de compression
'-mc<par>                   --> -Définit les paramètres avancés de compression
'-md<n>                     --> -Sélectionne la taille du dictionnaire
'-ms[list]                  --> -Spécifie les types de fichiers à stocker
'-mt<tâches>                --> -Spécifier le nombre de tâches
'-n<fichier>                --> -inclure uniquement le fichier spécifié
'-n@<fichier_liste>         --> -inclure les fichiers spécifiés dans la liste fichiers
'-oc                        --> -activer l'attribut NTFS "Compressé"
'-or                        --> -Renommer les fichiers automatiquement
'-os                        --> -Sauvegarde les flux NTFS
'-ow                        --> -Traite l'information sécurisée des fichiers
'-o[+|-]                    --> -Définir le mode de remplacement
'-p[mot_de_passe]           --> -Utilise un mot de passe
'-r                         --> -Sous-dossiers récurrents
'-r0                        --> -Sous-dossiers récurrents pour les noms avec joker uniquement
'-ri                        --> -Configurer la priorité et le temps d'attente
'-rr[N]                     --> -Ajouter des données à un enregistrement de restauration
'-rv[N]                     --> -Créer des volumes de restauration
'-s                         --> -Crée une archive "Solide"
'-s<N>                      --> -Crée des groupes "Solide" en utilisant un compteur de fichiers
'-sc<jeu_caractères>[objets]--> -définir le jeu de caractères
'-se                        --> -Crée des groupes "Solide" en utilisant l'extension
'-sfx[nom]                  --> -Crée une archive auto-extractible
'-sl<taille>                --> -Fichier de processus avec une taille inférieure à celle spécifiée
'-sm<taille>                --> -Fichier de processus avec une taille supérieure à celle spécifiée
'-sv                        --> -Crée des volumes "Solide" indépendants
'-sv-                       --> -Crée des volumes "Solide" dépendants
'-s-                        --> -Désactive l'archivage "Solide"
'-t                         --> -Teste les fichiers après l'archivage
'-ta<date>                  --> -Traite les fichiers modifiés après la date spécifiée
'-tb<date>                  --> -Traite les fichiers modifiés avant la date spécifiée
'-tk                        --> -Conserve l'heure d'origine de l'archive
'-tl                        --> -Fixe l'heure de l'archive avec celle de son fichier le plus récent
'-tn<heure>                 --> -Traite les fichiers plus récents que l'heure spécifiée
'-to<heure>                 --> -Traite les fichiers plus anciens que l'heure spécifiée
'-ts<m,c,a>                 --> -Sauvegarde ou restaure l'heure fichier (modification, création, accès)
'-u                         --> -Mise à jour des fichiers
'-v<n>[k|b|f|m|M|g|G]       --> -Crée des volumes
'-vd                        --> -Efface le contenu du support avant de créer un volume
'-ver[n]                    --> -Contrôle la version du fichier
'-vn                        --> -Utilise l'ancien style de nom de volume
'-vp                        --> -Pause avant chaque volume
'-x<fichier>                --> -Exclut le (les) fichier(s) spécifié(s)
'-x@<fichier_liste>         --> -Exclut des fichiers en utilisant la liste de fichiers spécifiée
'-y                         --> -Considère toutes les réponses aux questions comme "Oui"
'-z<file>                   --> -Lit un commentaire d'archive à partir d'un fichier
'--                         --> -Arrête l'analyse des paramètres
Mis à jour le 22 mars 2009  par Delphidelphi, Fred65200
  

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2009 Developpez Developpez LLC. Tous 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'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.