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
Sommaire→Liaison Office→Divers OfficeVoici 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 SubCe 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 SubLa 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, FalsePour imprimer un état sans le visualiser :
MesEtats.DoCmd.OpenReport "NomdeMonEtat", acViewNormalPour prévisualiser un état en mode plein écran :
MesEtats.Visible = True
MesEtats.DoCmd.OpenReport "NomdeMonEtat", acViewPreview
MesEtats.DoCmd.MaximizePour le mode Design en plein écran :
MesEtats.Visible = True
Mesetats.DoCmd.OpenReport "NomdeMonEtat", acViewDesign
MesEtats.DoCmd.MaximizeVous 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


