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 :

MessageBox Parcourir fichier


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 67
    Points : 38
    Points
    38
    Par défaut MessageBox Parcourir fichier
    Bonjour tout le monde,

    Après quelques recherches je n'ait pas réussi a trouver ce dont j'avais besoin, mais mon problème est simple ^^

    J'ai ce code la :
    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
    Sub Macro1()
    '
    ' Macro1 Macro
    '
     
    '
        With ActiveSheet.QueryTables.Add(Connection:= _
            "TEXT;Macintosh HD:Users:Desktop:Formatage donées:releve (16).csv" _
            , Destination:=Range("A1"))
            .Name = "releve (16)"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = xlMacintosh
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = True
            .TextFileSemicolonDelimiter = True
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
            .Refresh BackgroundQuery:=False
            .UseListObject = False
        End With
        Range("A1:I24").Select
        Selection.Delete Shift:=xlToLeft
        Range("J1:J25").Select
        Selection.Delete Shift:=xlToLeft
        Range("E1:H25").Select
        Range("H25").Activate
        Selection.Delete Shift:=xlToLeft
        Range("B1:C25").Select
        Selection.Delete Shift:=xlToLeft
        Dim i As Integer
    Dim j As Integer
    Dim longueur As Long
    Dim longueur2 As Long
    longueur2 = 100
    longueur = 100
    For i = longueur To 1 Step -1
        If IsEmpty(Cells(i, 2)) Or IsEmpty(Cells(i, 3)) Then
            Cells(i - 1, 2).Value = Cells(i - 1, 2).Value & vbCr & Cells(i, 2).Value
            Rows(i).Delete
        End If
    Next i
     
    For j = longueur To 1 Step -1
        If Cells(j, 2) = "                               " Then
            Rows(j).Delete
        End If
    Next j
        ChDir "Macintosh HD:Users:Desktop:"
    End Sub
    Ce script m'arrange a m'a sauce des classeur pour que je suis puisse les réutiliser.
    Et comme vous pouvez le voir au début de mon code j'ai un chemin relatif a un fichier que j'importe dans le classeur ouvert, je cherche a créer une messageBox qui demande a l'utilisateur de parcourir dans l'ordinateur le fichier, pour mettre dynamiquement le chemin de ce fichier dans le code. Une fois validé la messageBox se ferme et lance le reste du code.

    Je débute en VBA (et en exel d'ailleurs ahah) mais la j'avoue que je bloque vraiment, si vous avez des indice a me donner...je suis preneur ! Parce que la a part faire des fenêtres avec des Oui ou non j'ai pas réussi a faire grand choses

  2. #2
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 94
    Points : 173
    Points
    173
    Par défaut
    rajoute ça juste au début de ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        Dim Fichier as String
        Dim selec As FileDialog                                             'création de la boite de dialogue
        Set selec = Application.FileDialog(msoFileDialogOpen)               'préparation de la boite de dialogue
        selec.Title = "Sélectionnez le fichier à utiliser"
        selec.AllowMultiSelect = False                                      'on ne souhaite qu'un seul fichier
        selec.Filters.Add "fichiers CSV", "*.csv"                 'on ne prend que les fichiers CSV
        selec.Show                                                          'affichage de la boite
        Fichier = selec.SelectedItems(1)
    et u tu n'as plus qu'à changer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    With ActiveSheet.QueryTables.Add(Connection:= Fichier, Destination:=Range("A1"))

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Comme ceci ?

    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
    Sub Macro1()
    '
    ' Macro1 Macro
    '
     
    '
    Dim Fichier As String
        Dim selec As FileDialog                                             'création de la boite de dialogue
        Set selec = Application.FileDialog(msoFileDialogOpen)               'préparation de la boite de dialogue
        selec.Title = "Sélectionnez le fichier à utiliser"
        selec.AllowMultiSelect = False                                      'on ne souhaite qu'un seul fichier
        selec.Filters.Add "fichiers CSV", "*.csv"                 'on ne prend que les fichiers CSV
        selec.Show                                                          'affichage de la boite
        Fichier = selec.SelectedItems(1)
        With ActiveSheet.QueryTables.Add(Connection:=Fichier, Destination:=Range("A1"))
            .Name = "releve (16)"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .RefreshOnFileOpen = False
            .BackgroundQuery = True
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = xlMacintosh
            .TextFileStartRow = 1
            .TextFileParseType = xlDelimited
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = True
            .TextFileSemicolonDelimiter = True
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1)
            .Refresh BackgroundQuery:=False
            .UseListObject = False
        End With
        Range("A1:I24").Select
        Selection.Delete Shift:=xlToLeft
        Range("J1:J25").Select
        Selection.Delete Shift:=xlToLeft
        Range("E1:H25").Select
        Range("H25").Activate
        Selection.Delete Shift:=xlToLeft
        Range("B1:C25").Select
        Selection.Delete Shift:=xlToLeft
        Dim i As Integer
    Dim j As Integer
    Dim longueur As Long
    Dim longueur2 As Long
    longueur2 = 100
    longueur = 100
    For i = longueur To 1 Step -1
        If IsEmpty(Cells(i, 2)) Or IsEmpty(Cells(i, 3)) Then
            Cells(i - 1, 2).Value = Cells(i - 1, 2).Value & vbCr & Cells(i, 2).Value
            Rows(i).Delete
        End If
    Next i
     
    For j = longueur To 1 Step -1
        If Cells(j, 2) = "                               " Then
            Rows(j).Delete
        End If
    Next j
        ChDir "Macintosh HD:Users:Desktop:"
    End Sub
    Parce que la il me dit "Compile error : User-defined type not define" ?

  4. #4
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Juillet 2012
    Messages
    94
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2012
    Messages : 94
    Points : 173
    Points
    173
    Par défaut
    à quelle ligne l'erreur ? Et tu utilises quelle version d'Office ?

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Septembre 2011
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2011
    Messages : 67
    Points : 38
    Points
    38
    Par défaut
    Il me la situe directement sur le Je suis sous Exel MAC 2011... ^^

    Aprés plusieur petits test cela viendrais de la déclaration de selec le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim selec As FileDialog

Discussions similaires

  1. parcourir fichier d'un zip
    Par Didier77 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 01/05/2008, 06h50
  2. Bouton parcourir / fichier
    Par kikouu dans le forum Forms
    Réponses: 6
    Dernier message: 26/04/2007, 16h16
  3. Pb Boucle VB6 pour parcourir fichier TXT en VB6
    Par C_Mila dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 24/02/2007, 11h22
  4. Réponses: 6
    Dernier message: 14/04/2006, 11h18
  5. Parcourir fichier à indenter
    Par BFH dans le forum C
    Réponses: 6
    Dernier message: 26/11/2005, 12h21

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