
| auteur : SilkyRoad |
Utilisez la méthode GetOpenFilename pour visualiser l'arborescence des fichiers sur le PC, et renvoyer le nom sélectionné.
GetOpenFilename affiche la boîte de dialogue "Ouvrir" mais ne sert qu'à récupérer le nom du fichier choisi.
Vba |
Sub ChoixFichier ()
Dim Fichier As Variant
Fichier = Application. GetOpenFilename (" Tous les fichiers (*.*),*.* " )
If Fichier = False Then Exit Sub
MsgBox Fichier
End Sub
|
Dans ce premier exemple,
Application.GetOpenFilename("Tous les fichiers (*.*),*.*")
permet de sélectionner tout type de fichier présent sur le PC.
Pour restreindre le choix de l'utilisateur entre une ou plusieurs extensions particulières, utilisez:
Vba |
Fichier = Application. GetOpenFilename _
(" Fichiers Images (*.jpg), *.jpg " & _
" ,Fichiers Images (*.gif), *.gif " )
|
Pour visualiser uniquement deux types de fichiers en même temps, utilisez:
Vba |
Fichier = Application. GetOpenFilename _
(" Fichiers Images (*.jpg; *.gif),*.jpg;*.gif " )
|
Pour gérer la multi-sélection de fichiers depuis la boîte de dialogue "Ouvrir", utilisez:
Vba |
Sub ChoixMultiFichiers ()
Dim Fichiers As Variant
Dim i As Integer
Fichiers = Application. GetOpenFilename (" Fichiers Excel (*.xls), *.xls " , , , , True )
If IsArray (Fichiers) Then
For i = 1 To UBound (Fichiers)
MsgBox Fichiers (i)
Next
End If
End Sub
|
Appuyez sur la touche clavier Ctrl en même temps que vous choisissez les fichiers, afin de créer une multi-sélection.
Vous remarquerez que dans cet exemple, la variable "Fichiers" est un tableau de type Variant.
|
| auteur : SilkyRoad | Vba |
Sub ChoixRepertoire ()
Dim objShell As Object, objFolder As Object, oFolderItem As Object
Dim Chemin As String
Set objShell = CreateObject (" Shell.Application " )
Set objFolder = objShell. BrowseForFolder (& H0& , " Choisir un répertoire " , & H1& )
On Error Resume Next
Set oFolderItem = objFolder. Items . Item
Chemin = oFolderItem. Path
MsgBox Chemin
End Sub
|
|
| auteurs : Zazaraignée, SilkyRoad |
Depuis la version 2002, Excel met à disposition une nouvelle fenêtre multifonctions: FileDialog. En fonction de l'argument
msoFileDialogType, vous pouvez sélectionner, ouvrir, enregistrer des fichiers ou sélectionner des répertoires sur votre poste:
msoFileDialogFilePicker: Sélection de fichier.
msoFileDialogFolderPicker: Sélection de dossier.
msoFileDialogOpen: Ouverture de fichier.
msoFileDialogSaveAs: Enregistrement de fichier.
Un exemple pour sélectionner un ou plusieurs fichiers:
Vba |
Sub Utilisation_FileDialog_SelectionFichier ()
Dim x As Long
With Application. FileDialog (msoFileDialogFilePicker)
. Title = " Le tite de la fenêtre: "
. AllowMultiSelect = True
. Filters . Clear
. Filters . Add " Classeurs Excel " , " *.xls; *.xlsx; *.xlsm "
. Filters . Add " Documents Word " , " *.doc; *.docx; *.docm " , 1
. FilterIndex = 2
. InitialView = msoFileDialogViewProperties
. Show
For x = 1 To . SelectedItems . Count
MsgBox . SelectedItems (x)
Next x
End With
End Sub
|
Pour sélectionner un dossier:
Vba |
Sub Utilisation_FileDialog_SelectionDossier ()
Dim x As Long
With Application. FileDialog (msoFileDialogFolderPicker)
. Title = " Le tite de la fenêtre: "
. Show
If . SelectedItems . Count > 0 Then
MsgBox . SelectedItems (1 )
End If
End With
End Sub
|
Pour afficher la boîte de dialogue "Sauvegarder":
Vba |
Sub Utilisation_FileDialog_Sauvegarde ()
Dim objSaveBox As FileDialog
Set objSaveBox = Application. FileDialog (msoFileDialogSaveAs)
With objSaveBox
. InitialFileName = " Nom fichier.xls "
. FilterIndex = 4
. Show
. Execute
End With
End Sub
|
Pour afficher la boîte de dialogue "Ouvrir":
Vba |
Sub Utilisation_FileDialog_Ouvrir ()
Dim objOuvrir As FileDialog
Dim objFichiers As FileDialogSelectedItems
Dim x As Long
Dim Wb As Workbook
With Application. FileDialog (msoFileDialogOpen)
. InitialFileName = " "
. Filters . Clear
. Filters . Add " Classeurs Excel " , " *.xls; *.xlsx; *.xlsm "
. InitialView = msoFileDialogViewDetails
. Show
End With
Set objFichiers = Application. FileDialog (msoFileDialogOpen). SelectedItems
If objFichiers. Count = 0 Then Exit Sub
Application. ScreenUpdating = False
For x = 1 To objFichiers. Count
Set Wb = Workbooks. Open (objFichiers (x))
Wb. Close False
Next
Application. ScreenUpdating = True
End Sub
|
|
| auteur : Bidou |
Principalement FindFile ouvre le fichier alors que GetOpenFilename renvoie le nom du fichier sélectionné.
Cependant GetOpenFilename permet d'utiliser un filtrage ce que ne permet pas la méthode FindFile.
Par exemple:
Vba |
NomFichier = Application. GetOpenFilename (" Classeurs Excel(*.xls),*.xls, Macros complémentaires (*.xla),*.xla " )
|
Il y a une plus grande sécurité à utiliser la méthode GetOpenFilename.
|
| auteur : SilkyRoad |
La fonction MsgBox permet d'afficher un message à l'écran. La boîte de dialogue reste à l'écran et bloque la procédure en
cours, tant que l'utilisateur n'a pas cliqué sur un bouton.
La syntaxe et les arguments sont:
MsgBox(prompt[, buttons]
[, title] [, helpfile, context])
prompt
Indique le message à afficher.
buttons
Définit le type et l'ordre des boutons à afficher, le style d'icône.
Vba |
MsgBox " Bonjour! " , vbExclamation
|
Un ensemble de constantes est disponible pour gérer les différents boutons et icônes:
Constante |
Valeur |
Description |
vbOKOnly |
0 |
Affiche le bouton OK uniquement |
vbOKCancel |
1 |
Affiche les boutons OK et Annuler |
vbAbortRetryIgnore |
2 |
Affiche le bouton Abandonner, Réessayer et Ignorer |
vbYesNoCancel |
3 |
Affiche les boutons Oui, Non et Annuler |
vbYesNo |
4 |
Affiche les boutons Oui et Non |
vbRetryCancel |
5 |
Affiche les boutons Réessayer et Annuler |
vbCritical |
16 |
Affiche l'icône Message critique |
vbQuestion |
32 |
Affiche l'icône Requête d'avertissement |
vbExclamation |
48 |
Affiche l'icône Message d'avertissement |
vbInformation |
64 |
Affiche l'icône Message d'information |
vbDefaultButton1 |
0 |
Le premier bouton est le bouton par défaut |
vbDefaultButton2 |
256 |
Le deuxième bouton est le bouton par défaut |
vbDefaultButton3 |
512 |
Le troisième bouton est le bouton par défaut |
vbDefaultButton4 |
768 |
Le quatrième bouton est le bouton par défaut |
vbApplicationModal |
0 |
Boîte de dialogue modale |
vbSystemModal |
4096 |
Modal système |
vbMsgBoxHelpButton |
16384 |
Ajoute le bouton Aide à la zone de message |
VbMsgBoxSetForeground |
65536 |
Indique la fenêtre de zone de message comme fenêtre de premier plan |
vbMsgBoxRight |
524288 |
Le teste est aligné à droite |
vbMsgBoxRtlReading |
1048576 |
Indique que le texte doit apparaître de droite à gauche sur les systèmes hébraïques et arabes |
Lorsque vous cliquez sur les boutons, des valeurs sont renvoyées et peuvent être utilisées dans la suite de votre projet.
Un exemple qui pose une question à l'utilisateur. Celui ci doit répondre par oui ou par non:
Vba |
Dim Reponse As Long
Reponse = MsgBox (" Voulez vous continuer ? " , vbQuestion + vbYesNo )
If Reponse = vbYes Then
MsgBox " On continue ... " , vbExclamation
Else
MsgBox " Au revoir ... " , vbInformation
End If
|
Ci-dessous les valeurs renvoyées, en fonctions des types de boutons et du choix de l'utilisateur:
Constante |
Valeur |
Description |
vbOK |
1 |
OK |
vbCancel |
2 |
Annuler |
vbAbort |
3 |
Abandonner |
vbRetry |
4 |
Réessayer |
vbIgnore |
5 |
Ignorer |
vbYes |
6 |
Oui |
vbNo |
7 |
Non |
title
Indique un titre dans la boîte de dialogue.
Vba |
MsgBox " Bonjour " & Environ (" username " ), vbInformation , " Accueil "
|
helpfile
Définit le chemin d'accès complet à un fichier d'aide. Cet argument est associé avec l'argument context.
context
définit l'identificateur de rubrique du fichier d'aide qui a été indiqué dans l'argument helpfile.
Vba |
Dim Msg As String
Dim Cellule As Range
On Error Resume Next
Set Cellule = Cells (0 , 1 )
Msg = " Cliquez sur le bouton AIDE pour consulter la rubrique relative à cette erreur. "
MsgBox Msg, vbMsgBoxHelpButton, " Erreur " , Err . HelpFile , Err . HelpContext
|
Vous pouvez aussi spécifier des fichiers d'aide personnels. Pour plus d'infos,
consultez le tutoriel pour gérer les erreurs.
Il ne vous reste plus qu'à faire des essais et tester toutes les options disponibles dans l'application.
Quelques exemples supplémentaires.
Afficher le message sur plusieurs lignes:
Vba |
MsgBox " Bonjour " & Environ (" username " ) & _
vbCrLf & vbCrLf & _
" Nous sommes le " & Date , _
vbCritical , " Accueil "
|
Utilisation de l'énumération VbMsgBoxStyle:
Vba |
Dim Reponse As Long
Dim cstMsgBox As VbMsgBoxStyle
cstMsgBox = vbYesNo + vbDefaultButton2
Reponse = MsgBox (" Bonjour " , cstMsgBox)
If Reponse = vbYes Then MsgBox " Oui "
|
|
| auteur : SilkyRoad |
Un exemple de message qui s'affiche pendant 3 secondes:
Vba |
CreateObject (" Wscript.shell " ). Popup " Mon Texte " , 3 , " Le Titre "
|
|
| auteur : Arkham46 |
Cet outil permet de créer des MsgBox étendues affichant du texte formaté (RTF).
Elles sont auto-refermables et on peut également modifier le texte des boutons.
Suivez ce lien pour consulter le tutoriel. OFFICE : Fenêtres de message étendues.
|
| auteurs : SilkyRoad, Starec | Vba |
Sub UtilisezCompagnon_Personnalise ()
Dim i As Byte
With Assistant. NewBalloon
. Animation = msoAnimationEmptyTrash
. Button = msoButtonSetOK
. Heading = " Consultez les ressources DVP. "
. Text = " Sélectionnez un élément puis cliquez sur le bouton 'OK'. "
. CheckBoxes (1 ). Text = " Les sources Excel "
. CheckBoxes (2 ). Text = " Le forum Excel "
. CheckBoxes (3 ). Text = " La FAQ VBA "
. CheckBoxes (4 ). Text = " Les cours VBA "
. Icon = msoIconTip
. Show
For i = 1 To 4
If . CheckBoxes (i). Checked = True Then
Select Case i
Case 1
ThisWorkbook. FollowHyperlink " http://excel.developpez.com/sources/ "
Case 2
ThisWorkbook. FollowHyperlink " http://www.developpez.net/forums/forumdisplay.php?f=542 "
Case 3
ThisWorkbook. FollowHyperlink " http://vb.developpez.com/faqvba/ "
Case 4
ThisWorkbook. FollowHyperlink " http://vb.developpez.com/cours/ "
End Select
Exit For
End If
Next
End With
Assistant. Visible = False
End Sub
|
Nota:
L'assistant Office n'est pas disponible dans Excel 2007.
Le compagnon Office ne fonctionne pas sur les environnements Citrix pour cause d'incompatibilité.
|
| auteur : SilkyRoad | Vba |
Sub Utiliser_MSagent ()
Dim Chemin As String
Dim ArrayAttitude As Variant
Dim j As Integer
Dim Ag As AgentObjects. Agent
Dim Personnage As AgentObjects. IAgentCtlCharacter
ArrayAttitude = Array (" Alert " , " Announce " , " Blink " , " Confused " , " Congratulate " , " Congratulate_2 " , _
" Decline " , " DoMagic2 " , " DontRecognize " , " Explain " , " GestureDown " , " GestureLeft " , " GetAttention " , _
" GetAttentionReturn " , " Greet " , " Idle1_1 " , " Idle1_2 " , " LookDown " , " LookDownBlink " , _
" LookDownReturn " , " LookUp " , " MoveDown " , " Pleased " , " Process " , " Read " , " ReadContinued " , _
" ReadReturn " , " RestPose " , " Search " , " StartListening " , " StopListening " , " Suggest " , " Surprised " , _
" Wave " , " Write " , " WriteContinued " , " WriteReturn " )
Chemin = Environ (" windir " ) & " \msagent\chars\merlin.acs "
Set Ag = New AgentObjects. Agent
Ag. Connected = True
Ag. Characters . Load " Merlin " , Chemin
Ag. Characters (" Merlin " ). LanguageID = & H409
Set Personnage = Ag. Characters (" Merlin " )
With Personnage
. Show
. Width = 200
. Height = 200
. MoveTo 400 , 300
End With
On Error Resume Next
For j = 0 To UBound (ArrayAttitude)
Personnage. Speak ArrayAttitude (j)
Personnage. Play ArrayAttitude (j)
Application. Wait (TimeSerial (Hour (Now ()), Minute (Now ()), Second (Now ()) + 3 ))
Next j
On Error GoTo 0
Personnage. Speak " \Chr= " " Whisper " " \Au revoir! " & Environ (" username " )
Application. Wait (TimeSerial (Hour (Now ()), Minute (Now ()), Second (Now ()) + 3 ))
Set Personnage = Nothing
Set Ag = Nothing
End Sub
|
|
| auteur : SilkyRoad |
Utilisez la propriété Dialogs. La syntaxe est:
Application.Dialogs(Nom_Boite_De_Dialogue).Show
L'énumération spécifiée (XlBuiltInDialog) permet d'indiquer la boîte de dialogue à afficher.
Cet exemple affiche la fenêtre "Enregistrer sous".
Vba |
Application. Dialogs . Item (xlDialogSaveAs). Show
|
Faites une recherche sur le mot clé "Dialogs" dans l'aide Excel pour obtenir la liste des boîtes de dialogues disponibles,
ainsi que leurs arguments paramétrables par macro.
Cette adaptation du premier exemple permet de paramétrer un nom par défaut dans le champ "Nom de fichier"
et un mot de passe pour la lecture.
Vba |
Application. Dialogs . Item (xlDialogSaveAs). Show " NomClasseur.xls " , , " PassWord "
|
Un autre exemple qui affiche la boîte de dialogue "Copier une image" et qui montre comment en paramétrer les options:
Vba |
Application. Dialogs . Item (xlDialogCopyPicture). Show 1 , 2
|
Remarque:
La méthode FindControl permet aussi d'afficher les boîtes de dialogues intégrées. Exemple pour afficher
la fenêtre "Enregistrer sous":
Vba |
CommandBars. FindControl (ID:= 748 ). Execute
|
|
| auteur : SilkyRoad |
Cet exemple ne nécessite pas un comptage préalable du nombre d'itérations.
Lancez la procédure depuis la feuille de calcul pour visualiser le résultat.
Vba |
Sub ProgressionStatusbar ()
Dim i As Long
Dim InitSB As Boolean
Dim Indice As Integer
Dim Debut As Date
Debut = Now
InitSB = Application. DisplayStatusBar
Application. DisplayStatusBar = True
For i = 1 To 150000
If Debut < > Now Then
Indice = Indice + 1
Debut = Now
If Indice > 10 Then Indice = 1
End If
Application. StatusBar = Application. Rept (Chr (7 ), Indice)
Next
Application. StatusBar = False
Application. DisplayStatusBar = InitSB
End Sub
|
|
| auteur : SilkyRoad |
Il peut arriver que vous ayez le message d'erreur "La commande n'a pas pu être exécutée avec la plage spécifiée"
lorsque vous essayez d'afficher la grille de données (Menu Outils / Données / Formulaire).
La boîte de dialogue "Formulaire" permet de visualiser les enregistrements contenus dans la feuille. Les grilles de
données permettent d'ajouter, modifier, atteindre et supprimer des enregistrements.
Pour éviter le message d'erreur, privilégiez une structure classique pour votre base de données:
La première ligne sert à indiquer le nom des champs à partir de la première colonne.
N'utilisez pas de colonnes vides dans la base de données.
Evitez les lignes vides en tête de feuille.
Sélectionnez une cellule de la base de données avant le lancer le formulaire.
Un message d'erreur est renvoyé si ces règles ne sont pas respectées.
Par macro, la procédure renverra un message d'erreur 1004 "La méthode ShowDataForm de la classe Worksheet a échoué".
Vba |
Worksheets (" Feuil1 " ). ShowDataForm
MsgBox " Fermeture du formulaire "
|
Plus d'informations sur le site Microsoft.
Pour utiliser la grille de données depuis Excel 2007:
Cliquez sur le bouton Office.
Cliquez sur le bouton "Options d'Excel".
Sélectionnez le menu "Personnaliser".
Choisissez l'option "Commandes non présentes sur le ruban".
Sélectionnez la ligne "Formulaire".
Cliquez sur le bouton "Ajouter", puis sur le bouton OK pour valider.
Le formulaire est désormais disponible depuis la barre d'outils accès rapide.
|
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.
|