Ecrire depuis un VBScript dans un controle active x

Le
philippe
Bonjour,
J'ai un script dans outlook qui doit écrire dans deux contrôles actives x
sur une feuille excel.
Depuis outlook j'arrive a écrire dans des cellules excel (voir le code
ci-dessous).
Dans excel, pas de pb pour écrire dans les controle active x.
Mais en vbs depuis outlook, je sèche.

Quelqu'un a t il une idée ?
Merci d'avance,
Philippe

Sub exportVersExcel_Click()

Set objExcelApp = Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")
objExcelSheet.Activate

' ca ca marche :
objExcelSheet.range("J12").value = Item.LastName
objExcelSheet.range("J14").value = Item.CompanyName

' ca ça ne donne rien :
objExcelSheet.OLEObjects("TextBox_PrenomBenef").Object.value = Item.FirstName
objExcelSheet.OLEObjects("TextBox_NomBenef").Object.value = Item.LastName

' et ça, ça donne une erreur :
with sheets("DemandeOuverture")
OLEObjects("TextBox_PrenomBenef").Object.value = Item.FirstName
OLEObjects("TextBox_NomBenef").Object.value = Item.LastName
end with

objExcelApp.Application.Visible = True

End Sub
Vos réponses
Trier par : date / pertinence
papou
Le #3722791
Bonjour
Déclare les objets textbox dans ton script et modifie comme ceci :
Dim objExcel, objExcelBook, objExcelSheet
'.....
Dim objOleTxtBx1 As Object
Dim objOleTxtBx1 As Object
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")
objOleTxtBx.Object.Value = Item.FirstName
Set objOleTxtBx2 = objExcelSheet.OLEObjects("TextBox_NomBenef")
objOleTxtBx2.Object.Value = Item.LastName
'.....

Cordialement
Pascal

"philippe" news:
Bonjour,
J'ai un script dans outlook qui doit écrire dans deux contrôles actives x
sur une feuille excel.
Depuis outlook j'arrive a écrire dans des cellules excel (voir le code
ci-dessous).
Dans excel, pas de pb pour écrire dans les controle active x.
Mais en vbs depuis outlook, je sèche.

Quelqu'un a t il une idée ?
Merci d'avance,
Philippe

Sub exportVersExcel_Click()

Set objExcelApp = Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")
objExcelSheet.Activate

' ca ca marche :
objExcelSheet.range("J12").value = Item.LastName
objExcelSheet.range("J14").value = Item.CompanyName

' ca ça ne donne rien :
objExcelSheet.OLEObjects("TextBox_PrenomBenef").Object.value =
Item.FirstName
objExcelSheet.OLEObjects("TextBox_NomBenef").Object.value = Item.LastName

' et ça, ça donne une erreur :
with sheets("DemandeOuverture")
OLEObjects("TextBox_PrenomBenef").Object.value = Item.FirstName
OLEObjects("TextBox_NomBenef").Object.value = Item.LastName
end with

objExcelApp.Application.Visible = True

End Sub


papou
Le #3722781
une 'tite coquille :
Au lieu de
objOleTxtBx.Object.Value = Item.FirstName
il faut lire

objOleTxtBx1.Object.Value = Item.FirstName

Cordialement
Pascal

"papou" <cestpasbon@çanonplus> a écrit dans le message de news:
%
Bonjour
Déclare les objets textbox dans ton script et modifie comme ceci :
Dim objExcel, objExcelBook, objExcelSheet
'.....
Dim objOleTxtBx1 As Object
Dim objOleTxtBx1 As Object
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")
objOleTxtBx.Object.Value = Item.FirstName
Set objOleTxtBx2 = objExcelSheet.OLEObjects("TextBox_NomBenef")
objOleTxtBx2.Object.Value = Item.LastName
'.....

Cordialement
Pascal

"philippe" news:
Bonjour,
J'ai un script dans outlook qui doit écrire dans deux contrôles actives x
sur une feuille excel.
Depuis outlook j'arrive a écrire dans des cellules excel (voir le code
ci-dessous).
Dans excel, pas de pb pour écrire dans les controle active x.
Mais en vbs depuis outlook, je sèche.

Quelqu'un a t il une idée ?
Merci d'avance,
Philippe

Sub exportVersExcel_Click()

Set objExcelApp = Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")
objExcelSheet.Activate

' ca ca marche :
objExcelSheet.range("J12").value = Item.LastName
objExcelSheet.range("J14").value = Item.CompanyName

' ca ça ne donne rien :
objExcelSheet.OLEObjects("TextBox_PrenomBenef").Object.value =
Item.FirstName
objExcelSheet.OLEObjects("TextBox_NomBenef").Object.value = Item.LastName

' et ça, ça donne une erreur :
with sheets("DemandeOuverture")
OLEObjects("TextBox_PrenomBenef").Object.value = Item.FirstName
OLEObjects("TextBox_NomBenef").Object.value = Item.LastName
end with

objExcelApp.Application.Visible = True

End Sub






philippe
Le #3722671
VBScript ne semble pas aimer les déclarations où l'on type les variables, il
retourne une erreur.

J'ai essayé en ajoutant une étape sur le modèle que tu m'as suggéré.
Créer l'objet d'abord,
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")

Manipuler sa valeur ensuite
objOleTxtBx.Object.Value = Item.FirstName

Mais ça donne le même résultat !.


Je continue à chercher,
Merci,
Philippe

Set objExcelApp = Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")






Bonjour
Déclare les objets textbox dans ton script et modifie comme ceci :
Dim objExcel, objExcelBook, objExcelSheet
'.....
Dim objOleTxtBx1 As Object
Dim objOleTxtBx1 As Object
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")
objOleTxtBx.Object.Value = Item.FirstName
Set objOleTxtBx2 = objExcelSheet.OLEObjects("TextBox_NomBenef")
objOleTxtBx2.Object.Value = Item.LastName
'.....

Cordialement
Pascal

"philippe" news:
Bonjour,
J'ai un script dans outlook qui doit écrire dans deux contrôles actives x
sur une feuille excel.
Depuis outlook j'arrive a écrire dans des cellules excel (voir le code
ci-dessous).
Dans excel, pas de pb pour écrire dans les controle active x.
Mais en vbs depuis outlook, je sèche.

Quelqu'un a t il une idée ?
Merci d'avance,
Philippe

Sub exportVersExcel_Click()

Set objExcelApp = Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")
objExcelSheet.Activate

' ca ca marche :
objExcelSheet.range("J12").value = Item.LastName
objExcelSheet.range("J14").value = Item.CompanyName

' ca ça ne donne rien :
objExcelSheet.OLEObjects("TextBox_PrenomBenef").Object.value =
Item.FirstName
objExcelSheet.OLEObjects("TextBox_NomBenef").Object.value = Item.LastName

' et ça, ça donne une erreur :
with sheets("DemandeOuverture")
OLEObjects("TextBox_PrenomBenef").Object.value = Item.FirstName
OLEObjects("TextBox_NomBenef").Object.value = Item.LastName
end with

objExcelApp.Application.Visible = True

End Sub







papou
Le #3722611
Re
Tu n'as pas dit comment tu lances ce code ?
Mais ce code avec les modifis apportées et exécuté dpuis Outlook ou Word
fonctionne parfaitement pour moi.
S'il s'agit d'un script pur (fichier .VBS), essaie d'utiliser la valeur
d'index des deux objets :
Set objOleTxtBx1 = objExcelSheet.OLEObjects(1)

Cordialement
Pascal

"philippe" news:
VBScript ne semble pas aimer les déclarations où l'on type les variables,
il
retourne une erreur.

J'ai essayé en ajoutant une étape sur le modèle que tu m'as suggéré.
Créer l'objet d'abord,
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")

Manipuler sa valeur ensuite
objOleTxtBx.Object.Value = Item.FirstName

Mais ça donne le même résultat !.


Je continue à chercher,
Merci,
Philippe

Set objExcelApp = Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")






Bonjour
Déclare les objets textbox dans ton script et modifie comme ceci :
Dim objExcel, objExcelBook, objExcelSheet
'.....
Dim objOleTxtBx1 As Object
Dim objOleTxtBx1 As Object
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")
objOleTxtBx.Object.Value = Item.FirstName
Set objOleTxtBx2 = objExcelSheet.OLEObjects("TextBox_NomBenef")
objOleTxtBx2.Object.Value = Item.LastName
'.....

Cordialement
Pascal

"philippe" de
news:
Bonjour,
J'ai un script dans outlook qui doit écrire dans deux contrôles actives
x
sur une feuille excel.
Depuis outlook j'arrive a écrire dans des cellules excel (voir le code
ci-dessous).
Dans excel, pas de pb pour écrire dans les controle active x.
Mais en vbs depuis outlook, je sèche.

Quelqu'un a t il une idée ?
Merci d'avance,
Philippe

Sub exportVersExcel_Click()

Set objExcelApp = Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")
objExcelSheet.Activate

' ca ca marche :
objExcelSheet.range("J12").value = Item.LastName
objExcelSheet.range("J14").value = Item.CompanyName

' ca ça ne donne rien :
objExcelSheet.OLEObjects("TextBox_PrenomBenef").Object.value >> > Item.FirstName
objExcelSheet.OLEObjects("TextBox_NomBenef").Object.value =
Item.LastName

' et ça, ça donne une erreur :
with sheets("DemandeOuverture")
OLEObjects("TextBox_PrenomBenef").Object.value = Item.FirstName
OLEObjects("TextBox_NomBenef").Object.value = Item.LastName
end with

objExcelApp.Application.Visible = True

End Sub









philippe
Le #3722401
Bonsoir,

Le code est lancé par un click sur un bouton dans un formulaire Outlook
Le code est placé dans le formulaire, c'est du vbscript.

Peux tu me montrer le code que tu as essayé en entier ?
Tu n'as peut être pas créé l'objet objExcelSheet comme moi.

Cordialement,
Philipe


Re
Tu n'as pas dit comment tu lances ce code ?
Mais ce code avec les modifis apportées et exécuté dpuis Outlook ou Word
fonctionne parfaitement pour moi.
S'il s'agit d'un script pur (fichier .VBS), essaie d'utiliser la valeur
d'index des deux objets :
Set objOleTxtBx1 = objExcelSheet.OLEObjects(1)

Cordialement
Pascal

"philippe" news:
VBScript ne semble pas aimer les déclarations où l'on type les variables,
il
retourne une erreur.

J'ai essayé en ajoutant une étape sur le modèle que tu m'as suggéré.
Créer l'objet d'abord,
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")

Manipuler sa valeur ensuite
objOleTxtBx.Object.Value = Item.FirstName

Mais ça donne le même résultat !.


Je continue à chercher,
Merci,
Philippe

Set objExcelApp = Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")






Bonjour
Déclare les objets textbox dans ton script et modifie comme ceci :
Dim objExcel, objExcelBook, objExcelSheet
'.....
Dim objOleTxtBx1 As Object
Dim objOleTxtBx1 As Object
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")
objOleTxtBx.Object.Value = Item.FirstName
Set objOleTxtBx2 = objExcelSheet.OLEObjects("TextBox_NomBenef")
objOleTxtBx2.Object.Value = Item.LastName
'.....

Cordialement
Pascal

"philippe" de
news:
Bonjour,
J'ai un script dans outlook qui doit écrire dans deux contrôles actives
x
sur une feuille excel.
Depuis outlook j'arrive a écrire dans des cellules excel (voir le code
ci-dessous).
Dans excel, pas de pb pour écrire dans les controle active x.
Mais en vbs depuis outlook, je sèche.

Quelqu'un a t il une idée ?
Merci d'avance,
Philippe

Sub exportVersExcel_Click()

Set objExcelApp = Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")
objExcelSheet.Activate

' ca ca marche :
objExcelSheet.range("J12").value = Item.LastName
objExcelSheet.range("J14").value = Item.CompanyName

' ca ça ne donne rien :
objExcelSheet.OLEObjects("TextBox_PrenomBenef").Object.value > >> > Item.FirstName
objExcelSheet.OLEObjects("TextBox_NomBenef").Object.value =
Item.LastName

' et ça, ça donne une erreur :
with sheets("DemandeOuverture")
OLEObjects("TextBox_PrenomBenef").Object.value = Item.FirstName
OLEObjects("TextBox_NomBenef").Object.value = Item.LastName
end with

objExcelApp.Application.Visible = True

End Sub














papou
Le #3721801
Bonjour
Le code est placé dans le formulaire, c'est du vbscript.
Le code est donc exécuté à partir d'Outlook ?


Voici le test effectué :
Sub testons()
Dim objExcel, objExcelBook, objExcelSheet, objOleTxtBx As Object
Set objExcel = CreateObject("Excel.Application")
Set objExcelBook = objExcel.Workbooks.Open _
("C:Documents and SettingspapouMes
documentsAssistancempfetest01062006.xls")
objExcel.Visible = True
Set objExcelSheet = objExcelBook.Worksheets("Feuil1")
Set objOleTxtBx = objExcelSheet.OLEObjects("TextBox_PrenomBenef")
objOleTxtBx.Object.Value = "zozo"
End Sub

Cordialement
Pascal

"philippe" news:
Bonsoir,

Le code est lancé par un click sur un bouton dans un formulaire Outlook
Le code est placé dans le formulaire, c'est du vbscript.

Peux tu me montrer le code que tu as essayé en entier ?
Tu n'as peut être pas créé l'objet objExcelSheet comme moi.

Cordialement,
Philipe


Re
Tu n'as pas dit comment tu lances ce code ?
Mais ce code avec les modifis apportées et exécuté dpuis Outlook ou Word
fonctionne parfaitement pour moi.
S'il s'agit d'un script pur (fichier .VBS), essaie d'utiliser la valeur
d'index des deux objets :
Set objOleTxtBx1 = objExcelSheet.OLEObjects(1)

Cordialement
Pascal

"philippe" de
news:
VBScript ne semble pas aimer les déclarations où l'on type les
variables,
il
retourne une erreur.

J'ai essayé en ajoutant une étape sur le modèle que tu m'as suggéré.
Créer l'objet d'abord,
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")

Manipuler sa valeur ensuite
objOleTxtBx.Object.Value = Item.FirstName

Mais ça donne le même résultat !.


Je continue à chercher,
Merci,
Philippe

Set objExcelApp =
Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")






Bonjour
Déclare les objets textbox dans ton script et modifie comme ceci :
Dim objExcel, objExcelBook, objExcelSheet
'.....
Dim objOleTxtBx1 As Object
Dim objOleTxtBx1 As Object
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")
objOleTxtBx.Object.Value = Item.FirstName
Set objOleTxtBx2 = objExcelSheet.OLEObjects("TextBox_NomBenef")
objOleTxtBx2.Object.Value = Item.LastName
'.....

Cordialement
Pascal

"philippe" message
de
news:
Bonjour,
J'ai un script dans outlook qui doit écrire dans deux contrôles
actives
x
sur une feuille excel.
Depuis outlook j'arrive a écrire dans des cellules excel (voir le
code
ci-dessous).
Dans excel, pas de pb pour écrire dans les controle active x.
Mais en vbs depuis outlook, je sèche.

Quelqu'un a t il une idée ?
Merci d'avance,
Philippe

Sub exportVersExcel_Click()

Set objExcelApp =
Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")
objExcelSheet.Activate

' ca ca marche :
objExcelSheet.range("J12").value = Item.LastName
objExcelSheet.range("J14").value = Item.CompanyName

' ca ça ne donne rien :
objExcelSheet.OLEObjects("TextBox_PrenomBenef").Object.value >> >> > Item.FirstName
objExcelSheet.OLEObjects("TextBox_NomBenef").Object.value >> >> > Item.LastName

' et ça, ça donne une erreur :
with sheets("DemandeOuverture")
OLEObjects("TextBox_PrenomBenef").Object.value = Item.FirstName
OLEObjects("TextBox_NomBenef").Object.value = Item.LastName
end with

objExcelApp.Application.Visible = True

End Sub
















Philippe
Le #3699251
Merci Papou,

En y regardant de plus près, je me rend compte que la valeur a bien été
affectée dans le textBox :
En regardant les propriétés du text box dans Excel, j'ai bien le nom de mon
contact dans les champs "Text" et "Vaue".
Donc on peut dire que ça marche.

Le "problème", est que cette valeur n'est pas visible / affichée dans le
contrôle tel qu'il apparait à l'utilisateur.
C'est vraiment bizarre. Un peu comme si après avoir programmatiquement
modifié la valeur du contrôle, il fallait modifier une autre propriété qui
est ce qui est affiché dans le contrôle. Ou bien comme si il falait
"rafraichir" le contrôle.
Bizarrement, la même méthode modifie et affiche quand elle est utilisée dans
un module vba excel.

Ici le code est exécuté depuis un formulaire outlook où il est en vbs.

Voici le code testé :
----------------------------
Sub exportVersExcel_Click()

Set objExcelApp = Application.CreateObject("Excel.Application")
Set objExcelBook = objExcelApp.Workbooks.Open _
("\Server03annuaireDemande_Ouverture_Compte.xls")
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")
objExcelSheet.Activate


Set objTextBox_NomBenef = objExcelSheet.OLEObjects("TextBox_NomBenef")
objTextBox_NomBenef.Object.value = Item.LastName

objExcelApp.Application.Visible = True

End Sub
-------------------------------


"papou" <cestpasbon@çanonplus> a écrit dans le message de news:

Bonjour
Le code est placé dans le formulaire, c'est du vbscript.
Le code est donc exécuté à partir d'Outlook ?


Voici le test effectué :
Sub testons()
Dim objExcel, objExcelBook, objExcelSheet, objOleTxtBx As Object
Set objExcel = CreateObject("Excel.Application")
Set objExcelBook = objExcel.Workbooks.Open _
("C:Documents and SettingspapouMes
documentsAssistancempfetest01062006.xls")
objExcel.Visible = True
Set objExcelSheet = objExcelBook.Worksheets("Feuil1")
Set objOleTxtBx = objExcelSheet.OLEObjects("TextBox_PrenomBenef")
objOleTxtBx.Object.Value = "zozo"
End Sub

Cordialement
Pascal

"philippe" news:
Bonsoir,

Le code est lancé par un click sur un bouton dans un formulaire Outlook
Le code est placé dans le formulaire, c'est du vbscript.

Peux tu me montrer le code que tu as essayé en entier ?
Tu n'as peut être pas créé l'objet objExcelSheet comme moi.

Cordialement,
Philipe


Re
Tu n'as pas dit comment tu lances ce code ?
Mais ce code avec les modifis apportées et exécuté dpuis Outlook ou Word
fonctionne parfaitement pour moi.
S'il s'agit d'un script pur (fichier .VBS), essaie d'utiliser la valeur
d'index des deux objets :
Set objOleTxtBx1 = objExcelSheet.OLEObjects(1)

Cordialement
Pascal

"philippe" de
news:
VBScript ne semble pas aimer les déclarations où l'on type les
variables,
il
retourne une erreur.

J'ai essayé en ajoutant une étape sur le modèle que tu m'as suggéré.
Créer l'objet d'abord,
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")

Manipuler sa valeur ensuite
objOleTxtBx.Object.Value = Item.FirstName

Mais ça donne le même résultat !.


Je continue à chercher,
Merci,
Philippe

Set objExcelApp =
Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")






Bonjour
Déclare les objets textbox dans ton script et modifie comme ceci :
Dim objExcel, objExcelBook, objExcelSheet
'.....
Dim objOleTxtBx1 As Object
Dim objOleTxtBx1 As Object
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")
objOleTxtBx.Object.Value = Item.FirstName
Set objOleTxtBx2 = objExcelSheet.OLEObjects("TextBox_NomBenef")
objOleTxtBx2.Object.Value = Item.LastName
'.....

Cordialement
Pascal

"philippe" message
de
news:
Bonjour,
J'ai un script dans outlook qui doit écrire dans deux contrôles
actives
x
sur une feuille excel.
Depuis outlook j'arrive a écrire dans des cellules excel (voir le
code
ci-dessous).
Dans excel, pas de pb pour écrire dans les controle active x.
Mais en vbs depuis outlook, je sèche.

Quelqu'un a t il une idée ?
Merci d'avance,
Philippe

Sub exportVersExcel_Click()

Set objExcelApp =
Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")
objExcelSheet.Activate

' ca ca marche :
objExcelSheet.range("J12").value = Item.LastName
objExcelSheet.range("J14").value = Item.CompanyName

' ca ça ne donne rien :
objExcelSheet.OLEObjects("TextBox_PrenomBenef").Object.value >>> >> > Item.FirstName
objExcelSheet.OLEObjects("TextBox_NomBenef").Object.value >>> >> > Item.LastName

' et ça, ça donne une erreur :
with sheets("DemandeOuverture")
OLEObjects("TextBox_PrenomBenef").Object.value = Item.FirstName
OLEObjects("TextBox_NomBenef").Object.value = Item.LastName
end with

objExcelApp.Application.Visible = True

End Sub




















Michel Pierron
Le #3699201
Bonjour Philippe;
Je pense qu'il s'agit d'un problème de rafraîchissement d'écran peut être
lié à la version d'Excel utilisée.
Tu peux contourner le problème en activant préalablement le contrôle avant
d'y inscrire une valeur:

objExcelSheet.OLEObjects("TextBox_PrenomBenef").Activate
objExcelSheet.OLEObjects("TextBox_PrenomBenef").Object.value =
Item.FirstName
objExcelSheet.Cells(1, 1).Activate

MP


"Philippe"
Merci Papou,

En y regardant de plus près, je me rend compte que la valeur a bien été
affectée dans le textBox :
En regardant les propriétés du text box dans Excel, j'ai bien le nom de
mon contact dans les champs "Text" et "Vaue".
Donc on peut dire que ça marche.

Le "problème", est que cette valeur n'est pas visible / affichée dans le
contrôle tel qu'il apparait à l'utilisateur.
C'est vraiment bizarre. Un peu comme si après avoir programmatiquement
modifié la valeur du contrôle, il fallait modifier une autre propriété qui
est ce qui est affiché dans le contrôle. Ou bien comme si il falait
"rafraichir" le contrôle.
Bizarrement, la même méthode modifie et affiche quand elle est utilisée
dans un module vba excel.

Ici le code est exécuté depuis un formulaire outlook où il est en vbs.

Voici le code testé :
----------------------------
Sub exportVersExcel_Click()

Set objExcelApp = Application.CreateObject("Excel.Application")
Set objExcelBook = objExcelApp.Workbooks.Open _
("\Server03annuaireDemande_Ouverture_Compte.xls")
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")
objExcelSheet.Activate


Set objTextBox_NomBenef = objExcelSheet.OLEObjects("TextBox_NomBenef")
objTextBox_NomBenef.Object.value = Item.LastName

objExcelApp.Application.Visible = True

End Sub
-------------------------------


"papou" <cestpasbon@çanonplus> a écrit dans le message de news:

Bonjour
Le code est placé dans le formulaire, c'est du vbscript.
Le code est donc exécuté à partir d'Outlook ?


Voici le test effectué :
Sub testons()
Dim objExcel, objExcelBook, objExcelSheet, objOleTxtBx As Object
Set objExcel = CreateObject("Excel.Application")
Set objExcelBook = objExcel.Workbooks.Open _
("C:Documents and SettingspapouMes
documentsAssistancempfetest01062006.xls")
objExcel.Visible = True
Set objExcelSheet = objExcelBook.Worksheets("Feuil1")
Set objOleTxtBx = objExcelSheet.OLEObjects("TextBox_PrenomBenef")
objOleTxtBx.Object.Value = "zozo"
End Sub

Cordialement
Pascal

"philippe" de news:
Bonsoir,

Le code est lancé par un click sur un bouton dans un formulaire Outlook
Le code est placé dans le formulaire, c'est du vbscript.

Peux tu me montrer le code que tu as essayé en entier ?
Tu n'as peut être pas créé l'objet objExcelSheet comme moi.

Cordialement,
Philipe


Re
Tu n'as pas dit comment tu lances ce code ?
Mais ce code avec les modifis apportées et exécuté dpuis Outlook ou
Word
fonctionne parfaitement pour moi.
S'il s'agit d'un script pur (fichier .VBS), essaie d'utiliser la valeur
d'index des deux objets :
Set objOleTxtBx1 = objExcelSheet.OLEObjects(1)

Cordialement
Pascal

"philippe" de
news:
VBScript ne semble pas aimer les déclarations où l'on type les
variables,
il
retourne une erreur.

J'ai essayé en ajoutant une étape sur le modèle que tu m'as suggéré.
Créer l'objet d'abord,
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")

Manipuler sa valeur ensuite
objOleTxtBx.Object.Value = Item.FirstName

Mais ça donne le même résultat !.


Je continue à chercher,
Merci,
Philippe

Set objExcelApp =
Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")






Bonjour
Déclare les objets textbox dans ton script et modifie comme ceci :
Dim objExcel, objExcelBook, objExcelSheet
'.....
Dim objOleTxtBx1 As Object
Dim objOleTxtBx1 As Object
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")
objOleTxtBx.Object.Value = Item.FirstName
Set objOleTxtBx2 = objExcelSheet.OLEObjects("TextBox_NomBenef")
objOleTxtBx2.Object.Value = Item.LastName
'.....

Cordialement
Pascal

"philippe" message
de
news:
Bonjour,
J'ai un script dans outlook qui doit écrire dans deux contrôles
actives
x
sur une feuille excel.
Depuis outlook j'arrive a écrire dans des cellules excel (voir le
code
ci-dessous).
Dans excel, pas de pb pour écrire dans les controle active x.
Mais en vbs depuis outlook, je sèche.

Quelqu'un a t il une idée ?
Merci d'avance,
Philippe

Sub exportVersExcel_Click()

Set objExcelApp =
Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")
objExcelSheet.Activate

' ca ca marche :
objExcelSheet.range("J12").value = Item.LastName
objExcelSheet.range("J14").value = Item.CompanyName

' ca ça ne donne rien :
objExcelSheet.OLEObjects("TextBox_PrenomBenef").Object.value >>>> >> > Item.FirstName
objExcelSheet.OLEObjects("TextBox_NomBenef").Object.value >>>> >> > Item.LastName

' et ça, ça donne une erreur :
with sheets("DemandeOuverture")
OLEObjects("TextBox_PrenomBenef").Object.value = Item.FirstName
OLEObjects("TextBox_NomBenef").Object.value = Item.LastName
end with

objExcelApp.Application.Visible = True

End Sub
























Philippe
Le #3699181
Merci Michel,
ça marche comme ça.

Crois tu qu'il y ait un moyen de "raffraichir" tous les contrôle d'un coup ?

Philippe

"Michel Pierron"
Bonjour Philippe;
Je pense qu'il s'agit d'un problème de rafraîchissement d'écran peut être
lié à la version d'Excel utilisée.
Tu peux contourner le problème en activant préalablement le contrôle avant
d'y inscrire une valeur:

objExcelSheet.OLEObjects("TextBox_PrenomBenef").Activate
objExcelSheet.OLEObjects("TextBox_PrenomBenef").Object.value =
Item.FirstName
objExcelSheet.Cells(1, 1).Activate

MP


"Philippe"
Merci Papou,

En y regardant de plus près, je me rend compte que la valeur a bien été
affectée dans le textBox :
En regardant les propriétés du text box dans Excel, j'ai bien le nom de
mon contact dans les champs "Text" et "Vaue".
Donc on peut dire que ça marche.

Le "problème", est que cette valeur n'est pas visible / affichée dans le
contrôle tel qu'il apparait à l'utilisateur.
C'est vraiment bizarre. Un peu comme si après avoir programmatiquement
modifié la valeur du contrôle, il fallait modifier une autre propriété
qui est ce qui est affiché dans le contrôle. Ou bien comme si il falait
"rafraichir" le contrôle.
Bizarrement, la même méthode modifie et affiche quand elle est utilisée
dans un module vba excel.

Ici le code est exécuté depuis un formulaire outlook où il est en vbs.

Voici le code testé :
----------------------------
Sub exportVersExcel_Click()

Set objExcelApp = Application.CreateObject("Excel.Application")
Set objExcelBook = objExcelApp.Workbooks.Open _
("\Server03annuaireDemande_Ouverture_Compte.xls")
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")
objExcelSheet.Activate


Set objTextBox_NomBenef = objExcelSheet.OLEObjects("TextBox_NomBenef")
objTextBox_NomBenef.Object.value = Item.LastName

objExcelApp.Application.Visible = True

End Sub
-------------------------------


"papou" <cestpasbon@çanonplus> a écrit dans le message de news:

Bonjour
Le code est placé dans le formulaire, c'est du vbscript.
Le code est donc exécuté à partir d'Outlook ?


Voici le test effectué :
Sub testons()
Dim objExcel, objExcelBook, objExcelSheet, objOleTxtBx As Object
Set objExcel = CreateObject("Excel.Application")
Set objExcelBook = objExcel.Workbooks.Open _
("C:Documents and SettingspapouMes
documentsAssistancempfetest01062006.xls")
objExcel.Visible = True
Set objExcelSheet = objExcelBook.Worksheets("Feuil1")
Set objOleTxtBx = objExcelSheet.OLEObjects("TextBox_PrenomBenef")
objOleTxtBx.Object.Value = "zozo"
End Sub

Cordialement
Pascal

"philippe" de news:
Bonsoir,

Le code est lancé par un click sur un bouton dans un formulaire Outlook
Le code est placé dans le formulaire, c'est du vbscript.

Peux tu me montrer le code que tu as essayé en entier ?
Tu n'as peut être pas créé l'objet objExcelSheet comme moi.

Cordialement,
Philipe


Re
Tu n'as pas dit comment tu lances ce code ?
Mais ce code avec les modifis apportées et exécuté dpuis Outlook ou
Word
fonctionne parfaitement pour moi.
S'il s'agit d'un script pur (fichier .VBS), essaie d'utiliser la
valeur
d'index des deux objets :
Set objOleTxtBx1 = objExcelSheet.OLEObjects(1)

Cordialement
Pascal

"philippe" message de
news:
VBScript ne semble pas aimer les déclarations où l'on type les
variables,
il
retourne une erreur.

J'ai essayé en ajoutant une étape sur le modèle que tu m'as suggéré.
Créer l'objet d'abord,
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")

Manipuler sa valeur ensuite
objOleTxtBx.Object.Value = Item.FirstName

Mais ça donne le même résultat !.


Je continue à chercher,
Merci,
Philippe

Set objExcelApp =
Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")






Bonjour
Déclare les objets textbox dans ton script et modifie comme ceci :
Dim objExcel, objExcelBook, objExcelSheet
'.....
Dim objOleTxtBx1 As Object
Dim objOleTxtBx1 As Object
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")
objOleTxtBx.Object.Value = Item.FirstName
Set objOleTxtBx2 = objExcelSheet.OLEObjects("TextBox_NomBenef")
objOleTxtBx2.Object.Value = Item.LastName
'.....

Cordialement
Pascal

"philippe" message
de
news:
Bonjour,
J'ai un script dans outlook qui doit écrire dans deux contrôles
actives
x
sur une feuille excel.
Depuis outlook j'arrive a écrire dans des cellules excel (voir le
code
ci-dessous).
Dans excel, pas de pb pour écrire dans les controle active x.
Mais en vbs depuis outlook, je sèche.

Quelqu'un a t il une idée ?
Merci d'avance,
Philippe

Sub exportVersExcel_Click()

Set objExcelApp =
Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")
objExcelSheet.Activate

' ca ca marche :
objExcelSheet.range("J12").value = Item.LastName
objExcelSheet.range("J14").value = Item.CompanyName

' ca ça ne donne rien :
objExcelSheet.OLEObjects("TextBox_PrenomBenef").Object.value >>>>> >> > Item.FirstName
objExcelSheet.OLEObjects("TextBox_NomBenef").Object.value >>>>> >> > Item.LastName

' et ça, ça donne une erreur :
with sheets("DemandeOuverture")
OLEObjects("TextBox_PrenomBenef").Object.value = Item.FirstName
OLEObjects("TextBox_NomBenef").Object.value = Item.LastName
end with

objExcelApp.Application.Visible = True

End Sub




























Michel Pierron
Le #3699131
Re Philippe;
Avec une boucle:

Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")
For i = 1 To 2
Info = objExcel.Choose(i, Item.FirstName, Item.LastName)
objExcelSheet.OLEObjects(i).Activate
objExcelSheet.OLEObjects(i).Object.Value = Info
Next
objExcelSheet.Cells(1,1).Activate

MP


"Philippe" e%23%
Merci Michel,
ça marche comme ça.

Crois tu qu'il y ait un moyen de "raffraichir" tous les contrôle d'un coup
?

Philippe

"Michel Pierron"
Bonjour Philippe;
Je pense qu'il s'agit d'un problème de rafraîchissement d'écran peut être
lié à la version d'Excel utilisée.
Tu peux contourner le problème en activant préalablement le contrôle
avant d'y inscrire une valeur:

objExcelSheet.OLEObjects("TextBox_PrenomBenef").Activate
objExcelSheet.OLEObjects("TextBox_PrenomBenef").Object.value =
Item.FirstName
objExcelSheet.Cells(1, 1).Activate

MP


"Philippe"
Merci Papou,

En y regardant de plus près, je me rend compte que la valeur a bien été
affectée dans le textBox :
En regardant les propriétés du text box dans Excel, j'ai bien le nom de
mon contact dans les champs "Text" et "Vaue".
Donc on peut dire que ça marche.

Le "problème", est que cette valeur n'est pas visible / affichée dans le
contrôle tel qu'il apparait à l'utilisateur.
C'est vraiment bizarre. Un peu comme si après avoir programmatiquement
modifié la valeur du contrôle, il fallait modifier une autre propriété
qui est ce qui est affiché dans le contrôle. Ou bien comme si il falait
"rafraichir" le contrôle.
Bizarrement, la même méthode modifie et affiche quand elle est utilisée
dans un module vba excel.

Ici le code est exécuté depuis un formulaire outlook où il est en vbs.

Voici le code testé :
----------------------------
Sub exportVersExcel_Click()

Set objExcelApp = Application.CreateObject("Excel.Application")
Set objExcelBook = objExcelApp.Workbooks.Open _
("\Server03annuaireDemande_Ouverture_Compte.xls")
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")
objExcelSheet.Activate


Set objTextBox_NomBenef = objExcelSheet.OLEObjects("TextBox_NomBenef")
objTextBox_NomBenef.Object.value = Item.LastName

objExcelApp.Application.Visible = True

End Sub
-------------------------------


"papou" <cestpasbon@çanonplus> a écrit dans le message de news:

Bonjour
Le code est placé dans le formulaire, c'est du vbscript.
Le code est donc exécuté à partir d'Outlook ?


Voici le test effectué :
Sub testons()
Dim objExcel, objExcelBook, objExcelSheet, objOleTxtBx As Object
Set objExcel = CreateObject("Excel.Application")
Set objExcelBook = objExcel.Workbooks.Open _
("C:Documents and SettingspapouMes
documentsAssistancempfetest01062006.xls")
objExcel.Visible = True
Set objExcelSheet = objExcelBook.Worksheets("Feuil1")
Set objOleTxtBx = objExcelSheet.OLEObjects("TextBox_PrenomBenef")
objOleTxtBx.Object.Value = "zozo"
End Sub

Cordialement
Pascal

"philippe" de news:
Bonsoir,

Le code est lancé par un click sur un bouton dans un formulaire
Outlook
Le code est placé dans le formulaire, c'est du vbscript.

Peux tu me montrer le code que tu as essayé en entier ?
Tu n'as peut être pas créé l'objet objExcelSheet comme moi.

Cordialement,
Philipe


Re
Tu n'as pas dit comment tu lances ce code ?
Mais ce code avec les modifis apportées et exécuté dpuis Outlook ou
Word
fonctionne parfaitement pour moi.
S'il s'agit d'un script pur (fichier .VBS), essaie d'utiliser la
valeur
d'index des deux objets :
Set objOleTxtBx1 = objExcelSheet.OLEObjects(1)

Cordialement
Pascal

"philippe" message de
news:
VBScript ne semble pas aimer les déclarations où l'on type les
variables,
il
retourne une erreur.

J'ai essayé en ajoutant une étape sur le modèle que tu m'as
suggéré.
Créer l'objet d'abord,
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")

Manipuler sa valeur ensuite
objOleTxtBx.Object.Value = Item.FirstName

Mais ça donne le même résultat !.


Je continue à chercher,
Merci,
Philippe

Set objExcelApp =
Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")






Bonjour
Déclare les objets textbox dans ton script et modifie comme ceci :
Dim objExcel, objExcelBook, objExcelSheet
'.....
Dim objOleTxtBx1 As Object
Dim objOleTxtBx1 As Object
Set objOleTxtBx1 = objExcelSheet.OLEObjects("TextBox_PrenomBenef")
objOleTxtBx.Object.Value = Item.FirstName
Set objOleTxtBx2 = objExcelSheet.OLEObjects("TextBox_NomBenef")
objOleTxtBx2.Object.Value = Item.LastName
'.....

Cordialement
Pascal

"philippe" message
de
news:
Bonjour,
J'ai un script dans outlook qui doit écrire dans deux contrôles
actives
x
sur une feuille excel.
Depuis outlook j'arrive a écrire dans des cellules excel (voir
le code
ci-dessous).
Dans excel, pas de pb pour écrire dans les controle active x.
Mais en vbs depuis outlook, je sèche.

Quelqu'un a t il une idée ?
Merci d'avance,
Philippe

Sub exportVersExcel_Click()

Set objExcelApp =
Item.Application.CreateObject("Excel.Application")
objExcelApp.Workbooks.Open
("\ServerannuaireDemande_Ouverture_Compte.xls")
Set objExcelBook = objExcelApp.ActiveWorkbook
Set objExcelSheets = objExcelBook.Worksheets
Set objExcelSheet = objExcelBook.Sheets("DemandeOuverture")
objExcelSheet.Activate

' ca ca marche :
objExcelSheet.range("J12").value = Item.LastName
objExcelSheet.range("J14").value = Item.CompanyName

' ca ça ne donne rien :
objExcelSheet.OLEObjects("TextBox_PrenomBenef").Object.value >>>>>> >> > Item.FirstName
objExcelSheet.OLEObjects("TextBox_NomBenef").Object.value >>>>>> >> > Item.LastName

' et ça, ça donne une erreur :
with sheets("DemandeOuverture")
OLEObjects("TextBox_PrenomBenef").Object.value = Item.FirstName
OLEObjects("TextBox_NomBenef").Object.value = Item.LastName
end with

objExcelApp.Application.Visible = True

End Sub
































Publicité
Poster une réponse
Anonyme