Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Commande Displayalerts ne fonctionne pas

doudom

XLDnaute Nouveau
Bonsoir,

J'ai un code qui me permets de copier des cellules dans le bloc note.
Par contre, je souhaite enregistrer a chaque fois par dessus, mais je n'arrive pas à éviter le message 'fichier existe deja.......)

J'ai essayé Application.DisplayAlerts = False à plusieurs endroits, mais j'ai toujours l'avertissement.

Mon code ci-dessous

Merci d'avance pour l'aide

Doudom



Sub BlocNote()

range("EQ3:EU22").Copy

AppActivate Shell("C:\windows\Notepad.exe", 1)

SendKeys "^v"

SendKeys "^s"
Application.DisplayAlerts = False

SendKeys "C:\Users\XXX\Documents\test.txt"
' Comme si on cliquait sur OK :
SendKeys "{ENTER}"

Application.DisplayAlerts = True

End Sub
 

GeoTrouvePas

XLDnaute Impliqué
Re : Commande Displayalerts ne fonctionne pas

Bonsoir,

Il y a des solutions plus simples et bien plus rapides pour injecter du texte dans le bloc notes. Voici un exemple :

Code:
Sub InjecterTxt
    Open C:\Users\XXX\Documents\test.txt For Append As #1
    Print #1, "Mon message à injecter"
    Close #1
End Sub

Avec cette soluce, tu n'as plus de messages affichés et plus besoin d'utiliser SendKeys.

Bonne soirée.

N.B. : Penses à utiliser la balise "code" dans te messages.
 

doudom

XLDnaute Nouveau
Re : Commande Displayalerts ne fonctionne pas

Bonsoir,

Merci pour la réponse. Ton code me renvoi une erreur de syntaxe

Je cherche juste à forcer la sauvegarde, dans le bloc note sans avoir à confirmer, suite au message "le fichier existe deja..."

Bonne soirée
Doudom

PS : je penserai à la balise pour la prochaine fois
 

GeoTrouvePas

XLDnaute Impliqué
Re : Commande Displayalerts ne fonctionne pas

Oups.....
Il manquait juste les guillemets dans :
Code:
Open "C:\Users\XXX\Documents\test.txt" For Append As #1

Après pour forcer la sauvegarde du bloc note je n'en ai aucune idée.
Mais si tu as beaucoup de cellules à recopier dans ton bloc note, tu devrais essayer la méthode décrite ci - dessus. L'injection se fait de manière instantanée et le résultat est bien plus fiable qu'avec l'utilisation de sendkey.

Si tu as les cellules A1 à A100 à recopier, tu peux même la transformer de cette façon pour avoir un code rapide, efficace et fiable :


Code:
Sub RecopieCells
    For i = 1 to 100
        Call InjecterTxt(Cells(i, 1))
    Next
End Sub

Sub InjecterTxt(MonMessage as String)
    Open "C:\Users\XXX\Documents\test.txt" For Append As #1
    Print #1, MonMessage
    Close #1
End Sub
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…