Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Outlook
Outlook Forum d'entraide sur Microsoft Office Outlook
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2011, 17h49   #1
Invité de passage
 
Inscription : mars 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 11
Points : 0
Points : 0
Par défaut Fermer excel depuis userform

Bonjour à tous,

J'ai créer une macro capable d'ouvrir excel, et a partir d'un Userform je remplis des cellules d'excel et je modifie les info d'un contact.

Mon problème et pour fermer le classeur excel lors de la fermeture de mon userform ! Cela ne fonctionne pas !

Il me dit : Erreur d'éxécution '91' : Variable objet ou variable de bloc with non définie.

Voici mon code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
 
'------------------Fermeture excel---------------------------------
Dim appExcel As Excel.Application
Dim wbExcel As Excel.Workbook
 
Set appExcel = CreateObject("Excel.Application")
appExcel.Application.DisplayAlerts = False
appExcel.ActiveWorkbook.Saved = True
appExcel.ActiveWorkbook.Close
appExcel.Quit
appExcel.Visible = True
appExcel.Application.DisplayAlerts = True
 
 
'------------------Transfert vers note du contact---------------------------------
Set myolapp = CreateObject("Outlook.Application")
Set myinspector = myolapp.ActiveInspector
 
With myinspector.CurrentItem
.Body = Existant.note
End With
End Sub
Merci d'avance pour votre aide.
Ludovic50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 03h44   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 620
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 620
Points : 30 954
Points : 30 954
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Je ne comprends pas ton code

Tu crées une instance d'Excel, tu la sauvegarde et tu la ferme ? Sans rien faire d'autre ?

Si tu es sur OutLook pourquoi recréer une instance ?

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 07h54   #3
Invité de passage
 
Inscription : mars 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 11
Points : 0
Points : 0
Bonjour Philippe,

Et merci de répondre à mon post.

Mon problème et peut-être là, de re-créer des instances ?
Ludovic50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 07h55   #4
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 620
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 620
Points : 30 954
Points : 30 954
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Re

Si tu l'as déjà crée pourquoi la recréer, il faut que ta première instance ait été déclaré en publique pour pouvoir la fermer.

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 08h17   #5
Invité de passage
 
Inscription : mars 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 11
Points : 0
Points : 0
Re,

Petite question : comment déclarer en public ?

Merci
Ludovic50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 09h02   #6
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 620
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 620
Points : 30 954
Points : 30 954
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Re

Montres nous déjà comment et où tu as fait tes déclarations et affectations.

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 11h53   #7
Invité de passage
 
Inscription : mars 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 11
Points : 0
Points : 0
Re,

Voilà, ci dessous le code situé dans un useform appelé "Existant" avec comme macro Initialize et Queryclose. L'ouverture se fait par un bouton dans la barre d'outils personnalisé lorsqu'un contact est affiché :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
Private Sub UserForm_Initialize()
 
Set myolapp = CreateObject("Outlook.Application")
    Set myinspector = myolapp.ActiveInspector
    With myinspector.CurrentItem
    If .CompanyName = "" Then ref = .LastName & " " & .FirstName Else ref = .CompanyName
    End With
 
'-------------------------------Création listview-----------------------------------------
With Existant.ListView1
    .View = lvwReport
    .FullRowSelect = True
End With
With Existant.ListView1
    With .ColumnHeaders
        .Clear
        .Add , , "Lots", 100
    End With
End With
 
Dim x As Integer
 
With Existant.ListView1
    .ListItems.Clear
    .GridLines = True
End With
 
Existant.ListView1.ListItems.Add , , "Lot 1"
Existant.ListView1.ListItems.Add , , "lot 2"
 
 
'-------------------------------Ouverture fichier excel-----------------------------------------
 
        Dim appExcel As Excel.Application    'Application Excel
        Dim wbExcel As Excel.Workbook    'Classeur Excel
        Dim wsExcel As Excel.Worksheet    'Feuille Excel
 
        'Ouverture de l'application
        Set appExcel = CreateObject("Excel.Application")
        appExcel.Visible = True
 
        'Ouverture d'un fichier Excel
        Dim Presence As Boolean
        Presence = False
            For Each w In appExcel.Workbooks
                If w.Name = "Ratio 2011.xls" Then Presence = True
            Next w
            If Presence = True Then
            Else
                Set wbExcel = appExcel.Workbooks.Open("C:\Documents\Ratio 2011.xls")
            End If
        'wsExcel correspond à la première feuille du fichier
        Set wsExcel = wbExcel.Worksheets(1)
 
 
'-------------------------------Alimentation de la listview suivant fichier excel-----------------------------------------
 
Dim v As Integer
 v = "0"
 
For x = 4 To appExcel.Workbooks("Ratio 2011.xls").Sheets("Ratio").Range("c65536").End(xlUp).Row
    If appExcel.Workbooks("Ratio 2011.xls").Sheets("Ratio").Cells(x, 3).Value = ref Then
       v = v + 1
        With Existant.ListView1
            With .ColumnHeaders
                .Add , , "Type", 100
                    Existant.ListView1.ListItems(1).ListSubItems.Add , , "Devis n°" & v
                    Existant.ListView1.ListItems(2).ListSubItems.Add , , "Type :" & appExcel.Workbooks("Ratio 2011.xls").Sheets("Ratio").Cells(x, 4)
 
                .Add , , "Prix", 50
                    Existant.ListView1.ListItems(1).ListSubItems.Add , , "Année : " & appExcel.Workbooks("Ratio 2011.xls").Sheets("Ratio").Cells(x, 2)
                    Existant.ListView1.ListItems(2).ListSubItems.Add , , "Mois : " & appExcel.Workbooks("Ratio 2011.xls").Sheets("Ratio").Cells(x, 1)
                .Add , , "Ratio", 50
                    Existant.ListView1.ListItems(1).ListSubItems.Add , , ""
                    Existant.ListView1.ListItems(2).ListSubItems.Add , , ""
            End With
        End With
    End If
Next x
 
End Sub
 
Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)
 
'------------------Fermeture excel---------------------------------
appExcel.Application.DisplayAlerts = False
appExcel.ActiveWorkbook.Saved = True
appExcel.ActiveWorkbook.Close
appExcel.Quit
appExcel.Visible = True
appExcel.Application.DisplayAlerts = True
 
 
'------------------Transfert vers note du contact---------------------------------
Set myolapp = CreateObject("Outlook.Application")
Set myinspector = myolapp.ActiveInspector
 
With myinspector.CurrentItem
.Body = Existant.note
End With
End Sub
Ludovic50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 12h03   #8
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 620
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 620
Points : 30 954
Points : 30 954
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS


Ton code est dans Excel ou Outlook ?

Pourquoi ouvrir Excel si tu es dans Excel et pourquoi ouvrir OutLook si tu es dans Outlook ?

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 12h55   #9
Invité de passage
 
Inscription : mars 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 11
Points : 0
Points : 0


Re,

Mon code est dans outlook !
Ludovic50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/07/2011, 23h56   #10
Modérateur
 
Homme Christophe CHAPAT
Spécialiste progiciel
Inscription : février 2010
Messages : 984
Détails du profil
Informations personnelles :
Nom : Homme Christophe CHAPAT
Âge : 25
Localisation : France, Haute Loire (Auvergne)

Informations professionnelles :
Activité : Spécialiste progiciel
Secteur : Service public

Informations forums :
Inscription : février 2010
Messages : 984
Points : 1 594
Points : 1 594
Envoyer un message via MSN à carden752
Bonjour,

Réinitialises tes variables quand tu n'en as plus besoin.

__________________
Cordialement,
Christophe

Merci de ne pas oublier de mettre résolu quand le sujet l'est. Cela aide tous les DVPnautes dans leur recherche
carden752 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 08h27   #11
Invité de passage
 
Inscription : mars 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 11
Points : 0
Points : 0
Bonjour Christophe,

Merci pour t'as réponse, mais rien y fait !
Ludovic50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/07/2011, 15h43   #12
Invité de passage
 
Inscription : mars 2010
Messages : 11
Détails du profil
Informations forums :
Inscription : mars 2010
Messages : 11
Points : 0
Points : 0
Bonjour à tous,

J'ai trouvé réponse à mon problème :

Code :
1
2
3
4
5
6
appExcel.Application.DisplayAlerts = False
For Each w In Workbooks
   w.Save
Next w
appExcel.Quit
appExcel.Application.DisplayAlerts = True
Merci à tous pour votre aide.
Ludovic50 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h15.


 
 
 
 
Partenaires

Hébergement Web