IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Ouverture d'un fichier .csv par macros dans NotePad++ [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 6
    Points : 3
    Points
    3
    Par défaut Ouverture d'un fichier .csv par macros dans NotePad++
    Bonjour à tous.

    Voici mon problème:
    Je souhaite ouvrir par macro Excel un fichier csv dans NotePad++.
    Étant novice en vba, voici ce que j’arrive à faire pour le moment:
    Ouvrir Notepad++ par macro et y envoyer un fichier pré défini.

    Mais je souhaiterai avoir un fenêtre qui s'ouvre pour avoir le choix du fichier que je souhaite ouvrir avec Notepad++.

    Voici mon code actuel :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Sub NotePad()
    Dim s1
    Dim s
    Dim A
     
    s1 = Shell("C:\ProgramData\Microsoft\AppV\Client\Integration\8B21CF08-0C28-44FB-AC20-617539A63A28\Root\Notepad++\Notepad++.exe d:\Users\Desktop\Export_Import\fichier.csv", 1)
     
    AppActivate s
    SendKeys "^{o}"
    DoEvents
    SendKeys "^%{q}"
    DoEvents
     
    End Sub
    Si quelqu'un avait la gentillesse de m'aider se serait vraiment super.

    Merci d'avance.

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2013
    Messages
    3 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2013
    Messages : 3 617
    Points : 5 912
    Points
    5 912
    Par défaut
    Tu pourrais utiliser l'API ShellExecute

    À mettre dans un module.
    Tu peux ajouter des filtres au GetOpenFilename pour cibler certains types de fichiers (txt, csv,...)
    Et tu peux utiliser ChDrive et ChDir pour cibler un disque et un répertoire particulier (voir l'aide)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    #If VBA7 Then
        Public Declare PtrSafe Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
             ByVal hwnd As LongPtr, ByVal lpOperation As String, ByVal lpFile As String, _
             ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As LongPtr
    #Else
        Public Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" ( _
               ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _
               ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
    #End If
     
     
    Sub OuvrirNotepad()
        Dim Fichier
        Dim Ret As LongPtr
     
        Fichier = Application.GetOpenFilename()
        If Fichier = False Then Exit Sub
     
        Ret = ShellExecute(0, "Open", "notepad++.exe", Fichier, "", 0)
     
    End Sub
    MPi²

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour
    tu ouvre Notepad++ puis avec les key ^o tu ouvre le dialog d'ouverture de fichier je comprends pas très bien la

    que fait cette série de touche"^%q" dans Notepad ++?????

    que veux tu vraiment faire sur ce CSV ???
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup je vais tester ça...

  5. #5
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Je souhaite ouvrir Notepad++ pour modifier le séparateur ";" par un un séparateur "§§", séparateur demandé par un prestataire dans sa spec d'export de fichier csv, et je n'ai rien trouvé sur le net à ce sujet.
    Je n'arrive pas à le modifier directement dans Excel, la seul solution que j'ai trouvé c'est une macro pour remplacer le séparateur dans Notepad++.

    Les touches correspondent à l'appel de cette macro dans Notepad.

    je sais pas si je suis bien clair dans mes explications...

    Merci à vous c'est super de m'aider.

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    c'est sur quand ne précisant pas la finalité on a gagné du temps!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    Sub test()
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = False
        .Title = "Sélectionnez le fichier CSV à reconditionner!"
        .ButtonName = "Sélectionner"
        .InitialFileName = "C:\"
        .InitialView = msoFileDialogViewDetails
        .Filters.Clear
        .Filters.Add "Fuchier CSV", "*.CSV"
        If .Show - 1 Then
            For lngCount = 1 To .SelectedItems.Count
                txt = OuvrirFichier(.SelectedItems(lngCount))
                txt = Replace(txt, ";", "§§")
                SaveNewTxt .SelectedItems(lngCount), txt
                Exit For
            Next
        End If
    End With
    End Sub
    Private Function OuvrirFichier(Fichier)
    With CreateObject("Scripting.FileSystemObject")
        With .OpenTextFile(Fichier)
           OuvrirFichier = .ReadAll
            .Close
        End With
    End With
    End Function
    Private Sub SaveNewTxt(Fichier, txt)
    With CreateObject("Scripting.FileSystemObject")
        With .OpenTextFile(Fichier, 2, True)
            .Write txt
            .Close
        End With
    End With
    End Sub
    Dernière modification par Invité ; 30/03/2017 à 09h25.

  7. #7
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci beaucoup.

    Ça marche impec.

    Un grand merci a vous tous.


  8. #8
    Expert éminent sénior
    Avatar de Marc-L
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2013
    Messages
    9 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2013
    Messages : 9 468
    Points : 18 677
    Points
    18 677
    Par défaut
    Citation Envoyé par dysorthographie Voir le message
    c'est sur quand ne précisant pas la finalité on a gagné du temps!
    Salut Robert !

    Me doutant de l'inutilité de Notepad++ par code, la raison pour laquelle je ne suis pas intervenu !

    ___________________________________________________________________________________________________________
    Je suis Paris, London, Istanbul, Berlin, Nice, Bruxelles, Charlie, …
    C'est parce que la vitesse de la lumière est plus rapide que celle du son que tant de gens paressent brillants avant d'avoir l'air con ! (Thomas Boishardy)

  9. #9
    Invité
    Invité(e)
    Par défaut
    Bonjour Marc,
    Ideme
    Dernière modification par AlainTech ; 03/04/2017 à 00h42. Motif: Suppression de la citation inutile

  10. #10
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re la solution peut se presenter comme ceci
    re
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    txt = Replace(txt, ";", "§§")
    sérieux c'est pour faire ca ???!!!!!!!!

    heu... a tu déjà entendu parler de la fonction open de vba ??????????

    bon ben je t'en parle alors

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    sub replaceseparator()
        Dim laChaine As String, x, x2, fichier As String
        fichier = Application.GetOpenFilename()
        If fichier = "" Then Exit Sub
        x = FreeFile: x2 = FreeFile
        Open fichier For Binary Access Read As #x  'j'aurais pu utiliser "for input" mais c'est plus précis en terme de LOF avec binary acces read
        laChaine = String(LOF(x), " ")
        Get #x, , laChaine
        Close #x
        Open fichier For Output As #x2
        Print #x2, Replace(laChaine, ";", "$$")
        Close #x2
    End Sub
    voila ca n'ouvre rien tout ce fait en arriere plan tu n'a qua rouvrir ton fichier pour vérifier le travail est fait

    moi aussi je m'en doutais
    c'est bien pour ca que j'ai posé la question

    de toute façon que peut on faire d'autre sur un csv avec Notepad ++autre que modifier en tant que texte
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  11. #11
    Invité
    Invité(e)
    Par défaut
    Bonjour Patrick,

    et oui il fallait attendre que la vase retombe!

  12. #12
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    Bonjour robert

    je me rappelle mes début avec vba je cherchais a tout faire avec aujourd'hui visiblement les débutants c'est le contraire

    mais bon peut être repassera t-il par la et essaiera d'analyser le petit bout de code de rien du tout que j'ai esquissé

    peut être aussi selon ton temps pourra tu lui expliquer:
    comment dans le même principe lire ligne par ligne et modifier mon code en utilisant "append" pour la réécriture au cas ou les CSV s'avèreraient trop gros

    ah!.... la jeunesse
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  13. #13
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    Merci à tous pour vos retours..
    Je ne connais effectivement pas grand chose en vba..
    J'ai cherché par moi même sans résultat.

    Et oui je vais tenter d'analyser le code fourni par vos soins.

    Le truc que c'est qu'on me demande de faire des chose sous vba, sans avoir de notion, bases ou autre le tout dans en un temps relativement court .
    Donc oui c'est pas évident pour un néophyte ....

    Désolé de ne pas avoir les même bases que vous...

  14. #14
    Invité
    Invité(e)
    Par défaut
    en réalité ce qui t'est reproché, ce n'est pas ton inexpérience (nous sommes passé par là), mais que tu exposes ton problème sens nous donner la possibilité de t’aiguiser vers la meilleur solution!

    exposes ton problème et donnes le contexte et la finalité!

  15. #15
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2017
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 6
    Points : 3
    Points
    3
    Par défaut
    J'en prends note pour la prochaine fois.

    Encore merci à tout le monde

  16. #16
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : cuisiniste
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 379
    Points : 12 075
    Points
    12 075
    Billets dans le blog
    8
    Par défaut re
    re
    sans avoir de base en quoi que se soit refléchi a cela ( ce pierre fait, paul saura défaire mais pierre le fera beaucoup mieux )

    traduction dans ton contexte
    (ce que excel ou vba a fait ,notpad++ saura défaire mais excel vba le fera beaucoup mieux )
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2013] Modifier donnée dans fichier csv par macro mais laisser fichier en csv
    Par Carambar dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 05/11/2016, 17h20
  2. fichier csv par macro
    Par jnmab dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 03/12/2007, 23h31
  3. [Macro] ouverture d'un fichier csv par macro différent du double-clic
    Par Caro-Line dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 19/04/2007, 16h36
  4. ouverture auto d'un fichier excel par macro access
    Par pascal913 dans le forum Access
    Réponses: 5
    Dernier message: 26/07/2006, 16h50
  5. ouverture auto d'un fichier excel par macro
    Par pascal913 dans le forum Access
    Réponses: 2
    Dernier message: 26/07/2006, 12h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo