Projet VBA macro en erreur Excel 64 bits

Bonjour
je vous joins le fichier ou je n'arrive plus à lancer à cause de windows 64 bits.
Je ne suis pas l'auteur du projet sur ce fichier excel. Mais je m'en sers tous les ans ainsi que mes collègues

Est ce que quelqu'un pourrait m'aiguiller sur la solution de ce problème ?

image

merci pour votre aide

Gaetan

Bonjour Gaetan,

Sujet maintes fois évoqués voici une réponse
https://forum.excel-pratique.com/excel/erreur-macro-32-64-bits-134520

Ceci dit, il y a plus simple que l'utilisation d'une API

Function ChoixDossier(DefautPath As String, sTitre As String)
  Dim fd As FileDialog
  Set fd = Application.FileDialog(msoFileDialogFolderPicker)
  With fd
    .Title = sTitre
    .InitialFileName = DefautPath
    If .Show = -1 Then
      ChoixDossier = fd.SelectedItems(1)
    End If
  End With
  Set fd = Nothing
End Function

Que l'on appelle

sPath = ChoixDossier(ThisWorkbook.Path,"CHOIX du DOSSIER")

A+

Bonjour

Merci pour l'info. Je suis ultra débutant avec VBA. Apres avoir ajouté PtrSafe. Cela ne fonctionne toujours pas. Le fichier se ferme.

Il y aussi cette erreur
Function SelectionRepertoireExcel97(Optional Msg) As String

Re,

Avez-vous un fichier à mettre à disposition SVP

Ou se situe l'erreur ? Ou est la ligne surlignée en jaune ?

A+

Il est dans le premier message

image

Re,

Sans fichier et en voulant utiliser une API aussi vieille, je ne pourrais pas vous aider d'avantage

Petit rappel de la la charte du forum [A LIRE AVANT DE POSTER]

  • Joignez (si possible) un fichier pour augmenter vos chances d'obtenir de l'aide en cliquant sur le bouton Fichier de l'éditeur. Si votre fichier est trop lourd ou contient des données personnelles, créez une version allégée de votre fichier avec juste assez d'informations pour permettre de comprendre votre problème. Dans tous les cas, ne postez JAMAIS de fichiers avec des informations personnelles ou confidentielles (cet utilitaire peut vous aider à les retirer).

Bonne fin de journée

Bonjour,

Vous avez une incompatibilité entre votre variable x définie en Long et votre fonction ShowBrowseForFolder définie en LongPtr. Votre variable x doit être redéfinie en LongPtr.

Salut Thev... wouhaou bien vue

Va falloir que je m'achète des lunettes peut-être

Bon ceci dit, c'est une API que je n'utilise plus depuis 2 siècles je pense

Merci à vous de m'avoir répondu. c'est la premiere fois que j'ai besoin et je ne voulais pas restreindre les infos pour m'aider.
c'est noté pour l'avenir.

Je vais essayé vos solutions
Cordialement

Gaetan

Bon ceci dit, c'est une API que je n'utilise plus depuis 2 siècles
C'est effectivement une API qui date d'un certain âge. L'utilisation de la classe "shell.application" serait nettement plus moderne :
    
Sub choix_répertoire(répertoire)
    Dim dossier As Object, item As Object

    Set dossier = CreateObject("shell.application").BrowseForFolder(0, "Choisir votre répertoire de départ", 0, "Bureau")
    If dossier Is Nothing Then MsgBox "aucun répertoire choisi": Exit Sub
    For Each item In dossier.ParentFolder.items
        If item.Name = dossier.Title Then répertoire = item.Path: Exit For
    Next item

End Sub
Rechercher des sujets similaires à "projet vba macro erreur bits"