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 :

Equivalent de "*" de batch en VBA


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Par défaut Equivalent de "*" de batch en VBA
    Bonjour tout le monde,

    J'aimerai savoir équivalent de "*" de langage batch en VBA. Par exemple en batch on peut faire C:\Documents and Settings\ad\Abroad\*.txt mais en VBA je ne sais pas ce que c'est "*" ?

    Merci d'avance

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,

    en VBA (et aussi en VB tout court), c'est un caractère générique (un "joker", quoi...) , utilisé principalement avec la fonction Dir (à voir dans ton aide en ligne), mais également avec l'opérateur Like (à voir aussi dans ton aide en ligne) ou enfin (plus généralement) avec toute utrilisation de filtre (avec un CommonDialog, par exemple).

  3. #3
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Ça dépend de l'utilisation que tu veux en faire : Pour dir, c'est la même chose NFich = Dir("d:\txt\*.txt")
    Pour kill, "*.*" ne fonctionne pas
    Donne l'utilisation que tu veux en faire

    (Erreur corrigée grâce à la gracieuse intervention d'ucfoutu)

  4. #4
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Citation Envoyé par ouskel'n'or Voir le message
    Pour kill, ça ne fonctionne pas
    Bonjour, Ousk ...
    AH ?
    et en cherchant au Sud, non plus ?

  5. #5
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Autant pour moi, c'est kill "*.*" qui ne fonctionne pas

    Un exemple ici avec kill...
    Depuis le 20/08/2008, j'ai un bit dans la chose qui me sert de mémoire qu'a sauté depuis

  6. #6
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Par défaut
    Merci tout le monde,
    en fait je voudrais iporter des fichiers textes qui s'appelent "chemin & "\Abroad\count-ressource_SP-" & u & "-055000.txt"" ou il j'ai ajouter une variable u maintennat j'aimerai importer tout le fichiers txt qui s'appelent chemin & "\Abroad\count-ressource_SP-" & u & *.txt"". c'est pour cela que je vous ai demander de m'aider.
    j'ai déjà utilisé la fonction "dir" :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    If Dir(chemin & "\Abroad\count-ressource_SP-" & u & "-055000.txt") = "" Then
        GoTo fin
        Else
        End If
    c'est pour voir si le fichier existe ou pas

    Mais comment je dois utiliser "dir" :
    je fait comme ca ?:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Dir(chemin & "\Abroad\count-ressource_SP-" & u & "-*.txt")
    Merci encore

  7. #7
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Citation Envoyé par irouni Voir le message
    je fait comme ca ?:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Dir(chemin & "\Abroad\count-ressource_SP-" & u & "-*.txt")

    Ben...
    As-tu essayé ? Et su oui : quel résultat ?

    Sans préjudice du code (que l'on ne voit pas) de ta clause Else et sans préjudice, non plus de l'existence éventuelle de Fichiers en attribut VbHidden ...

    Je te signale à tout hasard que l'exemple donné dans ton aide en ligne, sur ta machine, pour l'utilisation de la fonction Dir correspond pile-poil à ce que tu cherches à faire ! (parcours tant que ...)

  8. #8
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Par défaut
    oui j'ai déjà essayé et il me met erreur d'execution '1004'


    Voici mon code

    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
    Sub AV()
     
    Worksheets("A&V").Activate
    chemin = ThisWorkbook.Path
     
    Dim Adr As String
    Dim année As Long
    Dim mois
    Dim u As Long
     
    ' cette macro sert à importer et à ranger les données du serveur selon la date donnée
    For i = (Date - 50) To Date
     
    Worksheets("A&V").Cells(257, "U") = i
    Worksheets("A&V").Cells(254, "U") = Worksheets("A&V").Cells(253, "U") & Worksheets("A&V").Cells(255, "U") & Worksheets("A&V").Cells(252, "U")
    u = Worksheets("A&V").Cells(254, "U")
     
    ' on s'occupe de l'endroit dont les fichiers doivent être récupperés
    Adr = chemin & "\Abroad\count-ressource_SP-" & u &
     
        Fich=Dir(Adr & "*.txt") 
        If Fich = "" Then
        GoTo fin
        Else
        End If
     
    ' on s'occupe de l'importation du fichier texte
        With ActiveSheet.QueryTables.Add(Connection:= _
        "TEXT;" & Fich, _
        Destination:=Range("W1"))
     
            .Name = "count-ressource_SP"
            .FieldNames = True
            .RowNumbers = False
            .FillAdjacentFormulas = False
            .PreserveFormatting = True
            .RefreshOnFileOpen = False
            .RefreshStyle = xlInsertDeleteCells
            .SavePassword = False
            .SaveData = True
            .AdjustColumnWidth = True
            .RefreshPeriod = 0
            .TextFilePromptOnRefresh = False
            .TextFilePlatform = -536
            .TextFileStartRow = 6
            .TextFileParseType = xlFixedWidth
            .TextFileTextQualifier = xlTextQualifierDoubleQuote
            .TextFileConsecutiveDelimiter = False
            .TextFileTabDelimiter = True
            .TextFileSemicolonDelimiter = False
            .TextFileCommaDelimiter = False
            .TextFileSpaceDelimiter = False
            .TextFileColumnDataTypes = Array(1, 1, 1, 1, 1, 1)
            .TextFileFixedColumnWidths = Array(26, 2, 2, 16, 10)
            .TextFileTrailingMinusNumbers = True
            .Refresh BackgroundQuery:=False
        End With
     
    fin:
     
    Columns("V:AX").Select
        Selection.ClearContents
     
    Next i
     
    Worksheets("A&V").Cells(1, 1).Select
     
    End Sub
    .
    .
    .
    etc

  9. #9
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Salut,
    cette instruction est fausse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Adr = chemin & "\Abroad\count-ressource_SP-" & u &
    il faut enlever le dernier &.

    mais tu ne dis pas sur quelle instruction tu reçois ce code d'erreur 1004 !!

    Autrechose,

    ici le else est inutile car vide (mais bon cela n'est pas une erreur).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    If Fich = "" Then
    GoTo fin
    Else
    End If

  10. #10
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Par défaut
    Merci de votre réponse,
    cette instruction est fausse :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Adr = chemin & "\Abroad\count-ressource_SP-" & u &
    oui en effet je l'ai corrigé
    Bon j'ai fais quelques tentatives et maintenant "*" marche bien mais dès quil arrive à la ligne "end with" pour cloturer l'importation il me met erreur d'execution!
    vous savez pk il fait ca ?

  11. #11
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    3 petites remarques :
    1) tu utilises la mauvaise balise pour ton code. Il faut prendre l'icone # pour baliser ton code et pas l'icone à gauche qui sert pour les citations. Avec # ton code sera formatté correctement.

    2) Merci de prendre la bonne habitude de TOUJOURS mentionner l'instruction ou l'erreur se produit ET le code d'erreur complet.

    3) Je pense que tu n'as pas lu les rêgles du forum qui sont disponibles dans l'entête de la page ou tous les messages sont visibles. Il est utile de lire avant de poster pour comprendre comment rédiger et formatter son texte. Cela ne peut que t'apporter un meilleur taux de réponses à tes questions.

    Que vaut Fich si quand ton programme coince tu affiches sa valeur grâce au debug ?

  12. #12
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Par défaut
    Pour les remarques : entendu
    Fich je l'affiche dans 1 cellule ( Worksheets("A&V").Cells(260, "U") = Fich ) et le contenu a l'aire correct

    il m'afiche pour la variable Fich : count-ressource_SP-20080707-055000.txt --- > c'est ce que je veux.
    J'ai executé le code en utilisant le pas à pas (F8) et en arrivant à l'instruction "End With" il m'affiche
    erreur d'execution '1004'
    Erreur défnie par l'application ou par l'objet
    En fait dans le fichier ou excel va chercher les fichiers il exist plusieurs fichier txt comme "count-ressource_SP-20080707-055000.txt " et seulement 20080707 qui change selon la date.

    Merci encore

  13. #13
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Par défaut
    Ca marche en fait je n'avais pas ajouter "chelin & "\Abroad\" & Fich"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Adr = chemin & "\Abroad\count-ressource_SP-" & u &
    
    Fich=Dir(Adr & "*.txt") 
    If Fich = "" Then
    GoTo fin
    Else
    End If
    
    
    
    ' on s'occupe de l'importation du fichier texte
    With ActiveSheet.QueryTables.Add(Connection:= _
    "TEXT;" & Fich, _
    Destination:=Range("W1"))
    Merci tout le monde

  14. #14
    Membre confirmé
    Inscrit en
    Décembre 2007
    Messages
    66
    Détails du profil
    Informations forums :
    Inscription : Décembre 2007
    Messages : 66
    Par défaut
    Bonjour encore,

    est ce que vous savez pourquoi quand je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Windows(Dir("Dashboard*.xls")).Activate
    il me met erreur d'execution '9'
    L'indice n'appratient pas à la selection


    Je crois qu'il ne trouve pas la page pour la selectionner mais PK mon code ne marche pas ?

    merci d'avance

  15. #15
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Parce que ce qui est attendu est un numérique et non une chaîne représentant un chemin...

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 25/07/2006, 16h14

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