begin process at 2008 05 16 05:15:29
1 173 215 membres
57 nouveaux aujourd'hui
13 970 membres club

Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum.
Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

PILOTER EXCEL PAR OLE AVEC ACCESS OU VB


Information sur la source

Catégorie :VBA Classé sous : piloter, programmer, excel, ole Niveau : Expert Date de création : 05/10/2000 Vu : 35 096

Note :
7,46 / 10 - par 24 personnes
7,46 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (11)
Ajouter un commentaire et/ou une note

Description

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

  • 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
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

  • signaler à un administrateur
    Commentaire de ririwin le 05/01/2003 09:51:14

    pourrais je avoir un fichier exemple de cette source zippé ci possible mercila merci a cette adresse ririwin666@aol.com

  • signaler à un administrateur
    Commentaire de ogaudicheau le 18/07/2003 16:40:54

    salut!! bon je passe bien tard mais bon .. pour momo j'espere qu'il a trouvé comment faire pour lançer une appli .exe a partir d'excel?
    bon si c'est pas le cas va faire un tour du coté de la fonction shell(NOM_DE_MON_APPLI,mode d'affichage) et la fonction de retourne un Id.
    voilà.
    @+

  • signaler à un administrateur
    Commentaire de woofy le 18/08/2003 17:55:41

    pourrais je avoir un fichier exemple de cette source zippé ci possible mercila merci a cette adresse logiclem@hotmail.com

  • signaler à un administrateur
    Commentaire de drixzibit le 31/10/2003 10:31:41

    cette source est une veritable tuerie merci bocou ca fait 4 jour ke je cherche et je ne trouvais rien.

  • signaler à un administrateur
    Commentaire de jamaica le 11/02/2004 02:14:04

    Bonjour,

    J'ai un petit problème.
    J'ai conçus un software en VB5, en data base j'ai access Version 7.0
    est il possible de printer mes data base sur excel en tenant compte que les tableaux sont déja fait en excel (tableau imposé).
    Merci d'avance .

  • signaler à un administrateur
    Commentaire de arouche le 23/02/2004 11:55:03

    Bonjour,
    J'aimerais créer dynamiquement à partir de VB dans un filchier excel un control de type Label ou texte !!! Comment faire ?

  • signaler à un administrateur
    Commentaire de renardeau le 03/03/2004 11:46:28

    Oublié de dire qu'il fallait rajouter la référence Microsoft Excel Object..

  • signaler à un administrateur
    Commentaire de clad_john le 12/03/2004 09:16:40

    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

  • signaler à un administrateur
    Commentaire de rootdaoud le 03/01/2005 12:48:13

    Merci, votre code est super .
    j'ai cree un dll pour piloter excel,  et ca, c grace vous .
    merci autre fois.  

  • signaler à un administrateur
    Commentaire de fank le 19/10/2006 08:12:29

    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

  • signaler à un administrateur
    Commentaire de pihp le 14/04/2008 11:33:55

    Tres Bon code
    merci
    A+

Ajouter un commentaire

Appels d'offres

Pub



CalendriCode

Mai 2008
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

VS Express FR Gratuit !

VS Express en français et 100% gratuit !

Téléchargements

Logiciels à télécharger sur le même thème :

Boutique

Boutique de goodies CodeS-SourceS