Une petite macro pour débutant

Vieupot

XLDnaute Occasionnel
Bonjour
comme le titre dit je débute...soyez indulgents pour ma faiblesse
Je suis en cours de création d'une tenue de comptabilité pour notre petite asso.
pour ce qui est de Excel..ça va ! Les macros avec l'enregistreur ça va aussi ! mais tripoter le VBA c'est nouveau pour moi mais je m'y attache ça devient une passion (y' a encore du boulot je pars de zéro)
Aussi merci aux pros de bien vouloir m'aider

Je crée en premier lieu un dossier appelé '' compta_asso ''
j'y stocke mon fichier excel avec ses macros

et un sous dossier "justificatifs"
Celui ci stockera les scans de mes documents comptables au format PDF (si nécessaire pour une question de poids je devrai peut_être le faire en JPG et réduire le poids de la photo ) . Il n'y aura pas beaucoup d'écritures environ 200 ou 300.

dans la cellule I5 d'une feuille de calcul je vais indiquer un chiffre qui correspondra à un N° de document à rechercher et afficher. J'ai inséré dans la feuille le symbole " PDF Acrobat" auquel je voudrais associer une macro
Je voudrais lorsque je clique sur "PDF " que la macro fasse référence au chiffre indiqué en I5 et aille ouvrir le justificatif comptable portant le numéro indiqué en I5.
Ceci semble réalisable sauf que je me demande la chose suivante
Le justificatif portera le nom 5.PDF ou 122.PDF ( ou jpg suivant le format qui sera le plus léger) et comment il sera possible de préciser que le chiffre en I5 exemple 122 devra être traduit pour la recherche en 122.PDF
La macro devra être utilisable dans deux feuilles différentes ( dépenses et Recettes) sachant que la cible a rechercher sera dans chaque feuille en I5 donc ne doit pas poser de problème
Dans quel module ou feuille dois-je déposer cette macro
Voila j'ai essayé d'être clair et ce serait trés bien pour moi si je parvenais a réaliser cela avec votre aide
Merci par avance à ceux qui tenteront de solutionner mon problème
Cordialement
Bernard
 

Calvus

XLDnaute Barbatruc
Bonsoir Vieupot,, le forum,

Plusieurs affichages de ton message et aucune réponse..
Je pense que cela est dû à un manque de fichier.
Il nous est assez difficile de comprendre ce que tu souhaites sans exemple, même si ça te parait évident. De notre coté, nous n'avons pas le fichier et son organisation sous les yeux, ni ne sommes dans ta tête...

Alors, pour ce que j'en ai compris, voici le type de code que tu dois insérer dans un module standard :
Pour le reste du code, je ne sais pas ce qu'n doit y mettre...
VB:
    fichier = "\" & Range("I5") & ".pdf"
    Dossier = "C:\Users\XXXXX\Documents"
    chemin = Dossier & fichier

Selection.ExportAsFixedFormat Type:=xlTypePDF, Filename:=chemin, _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True

XXXX étant à remplacer par ton chemin.

A bientôt
 
Dernière édition:

Vieupot

XLDnaute Occasionnel
Merci Calvus
Il est vrai que ma tête n'est pas la votre...;) je vais donc faire un exemple et le joindre mais je pense que le problèmes va se corser car je vois dans la macro qu'il faut effectivement tenir compte du chemin et ce qui est à une place sur mon ordi ne sera pas forcément à la même place sur celui de l'utilisateur final. Sinon du peu que je sache lire des codes il me semble que tu as bien compris le problème
A bientôt
 

Vieupot

XLDnaute Occasionnel
Bien....je reviens avec une explication imagée de ma demande.......
J'espère être assez clair, pas facile de joindre le dossier avec les pièces jointes
Merci par avance si quelqu'un m'apporte une solution
Bernard
 

Pièces jointes

  • Explications Macro compta.xlsx
    13.4 KB · Affichages: 53

mapomme

XLDnaute Barbatruc
Supporter XLD
Bonsoir Vieupot, Calvus,

Les fichiers .xlsm et les trois fichiers 1.pdf, 2.pdf et 3.pdf sont à placer dans le même répertoire.

Pour afficher un PDF, double-cliquer sur une cellule de la colonne A contenant un nombre.

Dans le code de la macro, il y a une constante nommée Pgme.
Cette constante contient le chemin complet du programme qui doit lire les fichiers PDF.

A vous de définir correctement cette constante pour votre Windows.

Rem: chez moi, c'est :
Const Pgme = "C:\Program Files\Adobe\Acrobat Reader DC\Reader\AcroRd32.exe"
 

Pièces jointes

  • Vieupot.zip
    447.8 KB · Affichages: 51

DoubleZero

XLDnaute Barbatruc
Bonjour, Vieupot, Calvus :D, le Forum,
... dans la cellule I5... Dans quel module ou feuille dois-je déposer cette macro...

Un essai avec le code ci-après, logé dans un module standard.
VB:
Option Explicit
Sub PDF_ouvrir()
    Dim fichier_nom As String, emplacement As String
    On Error GoTo fin
    fichier_nom = [d2].Value & ".pdf"
    ' adapter
    emplacement = "C:\Users\DoubleZero\Downloads\Compta_Asso\justificatifs\"
    CreateObject("WScript.Shell").Run emplacement & fichier_nom
    Exit Sub
fin:     MsgBox "Fichier inexistant."
End Sub
Attention : le fichier déposé en #4 laisse apparaître le numéro du PDF en d2 et non en i5.

A bientôt :)

P. S. : Bonjour, mapomme :D
 

Calvus

XLDnaute Barbatruc
Bonjour Vieupot, Mapomme :), DoubleZero :),

Une autre solution dans un module standard :
VB:
Option Explicit

Sub Ouvrir_Pdf()
Dim chemin As String, fichier As String

    chemin = ThisWorkbook.Path & Application.PathSeparator
    fichier = Range("D2") & ".pdf"

    ThisWorkbook.FollowHyperlink chemin & fichier 'Shell
End Sub

Bon après-midi.
 

Vieupot

XLDnaute Occasionnel
Bonsoir à tous
Encore une fois je ne dirai jamais assez merci. grâce à vous tout est possible....et j'apprends un peu plus chaque jour
Je vais tout tester demain et suis certain que ça va fonctionner ...sauf si je me trompe
A demain
Bonne soirée à tous
 

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 077
Membres
103 111
dernier inscrit
Eric68350