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 :

code en fonction de version excel


Sujet :

Macros et VBA Excel

  1. #1
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut code en fonction de version excel
    Bonjour à tou(te)s,

    je travaille sur excel 2007 et n'ai pas de versions antérieures donc je ne peux tester mon code, j'aimerais savoir si le début de mon code est correct en fonction de la version d'excel de l'utilisateur, (la partie en rouge) :
    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
    Private Sub partienom_Change()
    Dim i As Long, stmessage As String, vs
    
    ListBoxARCHIVES.Clear
    nomfeuil = ActiveSheet.Name
    vs = Application.Version
    If vs < 12 Then
        Set Recherche = Application.FileSearch
    Else
        Set Recherche = ClFileSearch.Nouvelle_Recherche
    End If
    r = ThisWorkbook.Path & "\" & "archives pdf"
    With Recherche
        'répertoire pour lancer la recherche
        .FolderPath = r
        'inclu les sous-dossiers dans la recherche
        .SubFolders = True
        'Option de tri:
        '(Sort_None, sort_Name, sort_Path, sort_Size, sort_DateCreated, sort_LastModified, sort_Type)
        'Pas de tri si le paramètre n'est pas spécifié.
        .SortBy = sort_DateCreated
        .Extension = "*" & partienom & "*.pdf"
        'procède à la recherche et capture le nombre de fichiers trouvés
        inombre = .Execute
        stmessage = VBA.Format(inombre, "0"" fichiers trouvés""")
        For i = 1 To .FoundFilesCount
            nom = .Files(i).strfileName
            nom2 = .Files(i).strpathName & "\" & nom
            ListBoxARCHIVES.AddItem nom2 'nom du fichier
        Next i
    End With
        If inombre = 0 Then
            MsgBox "0" & " fichier trouvé"
        End If
    
    End Sub
    les variables non déclarées ici, le sont en "public"
    Merci d'avance de vos conseils éclairés

    bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

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

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

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Salut Casefayere,

    j'ai testé ton code sous 2003.

    Je rencontre un problème ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    f vs < 12 Then
        Set Recherche = Application.FileSearch
    Else
        Set Recherche = ClFileSearch.Nouvelle_Recherche
    End If
    je passe dans le else alors qu'il n'y a pas lieu.
    En debug VS vaut "11.0", donc je pense que ta comparaison avec 12 en numérique est incorrecte.
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  3. #3
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir le forum, Godzestla,
    Merci de t'être penché sur mon petit souci. Je te confirme que ma version excel 2007 est 12.0 mais tu as certainement raison, peut-être faut que je passe en format texte soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    vs =application.version
    If vs < "12" Then
    ...
    mais je ne peux tester moi-meme. J'aurai la réponse dès que j'essayerai sur un poste de mon boulot où tous travaillent encore sur excel 2003.

    En attendant, je te remercie encore et te souhaite une bonne soirée.
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 907
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 907
    Points : 28 882
    Points
    28 882
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    Moi je code comme ceci mais le résultat est le même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     vs = Application.Version
     If Val(vs) < 12 Then
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir corona,
    merci, j'essayerai des deux façons et vous tiendrai au courant.

    bonne soirée

    PS : au moins, avec excel 2007 je ne rencontre pas de problème.

    Bonne soirée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  6. #6
    Invité
    Invité(e)
    Par défaut
    Bonjour

    As-tu testé avec une variable de type String et en testant l'égalité avec "12.0" ?

    Philippe

  7. #7
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonsoir Philippe,

    Suis-je bête, bien sur c'est la première chose à faire. Je serai déjà un peu mieux fixé.
    Ce qui m'embête est que la version de mon fichier est restée au boulot mais je vais contourner le problème dès maintenant car pour ce test je n'ai pas obligatoirement besoin de ce fichier.

    Merci, bonne soirée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  8. #8
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Citation Envoyé par corona Voir le message
    Bonsoir,
    Moi je code comme ceci mais le résultat est le même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     vs = Application.Version
     If Val(vs) < 12 Then
    +1
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  9. #9
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    re,
    résultat du test, vous comprendrez avec "=" pas le choix,et avec vos deux versions
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub test()
    Dim vs As String
    vs = Application.Version
    If vs = "12.0" Then
       MsgBox "ok"
    End If
    If Val(vs) = 12 Then
        MsgBox "ok"
    End If
    j'ai bien mes deux fois "ok"
    mais j'espère que sur excel 2003, je ne me retrouverai pas avec un message d'erreur, style :
    "type défini par l'utilisateur non défini"
    pour
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Recherche As ClFileSearch.ClasseFileSearch
    encore merci
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  10. #10
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

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

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    mais j'espère que sur excel 2003, je ne me retrouverai pas avec un message d'erreur, style :
    "type défini par l'utilisateur non défini"
    pour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim Recherche As ClFileSearch.ClasseFileSearch
    Si, malheureusement,

    mais comme tu l'avais codé dans ton premier exemple cela passe sans erreur:

    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
    Sub test()
    Dim vs As String
    vs = Application.Version
    If vs = "12.0" Then
       MsgBox "ok"
    End If
    If Val(vs) = 12 Then
        MsgBox "ok"
        Set Recherche = ClFileSearch.Nouvelle_Recherche
        Else
        MsgBox "nok"
        Set Recherche = Application.FileSearch
    End If
     
    End Sub
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  11. #11
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Je ne me contenterais pas de vérifier si l'on est en présence de la version 12.0 (2007), il y a maintenant la version 14.0 (2010)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Val(vs) >= 12 Then
        Set Recherche = ClFileSearch.Nouvelle_Recherche
        Else
        Set Recherche = Application.FileSearch
    End If
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Val(vs) < 12 Then
        Set Recherche = Application.FileSearch
        Else
        Set Recherche = ClFileSearch.Nouvelle_Recherche
    End If
    LES FAQ OFFICE - LES COURS OFFICE - LES COURS EXCEL - LES LIVRES OFFICE - SOURCES VBA - ATELIER BRICOLAGE VBA

    Lorsque votre problème est solutionné, pensez à le signaler en cliquant sur le bouton au bas de la discussion.

  12. #12
    Expert éminent Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Points : 9 548
    Points
    9 548
    Par défaut
    Bonjour à tou(te)s,

    Merci Godzestla, je ne pourrai pas adapter avant cet après-midi, je pense contourner le problème pour le refus de déclaration de variable en passant par un module
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Sub test()
    Dim vs As String
    vs = Application.Version
    If Val(vs) < 12 Then
      prog1
    Else
        prog2
    End If
     
    End Sub
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sub prog1()
    dim Dim Recherche As object
    Set Recherche = Application.FileSearch
    ...........
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    sub prog2()
    Dim Recherche As ClFileSearch.ClasseFileSearch
    Set Recherche = ClFileSearch.Nouvelle_Recherche
    .....
    Bonne journée
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

Discussions similaires

  1. [XL-2010] Aide pour modification d'un code VBA (Fonction Ping sous Excel)
    Par osiris13010 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/07/2012, 14h16
  2. Changer les Références en fonction de la version Excel
    Par mpereg dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/04/2008, 13h53
  3. Chagement de code en fonction de la version d'Excel
    Par nou366 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 13/01/2008, 18h22
  4. Test de code VBA sur différentes versions d'Excel
    Par Fala fala dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 03/01/2008, 11h33
  5. Fonctions via menu excel
    Par djid72 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 01/03/2005, 11h44

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