Problème getopenfilesnames passage à Macintosh

Bonjour à tous,

J'ai un programme excel VBA qui marche parfaitement sur windows .

Je l'ai envoyé à quelqu'un ayant excel sur Mac et là le programme plante en pointant à la ligne d'un getopenfilesname (qui dans un userform, vient récupérer dans une liste les fichiers que l'utilisateur veut importer)

fichier_choisi = Application.GetOpenFilename("Fichier Excel (*.xlsx), *.xlsx")

Je suppose que la procédure doit etre un peu différente sur Macintosh que sur windows ?!

Je vous envoie le code (je suis pas sur que ça puisse etre utile car le code marche bien, le problème est juste le fait je pense que la procédure doit etre différente sur Mac)

Option Explicit
Dim ligne_debut As Integer, colonne_debut As Integer

Dim ligne_encours As Long, colonne_encours As Integer

Private Sub calculer_Click()
Application.Calculate
Sheets("feuil2").Activate

End Sub

Private Sub importer_Click()

Dim fichier_choisi As String
fichier_choisi = Application.GetOpenFilename("Fichier Excel (*.xlsx), *.xlsx")
  If (LCase(fichier_choisi) <> "faux" And fichier_choisi <> "0") Then
    liste_fichiers.AddItem (fichier_choisi)
  End If

End Sub

Private Sub traiter_Click()

Dim nom_fichier As String, i As Integer

ligne_debut = 2: colonne_debut = 1
ligne_encours = ligne_debut
Worksheets("Feuil1").Cells.Clear
colle_entetes
For i = 0 To liste_fichiers.ListCount - 1
copiecolle (liste_fichiers.List(i))
Next i

End Sub
Private Sub colle_entetes()
  Dim Plage As Range
  Dim Cellule As Range

  'Copier de la ligne 2 de la feuille entetes vers la ligne 3 de la feuil1
 Worksheets("Feuil1").Range("A1:AAA1").Value = Worksheets("entetes").Range("A1:AAA1").Value
End Sub

Private Sub copiecolle(fichier As String)
Dim y As Long
Dim sh As Worksheet
Dim cl As Workbook

Dim rsrc As Range, rdst As Range

'ouvrir le premier fichier pour pouvoir copier coller ses données'
Set cl = Workbooks.Open(fichier)

'Pour chaque feuille du fichier à copier, trouver le nombre de lignes et jusqu'à ce que la colonne 1 contienne un vide'
For Each sh In cl.Worksheets

'Pour chaque fichier de la liste, pour chaque feuilles de ce fichier, _
    pour chaque ligne à partir de la ligne 3, _
    je viens copier la ligne et la coller dans la feuil1 du fichier prévisionnel '
    y = 3
    Do While sh.Cells(y, 1) <> ""
        'ThisWorkbook.Worksheets("Feuil1").Rows(ligne_encours).Value = sh.Rows(y).Value
        Set rsrc = sh.Rows(y)
        Set rdst = ThisWorkbook.Worksheets("Feuil1").Rows(ligne_encours)
        rsrc.Copy Destination:=rdst
        ligne_encours = ligne_encours + 1 'j'incrémente ligne_encours afin que dans mon fichier prévisionnel, _
            la copie continue à ce faire dans la ligne d'en dessous '
        y = y + 1
    Loop
Next sh
cl.Close
End Sub

Merci beaucoup

Ha merci !!

du coup il faut juste que j'ajoute ce code au programme sur le mac et remplacer dans le code le "getopentfilenames" par Select_File_Or_Files_Mac

C'est bien ça ?

Je n'ai pas creusé... mais c'est bien ce chapitre qui doit te fournir les instructions à utiliser sur Mac. Il est possible qu'il te faille faire quelques adaptations, tu verras ça chemin faisant.

Cordialement.

Et oui mais le problème c'est que je n'ai pas acces à un ordi Mac hahaha

Alors il faut que je regle le programme sur mon pc windows pour qu'il marche sur le mac de mon responsable ^^

Bon courage ! @+

Rechercher des sujets similaires à "probleme getopenfilesnames passage macintosh"