Piloter excel par ole avec access ou vb

Soyez le premier à donner votre avis sur cette source.

Snippet vu 51 749 fois - Téléchargée 65 fois

Contenu du snippet

Copiez-collez le code ci-dessous dans un module de votre application.
Puis utilisez-le tel quel.
Un exemple est fourni à la fin.

Il a été fait avec Access. Quelques adaptations très succinctes sont à faire pour qu'il tourne avec VB. Remplacez simplement la clause Public de la variable Excel_Application (dans l'entête) par un vulgaire Dim. Et enlevez le "Compare database". C'est tout.

Source / Exemple :


Option Compare Database
Option Explicit

'(c) J. PRESTREAU, 2000

Public Excel_Application As Excel.Application

Public Sub Excel_Atteindre_cellule(Coordonnées_cellule As String)

With Excel_Application
   .Range(Coordonnées_cellule).Select
End With

End Sub

Public Sub Excel_Création_Lien_OLE()

Set Excel_Application = CreateObject("Excel.Application")

End Sub

Public Sub Excel_Dans_cellule_Saisir_valeur(Coordonnées_cellule As String, valeur As Variant)

With Excel_Application
   .Range(Coordonnées_cellule).FormulaR1C1 = valeur
End With

End Sub

Public Sub Excel_Enregistrer_Classeur_courant(Optional Nom_fichier As String)

With Excel_Application
   If IsNull(Nom_fichier) Then
      .ActiveWorkbook.Save
   Else
      .ActiveWorkbook.SaveAs Nom_fichier
   End If
End With

End Sub

Public Sub Excel_insérer_colonne()

With Excel_Application
   .Selection.Insert Shift:=xlToRight
End With

End Sub

Public Sub Excel_insérer_ligne()

With Excel_Application
   .Selection.Insert Shift:=xlDown
End With

End Sub

Public Function Excel_Lire_valeur(Coordonnées_cellule As String) As Variant

With Excel_Application
   Excel_Lire_valeur = .Range(Coordonnées_cellule).FormulaR1C1
End With

End Function

Public Sub Excel_Saisir_valeur(valeur As Variant)

With Excel_Application
   .ActiveCell.FormulaR1C1 = valeur
End With

End Sub

Public Sub Excel_Nouveau_classeur(Optional Modèle As String)

With Excel_Application
   .Visible = True
   If Modèle = "" Then
      .Workbooks.Add
   Else
      .Workbooks.Add Modèle
   End If
   .WindowState = xlMaximized
End With
   
End Sub

Public Sub Excel_Quitter()

Excel_Application.Quit

End Sub

Public Sub Excel_Quitter_sans_sauver()

Dim Classeur As Workbook

With Excel_Application
   
   For Each Classeur In .Workbooks
      Classeur.Saved = True
   Next
   
   .Quit

End With

End Sub

Public Sub Excel_Suppression_Lien_OLE()

Set Excel_Application = Nothing

End Sub

Sub Excel_Test(Optional paramètre_requis As String)

If paramètre_requis = "" Then
   Debug.Print ("Paramètres requis pour le test" & vbCrLf & vbCrLf & "La syntaxe est" & vbCrLf & "Excel_Test 1 ou" & vbCrLf & "Excel_Test 2 ou" & vbCrLf & "Excel_Test 3")
Else
   Excel_Création_Lien_OLE
   Select Case paramètre_requis
      Case 1, 2, 3
         Excel_Nouveau_classeur
         Excel_Dans_cellule_Saisir_valeur "B2", "Jacques PRESTREAU"
         Excel_Atteindre_cellule "C4"
         Excel_Saisir_valeur "2 bis, avenue Xxxx"
         Excel_Atteindre_cellule "E1"
         Excel_Saisir_valeur "Développeur Access et VB"
         Excel_Dans_cellule_Saisir_valeur "A3", Mid(Excel_Lire_valeur("C4"), 5, 6)
         Select Case paramètre_requis
            Case 1
               Excel_Quitter 'Demande si on veut enregistrer les modifs
            Case 2
               Excel_Enregistrer_Classeur_courant "Démo d'un classeur fait par VBA.xls"
               Excel_Quitter 'Fichier sauvé, donc quitte sans message
            Case 3
               Excel_Quitter_sans_sauver 'Quitte sans sauver les modifs
         End Select
      Case Else
         Debug.Print "Le paramètre ne peut être que 1 ou 2 ou 3"
   End Select
End If
   
End Sub

A voir également

Ajouter un commentaire

Commentaires

keramzec
Messages postés
1
Date d'inscription
lundi 20 septembre 2010
Statut
Membre
Dernière intervention
29 septembre 2010
-
Bonjour,
Nouveau sur le forum.
J'ai de bonnes connaissances en ACCESS mais peu en EXCEL visual basic.
Le code ci-dessus me parle mais mon pb est de récupérer la valeur d'une case à cocher d'une feuille EXCEL depuis une appli ACCESS.
Je suis au stade où mon code ACCESS récupère bien les valeurs des cellules mais pas la valeur d'un objet (ici case à cocher).
Est-ce possible ?
Merci d'avance.
pihp
Messages postés
8
Date d'inscription
mardi 14 janvier 2003
Statut
Membre
Dernière intervention
9 septembre 2008
-
Tres Bon code
merci
A+
fank
Messages postés
1
Date d'inscription
vendredi 14 juillet 2006
Statut
Membre
Dernière intervention
19 octobre 2006
-
je pense qu'il faudrait mettre ce petit programme sous format zip.
Une question, comment créer des graphiques en VB à partir des données se trouvant dans u fichier excel;djonny2005@yahoo.fr
cs_rootdaoud
Messages postés
2
Date d'inscription
vendredi 31 octobre 2003
Statut
Membre
Dernière intervention
4 février 2005
-
Merci, votre code est super .
j'ai cree un dll pour piloter excel, et ca, c grace vous .
merci autre fois.
cs_clad_john
Messages postés
6
Date d'inscription
jeudi 11 mars 2004
Statut
Membre
Dernière intervention
17 mars 2004
-
Bonjour,
j'aimerais savoir comment generer des graphiques excel sur vb dont les données se trouvent sur un sql server 2000
Merci d'avance

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.