Problème de conversion de langage (de VBA a VB6)

nicosne Messages postés 37 Date d'inscription lundi 9 août 2004 Statut Membre Dernière intervention 10 mai 2005 - 4 févr. 2005 à 15:52
cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 - 5 févr. 2005 à 11:44
Quand j’utilise le VBA dans une application Office je fais
cette déclaration :




Public Const wclasseur
As String = "C:\MonDocument.xls"




Pour donnée le chemin du document a ouvrir, en VB6 elle ne
marche plus pourquoi ?









Pour info voici ma macro :









Option Explicit




Public widentifiant
As String




Public wnom1
As String




Public
Const wclasseur As String = "C:\ MonDocument.xls"









Sub
macro1()




Dim
pos1 As Single




Dim
pos2 As Single




Dim
portion As Range









On Error
Resume Next




ActiveDocument.Unprotect
Password:="xxx"




On Error
GoTo 0




Application.DisplayAlerts
= wdAlertsNone




widentifiant = InputBox("Après avoir saisi
l'identifiant et cliquer sur OK, patienter jusqu'a l'ouverture d'une nouvelle
fenêtre.")









pos1 =
ActiveDocument.Bookmarks("nom1").Range.Start




pos2 =
(ActiveDocument.Bookmarks("fnom1").Range.Start - 1)




Set portion = ActiveDocument.Range(Start:=pos1, End:=pos2)




If pos1
<> pos2 Then




portion.Delete




End If









Sub
QueryExcel()









Dim xlApp
As Object









Set xlApp =
CreateObject("excel.application")









With xlApp




.DisplayAlerts = False




.Workbooks.Open FileName:=wclasseur




.ActiveWorkbook.Sheets(3).Cells(5,
1).Value = widentifiant




wnom1 =
.ActiveWorkbook.Sheets(3).Cells(5, 31).Value




ActiveWorkbook.Close
SaveChanges:=False




End With









xlApp.Quit









Set xlApp = Nothing














ActiveDocument.Bookmarks("nom1").Select




Selection.TypeText Text:=wnom1









Selection.HomeKey Unit:=wdStory




End Sub



Merci,

Nico

1 réponse

cs_CanisLupus Messages postés 3757 Date d'inscription mardi 23 septembre 2003 Statut Membre Dernière intervention 13 mars 2006 20
5 févr. 2005 à 11:44
Salut,

En VB6, il faut d'abord que tu coches "Microsof Excel x.x Object Library" dans le menu "Projet/Références".

Ensuite, ton code c'est celui en VBA ou celui que tu veux mettre en VB6 ? Si c'est VB6, ça ne marchera pas comme ça.

Quand je dois piloter Excel à partir de VB6, j'utilise un code comme ça, par exemple :

Private Sub Command1_Click()
Dim AppExcel As Excel.Application
Dim ClasseurExcel As Excel.Workbook
Dim FeuilleExcel As Excel.Worksheet
Dim FichierXls As String
Dim Feuille As String


' là tu remplaces par tes noms de classeur et de feuille
FichierXls = "c:\temp\Classeur1.xls"
Feuille = "Feuil1"

' Chargement de l'application Excel
Set AppExcel = CreateObject("Excel.Application")

' Ouverture du classeur Excel
Set ClasseurExcel = AppExcel.Workbooks.Open(FichierXls)


' remplissage de qques cellules
With ClasseurExcel.Sheets(Feuille)
.Cells(1, 1) = "toto" ' "toto" dans la cellule A1
.Cells(1, 2) = "truc" ' "truc" dans la cellule B1
End With

' Pour refermer tout proprement
ClasseurExcel.Save 'pour sauvegarder tes modifs sinon :
'ClasseurExcel.Saved = True ' Pour dire que c'est déjà sauvegardé donc pas de nouvelle sauvegarde
ClasseurExcel.Close

AppExcel.Quit


Set FeuilleExcel = Nothing
Set ClasseurExcel = Nothing
Set AppExcel = Nothing

End Sub

J'espère que ça t'aidera.

Cordialement, CanisLupus
0
Rejoignez-nous