Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Je n'y comprend plus rien

1 réponse
Avatar
JCM
Bonjour

Je n'y comprend plus rien, je veux afficher les données de la feuille d'un
classeur Excell existant dans un MSFlexgrid et là j'ai un beug : la feuille
est introuvable, et pourtant elle existe
voici mon code :

le chemin du classeur est donné par un commandDialog :
strFileNameExcel = CmdLgMain.fileName

ensuite la feuille par un affichage dans un combo:

Private Sub CboFeuillesEX_Click()
'feuille sélectionnée
LafeuilleEX = CboFeuillesEX.Text
'Vérifie que la connexion est bien fermée
If ADOcnExcel.state = adStateOpen Then
ADOcnExcel.Close
End If
Set ADOcnExcel = Nothing

Call MyFonctions.InitConnectionExcell
Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell, ADOcnExcel)

'remplissage de MSExcell
laligne = 0
Do Until ADOrstExcell.EOF
laligne% = laligne + 1
MSExcell.FixedAlignment(1) = 4
MSExcell.Rows = laligne + 1
MSExcell.Row = laligne
MSExcell.col = 0
MSExcell.Text = ADOrstExcell("ZONE")
MSExcell.col = 1
MSExcell.Text = ADOrstExcell("DEP")
MSExcell.col = 2
MSExcell.Text = ADOrstExcell("AR")
MSExcell.col = 3
MSExcell.Text = ADOrstExcell("CTN")
MSExcell.col = 4
MSExcell.Text = ADOrstExcell("VILLE")
MSExcell.col = 5
MSExcell.Text = ADOrstExcell("HAB90")
ADOrstExcell.MoveNext
Loop
End Sub

Par contre si c'est un classeur créé et rempli par l'appli cela fonctionne

Voyez-vous ou est l'erreur, car je n'arrive pas a sortir de cette galere
Cordialement
JCM

1 réponse

Avatar
Josselin Jouannet
Bonjour
Ton problème doit venir du fait que ton classeur n' est pas instancié par le
constructeur (puisque tu ne le creer pas tu en ouvre un existant, donc tu
n'utilise pas le constructeur filenew), il te faut donc instancier ton
classeur manuellement.

ce petit bout de code (pour project, mais marche avec tout office) simplifié
devrait pouvoir t'aider.

'Declaration de var ms project
Public AppliProj As MSProject.Application

Public Sub OpenProject(
'---------------------------------------------------------------------------------------
' Objet : Creer une instance de Ms Project
' Retourne : Nothin
'---------------------------------------------------------------------------------------
Set FrmMainMDI.AppliProj = CreateObject("MsProject.application")
End Sub

Public Sub OpenProjectFile(NameOpenProject As String
'---------------------------------------------------------------------------------------
' Objet : Ouvre un fichier project
' Retourne : Rie
'---------------------------------------------------------------------------------------
FrmMainMDI.AppliProj.FileOpen Name:=NameOpenProject, ReadOnly:úlse,
FormatID:="MSProject.MPP"
FrmMainMDI.AppliProj.ViewApply ("Diagramme de Gantt")
End Sub

appel
Call S5CreerProjet.OpenProject
Call S5CreerProjet.OpenProjectFile(MonChemin)

et aprés tu travail sur AppliProj.ActiveProject ou dans ton cas
activeworkbook, si tu ne veux pas travailler avec activeworkbook, tu peut
aussi déclarer un classeur, une feuille et ainsi de suite.

@+

"JCM" a écrit :

Bonjour

Je n'y comprend plus rien, je veux afficher les données de la feuille d'un
classeur Excell existant dans un MSFlexgrid et là j'ai un beug : la feuille
est introuvable, et pourtant elle existe
voici mon code :

le chemin du classeur est donné par un commandDialog :
strFileNameExcel = CmdLgMain.fileName

ensuite la feuille par un affichage dans un combo:

Private Sub CboFeuillesEX_Click()
'feuille sélectionnée
LafeuilleEX = CboFeuillesEX.Text
'Vérifie que la connexion est bien fermée
If ADOcnExcel.state = adStateOpen Then
ADOcnExcel.Close
End If
Set ADOcnExcel = Nothing

Call MyFonctions.InitConnectionExcell
Call ExecSQLExcell("select * from " & LafeuilleEX, ADOrstExcell, ADOcnExcel)

'remplissage de MSExcell
laligne = 0
Do Until ADOrstExcell.EOF
laligne% = laligne + 1
MSExcell.FixedAlignment(1) = 4
MSExcell.Rows = laligne + 1
MSExcell.Row = laligne
MSExcell.col = 0
MSExcell.Text = ADOrstExcell("ZONE")
MSExcell.col = 1
MSExcell.Text = ADOrstExcell("DEP")
MSExcell.col = 2
MSExcell.Text = ADOrstExcell("AR")
MSExcell.col = 3
MSExcell.Text = ADOrstExcell("CTN")
MSExcell.col = 4
MSExcell.Text = ADOrstExcell("VILLE")
MSExcell.col = 5
MSExcell.Text = ADOrstExcell("HAB90")
ADOrstExcell.MoveNext
Loop
End Sub

Par contre si c'est un classeur créé et rempli par l'appli cela fonctionne

Voyez-vous ou est l'erreur, car je n'arrive pas a sortir de cette galere
Cordialement
JCM