FAQ Visual Basic
FAQ Visual Basic Consultez toutes les FAQ
Nombre d'auteurs : 50, nombre de questions : 300, dernière mise à jour : 15 juin 2021
Voici une méthode dont le principe consiste à faire un copier-coller de la feuille Excel vers la MsFlexGrid. Vous devez ajouter la reference "Microsoft Excel x.0 Object Library" à votre projet.
Placez le code suivant dans un module standard. La procédure Excel2Flexgrid importe dans une MSFlexGrid le fichier dont le nom est passé en paramètre.
Public
Sub
Excel2Flexgrid
(
flexgrid As
MSFlexGrid, ByVal
fichier As
String
)
Dim
xlapp As
Excel.Application
Dim
classeur As
Excel.Workbook
, feuille As
Excel.Worksheet
, Plage As
Excel.Range
Set
xlapp =
New
Excel.Application
xlapp.DisplayAlerts
=
False
Set
classeur =
xlapp.Workbooks.Open
(
fichier)
Set
feuille =
xlapp.ActiveSheet
Set
Plage =
feuille.Range
(
"A1"
).CurrentRegion
With
flexgrid
.Cols
=
Plage.Columns.Count
.Rows
=
Plage.Rows.Count
.Col
=
0
.Row
=
0
.ColSel
=
.Cols
-
1
.RowSel
=
.Rows
-
1
Plage.Copy
.Clip
=
Replace
(
Clipboard.GetText
, vbCrLf
, vbCr
)
End
With
Set
Plage =
Nothing
Set
feuille =
Nothing
classeur.Close
False
Set
classeur =
Nothing
Set
xlapp =
Nothing
End
Sub
Ce code n'est à utiliser seulement si Outlook est le client de messagerie par défaut, sinon MAPI vous renvoie une erreur.
Cochez la référence à Outlook dans les références du projet. Posez un textbox nommé "résultat" sur une form et placez ce code dans le module de la form :
Private
Declare
Function
MAPIDetails Lib
"MAPI32.DLL"
Alias "BMAPIDetails"
_
(
ByVal
Session&
, ByVal
UIParam&
, Recipient As
MapiRecip, _
ByVal
Flags&
, ByVal
Reserved&
) As
Long
Private
Declare
Function
MAPIResolveName Lib
"MAPI32.DLL"
Alias "BMAPIResolveName"
_
(
ByVal
Session&
, ByVal
UIParam&
, ByVal
UserName$, _
ByVal
Flags&
, ByVal
Reserved&
, Recipient As
MapiRecip) As
Long
Private
Type
MapiRecip
Reserved As
Long
RecipClass As
Long
Name As
String
Address As
String
EIDSize As
Long
EntryID As
String
End
Type
Sub
listemail
(
)
Dim
X As
Long
, I As
Long
Dim
out As
Outlook.Application
Dim
a As
Object, mapi As
Object
Dim
ctrlists As
Integer
Dim
info As
MapiRecip
Set
out =
New
Outlook.Application
Set
mapi =
out.GetNameSpace
(
"MAPI"
)
For
ctrlists =
1
To
mapi.AddressLists.Count
Set
a =
mapi.AddressLists
(
ctrlists)
For
X =
1
To
a.AddressEntries.Count
I =
MAPIResolveName
(
0
, 0
, a.AddressEntries
(
X), 0
, 0
, info)
resultat.Text
=
resultat.Text
&
"Nom : "
&
info.Name
&
" "
&
" @ : "
&
_
Replace
(
info.Address
, "SMTP:"
, ""
) &
vbCrLf
'I = MAPIDetails(0, 0, info, 0, 0) 'pour editer les détails.
DoEvents
Next
DoEvents
Next
Set
a =
Nothing
Set
out =
Nothing
Set
mapi =
Nothing
End
Sub
La procédure listemail affiche les informations dans le textbox.
Ce code permet d'utiliser les états existants sous Access. Cochez les références à Access dans le projet Visual Basic et copiez le code approprié.
Ouverture de la base de données Access :
Dim
MaDbMat As
String
Dim
MesEtats As
Access.Application
MaDbMat =
App.Path
&
"\MaBase.mdb"
Set
MesEtats =
New
Access.Application
MesEtats.OpenCurrentDatabase
MaDbMat, False
Pour imprimer un état sans le visualiser :
MesEtats.DoCmd.OpenReport
"NomdeMonEtat"
, acViewNormal
Pour prévisualiser un état en mode plein écran :
MesEtats.Visible
=
True
MesEtats.DoCmd.OpenReport
"NomdeMonEtat"
, acViewPreview
MesEtats.DoCmd.Maximize
Pour le mode Design en plein écran :
MesEtats.Visible
=
True
Mesetats.DoCmd.OpenReport
"NomdeMonEtat"
, acViewDesign
MesEtats.DoCmd.Maximize
Vous devez ajouter la référence à Microsoft PowerPoint xx.x library à votre projet (Menu Projet >> Références...).
Private
Sub
Command1_Click
(
)
Dim
pPoint As
PowerPoint.Application
Dim
dPoint As
PowerPoint.Presentation
Set
pPoint =
CreateObject
(
"PowerPoint.Application"
)
pPoint.ShowWindowsInTaskbar
=
False
pPoint.Visible
=
True
Set
dPoint =
pPoint.Presentations.Open
(
"C:\Test.ppt"
)
dPoint.SaveAs
"C:\Test.html"
, ppSaveAsHTML
dPoint.Close
pPoint.Quit
Set
pPoint =
Nothing
Set
dPoint =
Nothing
End
Sub