OVH Cloud OVH Cloud

VBA nommer Userform

6 réponses
Avatar
philip
Bonjour,
Mon soucis actuel (un de plus) est le suivant :
je crée un userform de la façon suivante :
Dim Form as Object
Set Form Application.Workbook(NomBook).VBProject.VBComponents.Add(3)

Jusque là, tout va bien. Où ça se corse (sympa les Corses), c'est lorsque je
veux renommer ce UserForm, que le système a nommé UserForm1 ou 2...
La commande Form.Name="NomForm" produit le message d'erreur :

Erreur d'exécution '75' : Objet spécifié introuvable.

La vie est dure face à ce pb que j'ai abordé sous d'innombrable angles et
dont je ne trouve pas la solution !
Merci pour votre aide

6 réponses

Avatar
Vincnet.
Salut...

Le code suivant tourne à merveille :
Sub test()

Dim Form As Object
Set Form = ThisWorkbook.VBProject.VBComponents.Add(3)

Form.Name = "NomForm"

End Sub

Sauf si j'ai déjà dans mon projet un userform nommé "NomForm" auquel cas
l'erreur 75 est générée... (l'objet machin est introuvable)


--
A+

V.



Bonjour,
Mon soucis actuel (un de plus) est le suivant :
je crée un userform de la façon suivante :
Dim Form as Object
Set Form Application.Workbook(NomBook).VBProject.VBComponents.Add(3)

Jusque là, tout va bien. Où ça se corse (sympa les Corses), c'est lorsque je
veux renommer ce UserForm, que le système a nommé UserForm1 ou 2...
La commande Form.Name="NomForm" produit le message d'erreur :

Erreur d'exécution '75' : Objet spécifié introuvable.

La vie est dure face à ce pb que j'ai abordé sous d'innombrable angles et
dont je ne trouve pas la solution !
Merci pour votre aide


Avatar
philip
Bonjour JD
Chez moi ça ne fonctionne pas. Peut-être à cause de la version d'Excel, j'ai
Excel2000 ?


Salut,

Comprend pas, ca fonctionne bien chez moi (Office 2003)
j'ai essayé ca:

Sub toto()
Dim Form As Object

Set Form = ThisWorkbook.VBProject.VBComponents.Add(3)
Form.Name = "TOTO"
End Sub

@++

"philip" a écrit dans le message de news:
Bonjour,
Mon soucis actuel (un de plus) est le suivant :
je crée un userform de la façon suivante :
Dim Form as Object
Set Form Application.Workbook(NomBook).VBProject.VBComponents.Add(3)

Jusque là, tout va bien. Où ça se corse (sympa les Corses), c'est lorsque je
veux renommer ce UserForm, que le système a nommé UserForm1 ou 2...
La commande Form.Name="NomForm" produit le message d'erreur :

Erreur d'exécution '75' : Objet spécifié introuvable.

La vie est dure face à ce pb que j'ai abordé sous d'innombrable angles et
dont je ne trouve pas la solution !
Merci pour votre aide




Avatar
philip
Bonjour Vincnet
Chez moi, ça ne fonctionne pourtant pas et il n'y a pas de Userform qui a
déjà le même nom.


Salut...

Le code suivant tourne à merveille :
Sub test()

Dim Form As Object
Set Form = ThisWorkbook.VBProject.VBComponents.Add(3)

Form.Name = "NomForm"

End Sub

Sauf si j'ai déjà dans mon projet un userform nommé "NomForm" auquel cas
l'erreur 75 est générée... (l'objet machin est introuvable)


--
A+

V.



Bonjour,
Mon soucis actuel (un de plus) est le suivant :
je crée un userform de la façon suivante :
Dim Form as Object
Set Form Application.Workbook(NomBook).VBProject.VBComponents.Add(3)

Jusque là, tout va bien. Où ça se corse (sympa les Corses), c'est lorsque je
veux renommer ce UserForm, que le système a nommé UserForm1 ou 2...
La commande Form.Name="NomForm" produit le message d'erreur :

Erreur d'exécution '75' : Objet spécifié introuvable.

La vie est dure face à ce pb que j'ai abordé sous d'innombrable angles et
dont je ne trouve pas la solution !
Merci pour votre aide




Avatar
philip
Effectivement, ça fonctionne, surtout en mettant WorkBooks au lieu de
Workbook. Fausse allerte. Toutes mes excuses


Bonjour JD
Chez moi ça ne fonctionne pas. Peut-être à cause de la version d'Excel, j'ai
Excel2000 ?


Salut,

Comprend pas, ca fonctionne bien chez moi (Office 2003)
j'ai essayé ca:

Sub toto()
Dim Form As Object

Set Form = ThisWorkbook.VBProject.VBComponents.Add(3)
Form.Name = "TOTO"
End Sub

@++

"philip" a écrit dans le message de news:
Bonjour,
Mon soucis actuel (un de plus) est le suivant :
je crée un userform de la façon suivante :
Dim Form as Object
Set Form Application.Workbook(NomBook).VBProject.VBComponents.Add(3)

Jusque là, tout va bien. Où ça se corse (sympa les Corses), c'est lorsque je
veux renommer ce UserForm, que le système a nommé UserForm1 ou 2...
La commande Form.Name="NomForm" produit le message d'erreur :

Erreur d'exécution '75' : Objet spécifié introuvable.

La vie est dure face à ce pb que j'ai abordé sous d'innombrable angles et
dont je ne trouve pas la solution !
Merci pour votre aide






Avatar
philip
Rebonjour Vincnet
Effectivement, ça a fonctionné aussi chez moi . Mais seulement deux fois. A
partir de la troisième, plus du tout. Par exemple, en supprimant le UserForm
créé puis en relançant la procédure, il y a bien création d'un nouveau
UserForm mais impossible de le nommer. Il y a un truc qui m'échappe. Cela te
rappelle-t-il quelque chose ?
merci pour ton aide


Bonjour Vincnet
Chez moi, ça ne fonctionne pourtant pas et il n'y a pas de Userform qui a
déjà le même nom.


Salut...

Le code suivant tourne à merveille :
Sub test()

Dim Form As Object
Set Form = ThisWorkbook.VBProject.VBComponents.Add(3)

Form.Name = "NomForm"

End Sub

Sauf si j'ai déjà dans mon projet un userform nommé "NomForm" auquel cas
l'erreur 75 est générée... (l'objet machin est introuvable)


--
A+

V.



Bonjour,
Mon soucis actuel (un de plus) est le suivant :
je crée un userform de la façon suivante :
Dim Form as Object
Set Form Application.Workbook(NomBook).VBProject.VBComponents.Add(3)

Jusque là, tout va bien. Où ça se corse (sympa les Corses), c'est lorsque je
veux renommer ce UserForm, que le système a nommé UserForm1 ou 2...
La commande Form.Name="NomForm" produit le message d'erreur :

Erreur d'exécution '75' : Objet spécifié introuvable.

La vie est dure face à ce pb que j'ai abordé sous d'innombrable angles et
dont je ne trouve pas la solution !
Merci pour votre aide






Avatar
Vincnet.
Bonjour Philip !
Je n'ai pas vraiment d'explication, mais lorsque le fichier est enregistré
après la suppression du form incriminé, ça marche... Le code suivant marche
toujours (chez moi) :

Set form = Application.Workbooks(nombook).VBProject.VBComponents.Add(3)
On Error Resume Next
Application.Workbooks(nombook).VBProject.VBComponents.Remove _
Application.Workbooks(nombook).VBProject.VBComponents("NomForm")
Application.Workbooks(nombook).Save
On Error GoTo 0
form.Name = "NomForm"
Set form = Nothing

...

Chez toi, ça donne quoi ?

--
A+

V.



Rebonjour Vincnet
Effectivement, ça a fonctionné aussi chez moi . Mais seulement deux fois. A
partir de la troisième, plus du tout. Par exemple, en supprimant le UserForm
créé puis en relançant la procédure, il y a bien création d'un nouveau
UserForm mais impossible de le nommer. Il y a un truc qui m'échappe. Cela te
rappelle-t-il quelque chose ?
merci pour ton aide


Bonjour Vincnet
Chez moi, ça ne fonctionne pourtant pas et il n'y a pas de Userform qui a
déjà le même nom.


Salut...

Le code suivant tourne à merveille :
Sub test()

Dim Form As Object
Set Form = ThisWorkbook.VBProject.VBComponents.Add(3)

Form.Name = "NomForm"

End Sub

Sauf si j'ai déjà dans mon projet un userform nommé "NomForm" auquel cas
l'erreur 75 est générée... (l'objet machin est introuvable)


--
A+

V.



Bonjour,
Mon soucis actuel (un de plus) est le suivant :
je crée un userform de la façon suivante :
Dim Form as Object
Set Form Application.Workbook(NomBook).VBProject.VBComponents.Add(3)

Jusque là, tout va bien. Où ça se corse (sympa les Corses), c'est lorsque je
veux renommer ce UserForm, que le système a nommé UserForm1 ou 2...
La commande Form.Name="NomForm" produit le message d'erreur :

Erreur d'exécution '75' : Objet spécifié introuvable.

La vie est dure face à ce pb que j'ai abordé sous d'innombrable angles et
dont je ne trouve pas la solution !
Merci pour votre aide