Probleme de presse-papiers
Le
Alain
Bonjour,
J'utilise une formulaire principal qui compte quelques sous-formulaires.
Je désire copier le contenu de certains contrôles texte vers le
presse-papiers. Pour les champs du formulaire principal, il n'y a pas
de problème. Mais je ne réussis pas à copier les valeurs des contrôles
du sous-formulaire. Pourtant le code ne génère pas de message d'erreur
et, à l'exécution, la valeur correcte est affichée lorsque le curseur
survole le nom du contrôle. Ce sont 4 contrôles texte.
Voici le code:
If txtMontantRecu.Value <> 0 Then
'- - ce champ du sous-formulaire est bien reconnu
'- - si sa valeur est 0, le code ne s'exécute pas.
If (CommandBars("Task Pane").Visible = False) Then
'- - affichage du Presse-papiers Office
Application.RunCommand acCmdOfficeClipboard
End If 'If (CommandBars
With Form_formPrincipal
'- - les deux valeurs sont copiées sans problème
'- - vers le presse papiers
With .txtNomFamille
.SetFocus
Application.RunCommand acCmdCopy
End With 'With .txtNomFamille
With .txtid
.SetFocus
Application.RunCommand acCmdCopy
End With 'With .txtid
End With 'With Form_formPrincipal
'- - retour au sous-formulaire
With txtMontantRecu
.SetFocus
'- - à l'exécution, la valeur valeur est correcte
' - - telle qu'indiquée quand on survole
'- - avec le curseur en mode debug
'- - et elle a été vérifiée ci-dessus
Application.RunCommand acCmdCopy
'- - mais aucune valeur n'est envoyée au presse-papiers
End With 'With .txtMontantRecu
With txtIdActivite
.SetFocus
.SelStart = 1
.SelLength = Len(.Text)
Application.RunCommand acCmdCopy
'- - aucune valeur n'est envoyée au presse-papiers
End With 'With .txtidActivite
RunCommand acCmdSaveRecord
Else 'If txtMontantRecu.Text = 0
'- - cette vérification fonctionne bien
MsgBox ("Aucun montant inscrit")
End If 'If txtMontantRecu.Text
End Sub
Merci de vos suggestions
Alain
J'utilise une formulaire principal qui compte quelques sous-formulaires.
Je désire copier le contenu de certains contrôles texte vers le
presse-papiers. Pour les champs du formulaire principal, il n'y a pas
de problème. Mais je ne réussis pas à copier les valeurs des contrôles
du sous-formulaire. Pourtant le code ne génère pas de message d'erreur
et, à l'exécution, la valeur correcte est affichée lorsque le curseur
survole le nom du contrôle. Ce sont 4 contrôles texte.
Voici le code:
If txtMontantRecu.Value <> 0 Then
'- - ce champ du sous-formulaire est bien reconnu
'- - si sa valeur est 0, le code ne s'exécute pas.
If (CommandBars("Task Pane").Visible = False) Then
'- - affichage du Presse-papiers Office
Application.RunCommand acCmdOfficeClipboard
End If 'If (CommandBars
With Form_formPrincipal
'- - les deux valeurs sont copiées sans problème
'- - vers le presse papiers
With .txtNomFamille
.SetFocus
Application.RunCommand acCmdCopy
End With 'With .txtNomFamille
With .txtid
.SetFocus
Application.RunCommand acCmdCopy
End With 'With .txtid
End With 'With Form_formPrincipal
'- - retour au sous-formulaire
With txtMontantRecu
.SetFocus
'- - à l'exécution, la valeur valeur est correcte
' - - telle qu'indiquée quand on survole
'- - avec le curseur en mode debug
'- - et elle a été vérifiée ci-dessus
Application.RunCommand acCmdCopy
'- - mais aucune valeur n'est envoyée au presse-papiers
End With 'With .txtMontantRecu
With txtIdActivite
.SetFocus
.SelStart = 1
.SelLength = Len(.Text)
Application.RunCommand acCmdCopy
'- - aucune valeur n'est envoyée au presse-papiers
End With 'With .txtidActivite
RunCommand acCmdSaveRecord
Else 'If txtMontantRecu.Text = 0
'- - cette vérification fonctionne bien
MsgBox ("Aucun montant inscrit")
End If 'If txtMontantRecu.Text
End Sub
Merci de vos suggestions
Alain

Poser une question


Bonjour,
J'ai trouvé! La solution, mais pas l'explication.
Il suffit d'envoyer au presse-papiers les données du sous-formulaire
AVANT d'envoyer les données du formulaire principal.
Aucune idée de la raison, cependant... Peut-être le savez-vous?
Alain.