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

Userform

4 réponses
Avatar
Jean-Paul
Bonsoir,

J'ai créé un Userform avec une CheckBox et un bouton Valider puis
j'ai écris la macro suivante :

Sub essai()

Dim DocumentActuel As String
Dim DocumentNouveau As String

DocumentActuel = ActiveDocument.Name

Documents.Add

DocumentNouveau = ActiveDocument.Name
ActiveDocument.SaveAs ("NouveauDocument.doc")

UserForm1.Show
End Sub

et ensuite sur click du bouton valider :

Private Sub CommandButton1_Click()

Dim contenu As String
contenu = Me.CheckBox1.Value
Documents(DocumentActuel).Activate
If contenu = vrai Then
Selection.WholeStory
Selection.Copy
Documents(DocumentNouveau).Activate
Selection.Paste
End If
Me.hide

End Sub

Mais la macro s'arrête sur : Documents(DocumentActuel).Activate
avec pour motif : le membre de la collection n'existe pas.

Pouvez-vous m'aider ?

Merci
Jean-Paul

4 réponses

Avatar
heureux-oli
Bonsoir,

Word te donne la raison! la variable n'existe pas.

La portée de ta variable s'arrête à la Sub !

Essaie ceci

Documents("NouveauDocument.doc").Activate

à la place de

Documents(DocumentNouveau).Activate



--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"Jean-Paul" a écrit dans le message de news:

Bonsoir,

J'ai créé un Userform avec une CheckBox et un bouton Valider puis
j'ai écris la macro suivante :

Sub essai()

Dim DocumentActuel As String
Dim DocumentNouveau As String

DocumentActuel = ActiveDocument.Name

Documents.Add

DocumentNouveau = ActiveDocument.Name
ActiveDocument.SaveAs ("NouveauDocument.doc")

UserForm1.Show
End Sub

et ensuite sur click du bouton valider :

Private Sub CommandButton1_Click()

Dim contenu As String
contenu = Me.CheckBox1.Value
Documents(DocumentActuel).Activate
If contenu = vrai Then
Selection.WholeStory
Selection.Copy
Documents(DocumentNouveau).Activate
Selection.Paste
End If
Me.hide

End Sub

Mais la macro s'arrête sur : Documents(DocumentActuel).Activate
avec pour motif : le membre de la collection n'existe pas.

Pouvez-vous m'aider ?

Merci
Jean-Paul



Avatar
Jean-Paul
Bonsoir heureux-oli et merci,

Finalement j'ai procédé comme suit et cela semble fonctionner :

Sub essai()
UserForm1.Show
End Sub

Private Sub CommandButton1_Click()
Dim DocumentActuel As String
Dim DocumentNouveau As String

DocumentActuel = ActiveDocument.Name

Documents.Add
ActiveDocument.SaveAs ("NouveauDocument.doc")
DocumentNouveau = ActiveDocument.Name


Dim contenu As String
contenu = Me.CheckBox1.Value
Documents(DocumentActuel).Activate
If contenu = True Then
Selection.WholeStory
Selection.Copy
Documents(DocumentNouveau).Activate
Selection.Paste
End If
Me.hide

End Sub


Jean-Paul


Bonsoir,

Word te donne la raison! la variable n'existe pas.

La portée de ta variable s'arrête à la Sub !

Essaie ceci

Documents("NouveauDocument.doc").Activate

à la place de

Documents(DocumentNouveau).Activate





Avatar
heureux-oli
Bonsoir à nouveau.

Comme je l'ai expliqué plus tôt, tout est un question dé portée, ou de durée
de vie.
Si tu déclare un objet dans une procédure, il n'est plus disponible dans une
autre, il ne vit que dans cette procédure.
Tu peux passer cet objet en argument, mais dans ce cas précis c'est pas
possible.
La solution que tu as choisis est une solution, déclarer et affecter l'objet
où tu en as besoin.

--
Heureux-oli
http://heureuxoli.developpez.com/

----------------------------------------------------------------------------------

"Jean-Paul" a écrit dans le message de news:
ub3%
Bonsoir heureux-oli et merci,

Finalement j'ai procédé comme suit et cela semble fonctionner :

Sub essai()
UserForm1.Show
End Sub

Private Sub CommandButton1_Click()
Dim DocumentActuel As String
Dim DocumentNouveau As String

DocumentActuel = ActiveDocument.Name

Documents.Add
ActiveDocument.SaveAs ("NouveauDocument.doc")
DocumentNouveau = ActiveDocument.Name


Dim contenu As String
contenu = Me.CheckBox1.Value
Documents(DocumentActuel).Activate
If contenu = True Then
Selection.WholeStory
Selection.Copy
Documents(DocumentNouveau).Activate
Selection.Paste
End If
Me.hide

End Sub


Jean-Paul


Bonsoir,

Word te donne la raison! la variable n'existe pas.

La portée de ta variable s'arrête à la Sub !

Essaie ceci

Documents("NouveauDocument.doc").Activate

à la place de

Documents(DocumentNouveau).Activate






Avatar
Jean-Paul
Merci
Jean-Paul

Bonsoir à nouveau.

Comme je l'ai expliqué plus tôt, tout est un question dé portée, ou de durée
de vie.
Si tu déclare un objet dans une procédure, il n'est plus disponible dans une
autre, il ne vit que dans cette procédure.
Tu peux passer cet objet en argument, mais dans ce cas précis c'est pas
possible.
La solution que tu as choisis est une solution, déclarer et affecter l'objet
où tu en as besoin.