FAQ Excel

FAQ ExcelConsultez toutes les FAQ
Nombre d'auteurs : 46, nombre de questions : 845, dernière mise à jour : 30 mars 2022
Sommaire→Les macros VBA→piloter d'autres applications depuis Excel- Comment activer une référence pour piloter une autre application ?
- Comment extraire l'historique des sites visités par l'explorateur FireFox ?
- Comment créer un fichier PDF en pilotant Acrobat Distiller ?
- Comment fermer une application ?
- Comment ramener une application déjà ouverte au premier plan ?
- Comment piloter OpenOffice depuis Excel ?
- Comment jouer un fichier audio ou musical depuis Excel ?
- Comment créer un fichier rar par macro ?
27.3.1. Piloter Access
(10)
27.3.2. Piloter Word
(7)
27.3.3. Piloter PowerPoint
(6)
27.3.4. Les messageries
(15)
27.3.5. Les pages html et Internet
(9)
27.3.6. Piloter Publisher
(1)
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 :
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 :
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 :
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 :
'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
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.
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' 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 N° 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 FunctionDans 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 ).
'...
Dim sUserName As String
sUserName = Environ("USERNAME")
'...Ou si l'on préfère connaître le chemin "C:\Documents and Settings\UserName" :
'...
Dim sUserProfile As String
sUserProfile = Environ("USERPROFILE")
'...Dans ce cas, l'exemple ci-dessus deviendra :
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 FunctionImpression de certaines Feuilles d'un classeur via un tableau dans un seul Pdf résultant :
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 FunctionEn Late Binding (sans référence à cocher) :
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 FunctionCet exemple ferme tous les fichiers ouverts par le bloc notes ('notepad.exe').
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
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.
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 SubIl 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 :
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.
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)Vous pouvez utiliser l'API sndPlaySound32 :
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 SubIl 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.
Utilisez la macro suivante pour compresser un classeur au format .rar.
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 SubUn deuxième exemple qui archive le classeur actif sur le bureau :
'---------------------------------------------------------------------------------------
' Module : modWinRar
' Auteur : fred65200 - Frédéric CHAPIN -
'https://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


