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 :

Appliquer une macro a un fichier excel par le biais d'un bouton parcourir


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2015
    Messages : 37
    Points : 33
    Points
    33
    Par défaut Appliquer une macro a un fichier excel par le biais d'un bouton parcourir
    Bonjour ,je crée un nouveau topic comme conseiller.

    J'ai crée (avec l'aide de certain utilisateur de ce forum) une macro qui me permet de faire une conversion d'un fichier xls ,en csv.

    Maitenant je voudrais crée un fichier excel tous simple, Où l'utilisateur grace a un bouton parcourir indique ou se trouve son fichier excel ,et en cliquant sur un bouton celui lui convertisse ce fichier.

    Concrétement je ne sais pas comment faire ,j'aimerais une piste pour commencer:

    J'arrive a crée un bouton où l'utilisateur peut indiquer ou se trouver le fichier xls, mais par la suite comment faire pour lui appliquer la macro que j'ai crée ?

    En vous remerciant pour votre aide futur.

    Voiçi le code de ma macro.

    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
    36
    37
    38
    39
    40
    41
    42
    Sub exportCustomCSV()
     
    Dim PlageB As Object, PlageE As Object, plageF As Object, Tmp As String, Tmp2 As String, destinataire As String, _
    concurrent1 As String, concurrent2 As String, Ean As String, NewEan As String, Price As String, NewPrice As String, _
    Price2 As String, Newprice2 As String
    Dim fichier
     fichier = ThisWorkbook.Path & "\" & "ExportThomasdoublerang.csv"
     
     
    Set PlageB = ActiveSheet.Range("B3:B" & Cells(Rows.Count, 2).End(xlUp).Row)
    Set PlageE = ActiveSheet.Range("E3:E" & Cells(Rows.Count, 5).End(xlUp).Row)
    Set plageF = ActiveSheet.Range("F3:F" & Cells(Rows.Count, 5).End(xlUp).Row)
     
    Open "ExportThomasdoublerang.csv" For Output As #1
     
    destinataire = "000160"
    concurrent1 = "RANG01"
    concurrent2 = "RANG02"
     
     
    For Ligne = 1 To PlageB.Rows.Count
        Ean = PlageB.Cells(Ligne, 1).Value
        NewEan = String(13 - Len(Trim(Ean)), "0") & Ean
     
        Price = PlageE.Cells(Ligne, 1).Value
    Price = Price * 100
    NewPrice = String(6 - Len(Trim(Price)), "0") & Price
     
        Price2 = plageF.Cells(Ligne, 1).Value
    Price2 = Price2 * 100
    Newprice2 = String(6 - Len(Trim(Price2)), "0") & Price2
     
     
     
        Tmp = destinataire & NewEan & concurrent1 & NewPrice
        Print #1, Tmp
        Tmp2 = destinataire & NewEan & concurrent2 & Newprice2
        Print #1, Tmp2
    Next Ligne
     
    Close
    End Sub
    Cordialement.

  2. #2
    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



    Bonjour,

    il est simple de demander la localisation d'un fichier en début de code

    par exemple via la méthode GetOpenFilename (consulter l'aide VBA et son exemple) …


    _____________________________________________________________________________________________________
    Je suis Charlie - Je suis Bardo
    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)

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2015
    Messages : 37
    Points : 33
    Points
    33
    Par défaut
    Bonjour voici apres quelques reflexions mon code ,mais cela charge puis il apparait une grosse croix rouge avec un 400 a coté.

    Quelqu'un a une piste ? ou toute est faux ?

    Cordialement

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    Dim chemin As String
     
     
    Sub btn_parcourir_Click()
        With Application.FileDialog(msoFileDialogOpen)
            With .Filters
                 .Clear
                 .Add "Feuille Microsoft Office Excel", "*.xls;*.xlsx", 1
            End With
            .AllowMultiSelect = False
            chemin = joindre
      If chemin <> "" Then Range("B6").Value = chemin
     
     
    End With
     
     
    End Sub
     
    Function joindre()
     
     
       joindre = Application.GetOpenFilename
    End Function
     
    Sub conversion()
     
    Dim xls As Excel.Application
    Set xls = CreateObject("Excel.Application")
     
     
    xls.Workbooks.Open (chemin)
    nom = xls.ActiveWorkbook.Name
     
    Dim PlageB As Object, PlageE As Object, plageF As Object, Tmp As String, Tmp2 As String, destinataire As String, _
    concurrent1 As String, concurrent2 As String, Ean As String, NewEan As String, Price As String, NewPrice As String, _
    Price2 As String, Newprice2 As String
    Dim fichier
     fichier = ThisWorkbook.Path & "\" & "ExportThomasdoublerang.csv"
     
     
    Set PlageB = xls.Range("B3:B" & Cells(Rows.Count, 2).End(xlUp).Row)
    Set PlageE = xls.Range("E3:E" & Cells(Rows.Count, 5).End(xlUp).Row)
    Set plageF = xls.Range("F3:F" & Cells(Rows.Count, 5).End(xlUp).Row)
     
    Open "ExportThomasdoublerang.csv" For Output As #1
     
    destinataire = "000160"
    concurrent1 = "RANG01"
    concurrent2 = "RANG02"
     
     
    For Ligne = 1 To PlageB.Rows.Count
        Ean = PlageB.Cells(Ligne, 1).Value
        NewEan = String(13 - Len(Trim(Ean)), "0") & Ean
     
        Price = PlageE.Cells(Ligne, 1).Value
    Price = Price * 100
    NewPrice = String(6 - Len(Trim(Price)), "0") & Price
     
        Price2 = plageF.Cells(Ligne, 1).Value
    Price2 = Price2 * 100
    Newprice2 = String(6 - Len(Trim(Price2)), "0") & Price2
     
     
     
        Tmp = destinataire & NewEan & concurrent1 & NewPrice
        Print #1, Tmp
        Tmp2 = destinataire & NewEan & concurrent2 & Newprice2
        Print #1, Tmp2
    Next Ligne
     
    Close
    End Sub
    Cela charge ,et apparait une grosse croix rouge 400

  4. #4
    Expert éminent

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 073
    Points : 9 853
    Points
    9 853
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    sans avoir parcouru tout ton code, je vois que tu filtres uniquement les fichiers Xls et Xlsx.

    or tu parles d'un fichier .csv ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2015
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2015
    Messages : 37
    Points : 33
    Points
    33
    Par défaut
    Bonjour ,merci de ta réponse ,en faite je dois convertir un fichier xls en fichier csv , je filtre car la personne doit indiquer un fichier xls ou xlsx (d'ailleurs il doit y avoir un problème dans mon code car j'arrive a joindre nimporte quel fichier.)

Discussions similaires

  1. Réponses: 6
    Dernier message: 02/08/2017, 16h55
  2. Macro qui permet d'appliquer une macro sur un fichier excel
    Par zak-mouk dans le forum Général VBA
    Réponses: 2
    Dernier message: 23/06/2015, 17h15
  3. Réponses: 1
    Dernier message: 11/02/2011, 14h14
  4. [XL-2003] Créer une macro pour plusieurs fichiers excel
    Par bocki dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 29/06/2009, 22h53
  5. Réponses: 1
    Dernier message: 08/10/2008, 15h30

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