Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2021 Module d’envoi à la Corbeille qui ne fonctionne pas en 64 Bits

AR MOR

XLDnaute Nouveau
Bonjour,

J’ai deux PC portables du même tonneau. Les deux, sous Wind 11.

L’ancien avec Office 21 (32 bits), et le nouveau idem, mais en 64 bits.

Voici le problème que je ne parviens pas à résoudre malgré une foultitude de recherche sur le web

Mon code pour envoyer un fichier choisi à la corbeille fonctionne parfaitement en 32 bits

Mais en 64 bits, malgré mes ajouts de « PtrSafe »,

j’ai un plantage immédiat. (Voire même sans bug, mais rien n’a bougé)

Ceci est très dommageable pour moi, car j’ai une bonne poignée d’applications où j’utilise ce module.

A noter :

Test à faire avec un dossier où vous aurez mis une dizaine de Fichiers dont 2 ou 3 « Raccourcis »

Pour ce qui est des liens que j’ai pu trouver sur le web, ce sont bien souvent des usines à gaz pas buvables, surtout pour moi qui est n’a pas toujours bien compris le fonctionnement des Fonctions.

Si quelqu’un peut m’aider, je l’en remercie par avance.

Je saurai renvoyer l’ascenseur, si une question entre dans le domaine de ce que je sais faire.

En PJ, Le Classeur qui marche en 32 (Pas la pointure !!!)
 

Pièces jointes

  • REPURGATEUR.xlsm
    26.3 KB · Affichages: 5

AR MOR

XLDnaute Nouveau
CA MARCHE !!!

Bonjour, ou Bonsoir suivant l’heure,

Quand j’allais à Toulon, j’atterrissais à Hyères

Avec toi j’ai atterri à aujourd’hui.

Tout fonctionne quel que soit le terrain.

Merci pour ton aide, et ta gentillesse
 

AR MOR

XLDnaute Nouveau
32 ou 64 Bits ??? >>> Facile

Hi, j’ai trouvé un truc particulièrement exploitable :

VB:
Private Sub CommandButton1_Click()
MsgBox "Welcome to Microsoft Excel version " & _
 Application.Version & " running on " & _
 Application.OperatingSystem & "!"
End Sub

Il suffit donc de voir s’il existe « 32 » ou « 64 » dans le message pour en avoir la réponse.

J’ai testé sur mes deux ordis, et les résultats sont avérés.

Ce qui simplifierait grandement la gestion du « PtrSafe » ou non suivant la version utilisée

N’est-il-pas ?
 

Pièces jointes

  • 32 OU 64 BITS.xlsm
    18.4 KB · Affichages: 0

patricktoulon

XLDnaute Barbatruc
re
non ne fonctionne pas comme ca
fonctionne normalement
pour la simple et bonne raison que ptrsafe et longptr peut être bon pour le 32 bits en VBA7
là d'accords c'est pas le cas car l'api est la même pour le vba7 en 32 ou 64 mais ca sera pas toujours pareil pour toute les api
franchement qu'est ce que ça coûte?
VB:
#If VBA7 Then'32/64 en vba7 c'est pareil pour cet  API
    Private Declare PtrSafe Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As RECHERCHE) As Long
#Else'sinon vba6
    Private Declare Function SHFileOperation Lib "shell32.dll" Alias "SHFileOperationA" (lpFileOp As RECHERCHE) As Long
#End If
 

AR MOR

XLDnaute Nouveau
Je te suis.
Je dois avoir la modestie de faire avec ce qu'il m'est dit, plutôt qu'à chercher autre chose.
Je n'ai que 75 balais, aussi il est certain que dans 30 ans, je te damerai les pions!
 

patricktoulon

XLDnaute Barbatruc
qui sait
en fait ton test version se fait tout simplement avec les directives de compilation conditionnelles
VB:
#If VBA7 Then

    #If Win64 Then
        'ici les déclaration  pour 64 bits en VBA7
    #Else
        'ici les déclaration  pour 32 bits en VBA7
    #End If
'ICI ON PEUT METTRE CELLES QUI SONT IDENTIQUES POUR  LE 32/64 BITS EN VBA7
#Else
    'ici les déclaration VBA6(excel 2003 2007)
#End If

l'application prendra les bonnes déclarations toute seule
 
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…