Pb Access

cs_cindaille Messages postés 8 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 26 octobre 2004 - 25 oct. 2004 à 13:50
VisualBoinet Messages postés 64 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 14 juin 2007 - 24 juil. 2007 à 18:17
Bonjour,
Voici le code sur lequel je travaille.
Il permet d'exporter des données d'une requête Access vers Excel puis de les mettre en forme.

Private Sub Commande11_Click()
On Error GoTo Err_Commande11_Click

Dim Chemin
Dim oApp As Object

Chemin = InputBox("Entrer le chemin d'enregistrement des données", , "C:\My Documents")

DoCmd.TransferSpreadsheet acExport, 8, "Leçons par projet", Chemin, False, ""

Set oApp = CreateObject("Excel.Application")

Chemin = Chemin & ".xls"
oApp.Workbooks.Open filename:=Chemin
oApp.Application.Visible = True

oApp.Application.Worksheets("Leçons_par_projet").Activate

With oApp
With Activesheet.PageSetup
.CenterHeader = ""
.CenterFooter = ""
.Orientation = xlLandscape
End With

Columns("C:C").Select
Selection.Delete Shift:=xlToLeft
Columns("I:I").Select
Selection.Delete Shift:=xlToLeft

End With

oApp.Quit
Set oApp = Nothing
Set Chemin = Nothing

Exit_Commande11_Click:
Exit Sub

Err_Commande11_Click:
MsgBox Err.Description
Resume Exit_Commande11_Click

End Sub

Ce code fonctionne très bien la première fois puis ensuite il me met une erreur "Variable objet ou variable de bloc With non définie".
Je me suis rendu compte qu'après exécution du code et réinitialisation des varaibles via VB, le code remarche.

Est ce que je peux réinitialiser ces variables dans le code? Existe-t'il une solution?
Merci
Cindaille

13 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
25 oct. 2004 à 14:21
Salut, pourrais tu dire quelle ligne plante s il te plait.
Et si je peux te conseiller d enlever la gestion des erreurs (au moins quand tu developpe)
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
ramm50 Messages postés 3 Date d'inscription mercredi 3 mars 2004 Statut Membre Dernière intervention 25 octobre 2004
25 oct. 2004 à 14:26
Essaye de changer :
Set oApp = Nothing
Set Chemin = Nothing

par :
oApp.close
Chemin.close
0
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
25 oct. 2004 à 14:27
enleves le With oApp et son end with

With oApp ' ????????????????????? est ce que tu utilise oapp??
With Activesheet.PageSetup
.CenterHeader = ""
.CenterFooter = ""
.Orientation = xlLandscape
End With

Columns("C:C").Select
Selection.Delete Shift:=xlToLeft
Columns("I:I").Select
Selection.Delete Shift:=xlToLeft

End With

:-p [mailto:cyberscorp2004@msn.com MSN] :big) [mailto:frop01@yahoo.fr YAHOO] >:)

Membre du club CodeS-SourceS
0
cs_cindaille Messages postés 8 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 26 octobre 2004
25 oct. 2004 à 14:28
Quand je lance le code une seconde fois, il plante à la ligne:
With Activesheet.PageSetup, en fait quand je commence la mise en forme sous excel
L'ouverture du fichier ne pose pas de problème
Je pense que je doit mal utiliser la variable oApp
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_frop01 Messages postés 1352 Date d'inscription lundi 27 octobre 2003 Statut Membre Dernière intervention 19 novembre 2008 2
25 oct. 2004 à 14:32
si Colums("C:C").select fait partie de l'objet oAPP alors

With Activesheet.PageSetup
.CenterHeader = ""
.CenterFooter = ""
.Orientation = xlLandscape
End With

With oApp
.Columns("C:C").Select
.Selection.Delete Shift:=xlToLeft
.Columns("I:I").Select
.Selection.Delete Shift:=xlToLeft
End With

:-p [mailto:cyberscorp2004@msn.com MSN] :big) [mailto:frop01@yahoo.fr YAHOO] >:)

Membre du club CodeS-SourceS
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
25 oct. 2004 à 14:35
re,

Alors essaie d executer ton programme sans les gestion d erreur de cette maniere si il y a une tu la verra, car ca se trouve , ca ne marche pas correctement la premiere fois, et ca te fait planter la deuxieme...

Fais tout en suposant que tu le fais bien et apres seulement tu ajoutera les gestion d erreur.
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
cs_cindaille Messages postés 8 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 26 octobre 2004
25 oct. 2004 à 14:53
J'ai enlevé les gestions d'erreur et aussi le "With oApp" et "End With"
Donc la première fois ça marche très bien et la seconde fois l'erreur se porte sur "With Activesheet.PageSetup" avec "Variable objet ou variable de bloc With non définie"

J'ai essayé aussi d'enlever :
With Activesheet.PageSetup
.CenterHeader = ""
.CenterFooter = ""
.Orientation = xlLandscape
End With

et de commencer la mise en forme sous Excel par :
Columns("C:C").Select
Selection.Delete Shift:=xlToLeft
Columns("I:I").Select
Selection.Delete Shift:=xlToLeft

Cette fois ci l'erreur se fait aussi à la seconde exécution et c'est "La méthode 'Columns' de l'objet '_Global' a échoué"
0
cancolegnako Messages postés 36 Date d'inscription dimanche 15 février 2004 Statut Membre Dernière intervention 14 novembre 2004
25 oct. 2004 à 20:25
On peut enlever la gestion d'erreurs?
Ca veut dire quoi concretement ?,le compilateur "laisse passer" certaines erreurs?
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
26 oct. 2004 à 09:33
SAlut,

J entendais par gestion d erreur la ligne :

On Error GoTo Err_Commande11_Click 


Ce qui permet a ton code en cas d erreur de ne pas mourrir...
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
cs_cindaille Messages postés 8 Date d'inscription vendredi 8 octobre 2004 Statut Membre Dernière intervention 26 octobre 2004
26 oct. 2004 à 09:41
c'est bien cette ligne
On Error GoTo Err_Commande11_Click

que j'ai supprimé

Je remet mon code
Private Sub Commande11_Click()
'On Error GoTo Err_Commande11_Click
    
    Dim Chemin
    Dim oApp As Object
    Dim oWKB As Object
    Dim oSHT As Object

    Chemin = InputBox("Entrer le chemin d'enregistrement des données", , "C:\My Documents")

    DoCmd.TransferSpreadsheet acExport, 8, "Leçons par projet", Chemin, False, ""

    Set oApp = CreateObject("Excel.Application")

    Chemin = Chemin & ".xls"
    Set oWKB = oApp.Workbooks.Open(Filename:=Chemin)
    oApp.Application.Visible = True

    Set oSHT = oApp.Application.Worksheets("Leçons_par_projet")

With oSHT
    .Activate
    With .PageSetup
        .CenterHeader = ""
        .CenterFooter = ""
        .Orientation = xlLandscape
    End With
    
    .Columns("C:C").Delete Shift:=xlToLeft
    .Columns("I:I").Delete Shift:=xlToLeft

    .Columns("A:H").Select
    
    Selection.HorizontalAlignment = xlGeneral
    Selection.VerticalAlignment = xlTop
    Selection.WrapText = True
    Selection.Orientation = 0
    Selection.ShrinkToFit = True

    Selection.Font.name = "Arial"
    Selection.Font.Size = 9

End With

    oApp.Quit
    Set oApp = Nothing
    Set Chemin = Nothing
        
'Exit_Commande11_Click:
  '  On Error Resume Next
  '  oWKB.Save
  '  oWKB.Close
  '  oApp.Quit
  '  Set oApp = Nothing
  '  Set oWKB = Nothing
  '  Set oSHT = Nothing
  '  Exit Sub

'Err_Commande11_Click:
  '  MsgBox Err.Description
  '  Resume Exit_Commande11_Click

End Sub

Après diverses modifications, mon erreur est toujours la même mais elle se situe sur Selection.HorizontalAlignment = xlGeneral; mon erreur est présentye aussi quend je met With Selection End With
0
cancolegnako Messages postés 36 Date d'inscription dimanche 15 février 2004 Statut Membre Dernière intervention 14 novembre 2004
26 oct. 2004 à 10:45
SAlut,

J entendais par gestion d erreur la ligne :

On Error GoTo Err_Commande11_Click


Ce qui permet a ton code en cas d erreur de ne pas mourrir...
@+
Julien

Oups! :shy)
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
26 oct. 2004 à 11:22
-> cancolegnako .... ?
@+
Julien
-----------------------------------------------------------
:big) Essai ca sinon on trouvera autre chose ;)
-----------------------------------------------------------
0
VisualBoinet Messages postés 64 Date d'inscription mercredi 23 mars 2005 Statut Membre Dernière intervention 14 juin 2007
24 juil. 2007 à 18:17
Salut...
Euh c'est un peu normal. Ton probleme est en fait a chaque fois le même.... Tu ne dit pas a quel objet cela fait référence....

Par exemple (dans le dernier cas) tu met ceci :

Selection.HorizontalAlignment = xlGeneral


C'est bien mais c'est la sélection de quoi? et bien de ton objet Excel et donc de "oSHT"

Il te faut donc ecrire ceci :

oSHT.Selection.HorizontalAlignment = xlGeneral


A+
0
Rejoignez-nous