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

Ecrire depuis un VBScript dans un controle active x

10 réponses
Avatar
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
("\\Server\annuaire\Demande_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

10 réponses

Avatar
papou
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" a écrit dans le 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


Avatar
papou
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" a écrit dans le 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






Avatar
philippe
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" a écrit dans le 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







Avatar
papou
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" a écrit dans le 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" a écrit dans le 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









Avatar
philippe
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" a écrit dans le 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" a écrit dans le 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














Avatar
papou
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" a écrit dans le message 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" a écrit dans le 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" a écrit dans le
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
















Avatar
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" a écrit dans le message 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" a écrit dans le 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" a écrit dans le
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




















Avatar
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" a écrit dans le message de news:

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" a écrit dans le message
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" a écrit dans le 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" a écrit dans le
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
























Avatar
Philippe
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" a écrit dans le message de news:

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" a écrit dans le message de news:

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" a écrit dans le message
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" a écrit dans le
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" a écrit dans le
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




























Avatar
Michel Pierron
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" a écrit dans le message de news:
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" a écrit dans le message de news:

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" a écrit dans le message de news:

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" a écrit dans le message
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" a écrit dans le
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" a écrit dans le
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