Userform

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
heureux-oli
Le #1769267
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"
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



Jean-Paul
Le #1769258
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





heureux-oli
Le #1769257
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" 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






Jean-Paul
Le #1769256
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.



Publicité
Poster une réponse
Anonyme