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

XL 2013 Contrôle wordpad via VBA

Haso54

XLDnaute Nouveau
Bonjour à tous,
Je suis Haso54 31 ans, nouveau sur ce forum

Mon problème est le suivant :

J'aimerais via VBA contrôler wordpad.
Tout les jours j'ai une base de donner différentes (400 lignes en moyenne) qui se mette à jour automatiquement via SQL en colonne A.

Ma question est il possible de dire à vba de copier et saisir des touches dans wordpad ?
Désolé je ne peux avoir de PJ car c'est un fichier qui est sur mon lieu de travail

En gros
- Copier la colonne A de mon fichier excel
- Ouvrir Wordpad
- Touche CTRL + A (sélectionner ancien contenu)
- Touche SUPPR (supprimer le contenu)
- Touche CTRL + V ( coller nouveau contenu)
- Touche CTRL + S (enregistrer)
- Touche ALT + F4 (fermer wordpad)

Merci d'avance de prendre la peine de me lire
 

Staple1600

XLDnaute Barbatruc
Re

Cela donne quoi avec cette macro?
VB:
Sub Export_Txt()
Dim strPath
strPath = ThisWorkbook.Path & "\"
Application.DisplayAlerts = False
Sheets(1).Copy
ActiveWorkbook.SaveAs Filename:=strPath & "testScript.txt", FileFormat:=xlText
ActiveWorkbook.Close True
End Sub
 

Haso54

XLDnaute Nouveau
C'est exactement ce que je souhaite merci beaucoup.
Cela dit en ouvrant le fichier je constate qu'il a rajouter des guillemet supplémentaire lorsqu'il y a des parenthésés
"Type(""0800562"")" alors que c'est
Type("0800561")
 

Haso54

XLDnaute Nouveau
Re

voici le code que j'ai modifié pour avoir le résultat que je souhaite.
ActiveWorkbook.SaveAs Filename:=strPath & "testScript.txt", FileFormat:=xlTextPrinter, CreateBackup:=False
et comme par magie plus de guillemets
 

patricktoulon

XLDnaute Barbatruc
Bonsoir a tous
pour info il est possible de récupérer une colonne ou plage de cellule au format text
et même le retravailler avant de l'enregistrer dans un texte
un petit exemple
facon patosch

VB:
Sub test()
    Dim plage As Range, EXT As String, chemin As String
    Set plage = Range("A1:C10")' preciser la plage ici (activesheet.usedrange pour tout la partie utilisée)
    chemin = "C:\Users\" & Environ("username") & "\Desktop\" & Replace(plage.Address, ":", "-")
    EXT = ".csv"
    RangeToFichierTexT plage    , ";", chemin, EXT'si pas de chemin précisé c'est le desktop de l'user par défaut
   'RangeToFichierTexT plage    , separateur de colonne , chemin, EXTENTION
End Sub

Function RangeToFichierTexT(Rng, Optional separateur As String = ";", Optional chemin As String = "", Optional EXT As String = ".csv")
    Dim T, clearall, fichier As String
    If chemin = "" Then chemin = "C:\Users\" & Environ("username") & "\Desktop\" & Replace(Rng.Address, ":", "-")
    With CreateObject("htmlfile")
        clearall = .parentwindow.clipboardData.setData("Text", "")    'on vide le clipboard au cas ou il y aurait quelque chose
        Rng.Copy    'on copy la plage tout simplement
        'on recupere le texte de la plage dans le cliboard on fait un replace vbtab par le separateur en parametre injecté dans la fonction";" par defaut
        T = Replace(Replace(.parentwindow.clipboardData.GetData("TEXT"), vbTab, separateur), vbCrLf, separateur & vbCrLf): End With
    Application.CutCopyMode = False    'on relache la plage copiée
    'on créé le ficher avec open for....
    fichier = chemin & EXT
    x = FreeFile
    Open fichier For Output As #x
    Print #x, T
    Close #x
End Function
 

Discussions similaires

Réponses
8
Affichages
495
Réponses
2
Affichages
657
  • Question
Microsoft 365 VBA
Réponses
3
Affichages
446
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…