Copie d'une colonne dans NotePad

Bonjour à tous,

J'ai un p'tit souci avec Excel :

J'ai un fichier, le xls, qui comprend des données dont j'ai besoin qu'elles soient copiées à intervalles réguliers dans un fichier txt, placé sur mon bureau.

Alors je peux le faire à la main, mais l'idée c'est que cela se fasse tout seul, soit toutes les x minutes, soit dès qu'une cellule de la colonne voulue (la colonne S du fichier xls en l’occurrence) soit remplie, afin d'obtenir un résultat comme dans le txt joint.

Je sais que c'est faisable en vba, mais je n'arrive pas à adapter ce que je trouve sur le net sur mon exemple.

Quelqu'un aurait-il une solution ?

Merci d'avance !

11tableau-prod.xlsx (62.72 Ko)

Salut Kevin,

un debut de code que tu peux améliorer

Option Explicit

Sub OpenNotepadWithTempFileWithClipboardContent()
    Dim rngData As Range
    Dim strData As String
    Dim strTempFile As String

    Set rngData = Sheets("PROD").Range("S2:S6")
    rngData.Copy

    With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .GetFromClipBoard
        strData = .GetText
    End With

    strTempFile = "C:\......\remontees_tabloprod.txt" ' adapter le chemin
    With CreateObject("Scripting.FileSystemObject")
        .CreateTextFile(strTempFile, True).Write strData
    End With

    Shell "cmd /c ""notepad.exe """ & strTempFile & """", vbHide

End Sub

Salut m3ellem1 !

Merci beaucoup pour ta réponse, c'est (presque) parfait !

Presque, car dans l'idéal, la zone à copier serait de la cellule S3 (toujours la même) à Sxxx

Du coup, ton

 Set rngData = Sheets("PROD").Range("S2:S6")
    rngData.Copy

Deviendait

 Set rngData = Sheets("PROD").Range("S3:S")
    rngData.Copy

?

Tout autre type de caractère et de chaînage générerait une erreur. Sauf que quand je mets Range("S3:S") j'ai une erreur.

Ah et aussi, pour bien profiter^^ si après la copie, il pouvait y avoir une commande pour fermer le notepad tout en enregistrant, ce serait le summum (je sais faire fermer des fichiers excel, mais pas le reste)

Encore merci !

essaie comme ca

Set rngData = Sheets("PROD").Range("S3:S" & Sheets("PROD").Range("S" & Rows.Count).End(xlUp).Row)
rngData.Copy

pour la deuxième demande ...... à venir

essaie comme ca

Set rngData = Sheets("PROD").Range("S3:S" & .Range("S" & Rows.Count).End(xlUp).Row)
rngData.Copy

Super, merci ! Ca veut pas rentrer, c'est pas la première fois que cela m'arrive^^

pour la deuxième demande ...... à venir

Pas de soucis, c'est déjà beaucoup

à tester

Option Explicit

Sub OpenNotepadWithTempFileWithClipboardContent()
    Dim rngData As Range
    Dim strData As String
    Dim strTempFile As String
    Dim vPID As Variant

    Set rngData = Sheets("PROD").Range("S3:S" & Sheets("PROD").Range("S" & Rows.Count).End(xlUp).Row)
    rngData.Copy
    With CreateObject("New:{1C3B4210-F441-11CE-B9EA-00AA006B1A69}")
        .GetFromClipBoard
        strData = .GetText
    End With

    strTempFile = "C:\......\remontees_tabloprod.txt" ' adapter le chemin
    With CreateObject("Scripting.FileSystemObject")
        .CreateTextFile(strTempFile, True).Write strData
    End With

    vPID = Shell("notepad.exe " & strTempFile & "", vbNormalFocus)

    Call Shell("TaskKill /F /PID " & CStr(vPID), vbHide)

End Sub

Je teste ça demain (suis parti entre temps) et je reviens vers toi

Merci encore, et bonne soirée !

Je teste ça demain (suis parti entre temps) et je reviens vers toi

Merci encore, et bonne soirée !

à toi aussi merci

Bonjour m3ellem1

Cela marche du tonnerre !

Bonjour m3ellem1 !

Un immeeeeeense merci, ça fonctionne au poil, tout ce dont j'avais besoin !

Je note en résolu !

Bonne journée à toi

Rechercher des sujets similaires à "copie colonne notepad"