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

Mac OS X Discussion :

macro vb marche sous windows et pas mac.


Sujet :

Mac OS X

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    9
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 9
    Par défaut macro vb marche sous windows et pas mac.
    Bonjour j'ai une maccro qui marche pas sous MAC alors que sur Windows tout marche.

    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
    Private Sub btn_file_Click()
    
    With Application.FileDialog(msoFileDialogFilePicker)
            .InitialFileName = ThisWorkbook.Path & "\"
            .Title = "Sélectionner un Fichier"
            .AllowMultiSelect = False
            .InitialView = msoFileDialogViewDetails
            .Filters.Clear
            .Filters.Add "Fichiers Excel", "*.csv"
            .Show
            If .SelectedItems.Count > 0 Then
                txt_file = .SelectedItems(1)
            End If
    End With
    erreur:
        MsgBox ("Erreur.")
        Resume Next
    End Sub
    merci.

  2. #2
    Membre expérimenté
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2007
    Messages
    248
    Détails du profil
    Informations personnelles :
    Âge : 72
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2007
    Messages : 248
    Par défaut
    Bonjour, essaye de remplacer

    par


  3. #3
    Membre émérite

    Homme Profil pro
    Directeur de projet
    Inscrit en
    Septembre 2010
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Directeur de projet
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Septembre 2010
    Messages : 606
    Par défaut Selection fichier en VBA sur Mac
    Bonsoir Miroku75,

    J'utilise sur Windows directement la fonction GetOpenFilename pour demander à l'utilisateur de sélectionner un fichier (sélection seulement et pas ouverture) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    ' Demande à l'utilisateur de sélectionner un fichier
    finfo = "tous les fichiers (*.*),*.*"
    filtredefaut = 1
    Title = "Nom du fichier pour xxxx"
    Fichier = ""
    Fichier = Application.GetOpenFilename(finfo, filtredefaut, Title)
    If Fichier = "Faux" Then
         MsgBox "pas de fichier sélectionné : Arrêt de la Macro"
        Exit Sub
        End If
    ' Le résultat du fichier choisi est dans la variable Fichier
    Malheureusement, cette fonction est mal écrite par Microsoft sur Mac (ce bug n'est pas documenté).
    En effet, bien que l'aide en ligne indique les mêmes paramètres que sur Windows, l'ajout de ces derniers provoque une erreur... incontournable tant que tu laisses ces paramètres (Merci Microsoft !)
    Voici cependant un exemple de code qui fonctionne sur Mac :
    finfo = ""
    FileFilter = 3
    Title = "Nom du fichier de download SAP"
    Fichier = ""
    ' To be change if run on Macintosh or PC
    Fichier = Application.GetOpenFilename(finfo, FileFilter, Title)
    If Fichier = "Faux" Then
    MsgBox "pas de fichier sélectionné : Arrêt de la Macro"
    Exit Sub
    End If
    L'utilisateur peut alors sélectionner un fichier. Malheureusement, les variables Filfilter et finfo sont ignorées par VBA!
    Tu ne peux donc filtrer les types de fichiers, autoriser ou non les sélections multiples.

    Je me souviens de contournements via AppleScript, mais je ne les ai pas essayés. Je te donne tout de même la piste au cas où tu voudrais pousser tes investigations plus loin :

    Il faut faire un texte contenant un AppleScript dans une variable, puis utiliser la commande VBA MacScript(MaVariable) qui va lancer ce script à partir de ta macro VBA.
    VBA va executer le script AppleScript dont le texte est dans MaVariable.

    Ce script peut utiliser les fonctions classiques d'AppleScript pour sélectionner un ou plusieurs fichier avec des types prédéfinis et avec un chemin prédéfini.
    Voir sur le Web l'instruction AppleScript "Choose File" avec ses paramètres "prompt", "multiple selection allowed", "file type", ... etc

    J'espère que cela va t'aider.
    Cordialement

Discussions similaires

  1. [LibreOffice][Tableur] Une macro qui fonctionne sous Linux mais pas sous windows
    Par ludox62 dans le forum OpenOffice & LibreOffice
    Réponses: 3
    Dernier message: 07/01/2014, 21h26
  2. BEIDApplet() ok sous Windows et pas sous Mac
    Par ifsera dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 13/09/2012, 09h46
  3. Script qui marche sous Linux mais pas sous Windows et vice versa
    Par tu-phat dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 26/11/2009, 02h39
  4. [glui][mac] un getc qui marche sous windows et pas sous mac
    Par shams dans le forum Bibliothèques
    Réponses: 3
    Dernier message: 16/05/2007, 11h50
  5. [Systeme] Process marche sous windows, pas sous linux
    Par Zapan dans le forum Général Java
    Réponses: 12
    Dernier message: 14/01/2006, 13h06

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