Peut-on faire une capture automatisée d'une partie et l'extraire en pdf

Bonjour,

Peut-on faire une capture automatisée de certaines colonnes d'une feuille (A2 à Nfin) et l'extraire en pdf ou dans un autre format.

Tout ça en cliquant dans la cellule "pompe" (entouré en bleu dans la capture) ou par une autre solution s'il y a plus simple ;-)))

Par exemple ces colonnes indiquées :

image

Merci

Bien cordialement

voici un exemple minimaliste :

Sub Macro2()
    Range("A2:BL20").PrintOut Copies:=1, Collate:=True
End Sub

A+

Bonjour Galopin01, c'est sympa, je n'y connais rien en VBA mais il faudrait surement indiquer que lorsque je double clique dans la cellule J2, j'ai une invite "Enregistrer sous pdf..." sans devoir passer par l'imprimante ;-))

Et je ne sais rien faire en VBA ou autres langages de programmation d'ailleurs ;-)))

Merci

à + :-))))

Oui c'est une bizarrerie d'Excel voilà une imprimante qui n'imprime rien du tout !!!!!

Mais c'est quand même la solution à ce que tu demande ! Après je ne comprend pas la relation entre le double clic et la zone à extraire.

Il faut éviter les évènements imprévisibles pour des évènements qui n'ont aucun rapport avec la fonction qu'on en attend : C'est un peu comme si tu disait qu'il faut allumer la cafetière pour faire marcher la machine à laver...

Il est préférable d'utiliser un bouton de commande.

A+

Je comprends ton questionnement mais je ne veux rien imprimer du tout... Je me suis relu et je ne vois pas d'indications en ce sens.

Je voulais juste une capture de zone d'un tableau excel et qu'il soit exporté dans un fichier pdf ou vers un format d'image si c'est plus simple, ou autres d'ailleurs. Mais je ne veux rien imprimer du tout ;-))))

Mais peut-être que ça n'est pas possible, ça je ne sais pas ;-))))

Je ne me crois pas aussi compliqué dans ma tête que tu veux faire croire (cf cafetière) ! hihihihi

Merci qd même.

Bon appétit :-))))

Oui c'est une bizarrerie d'Excel voilà une imprimante qui n'imprime rien du tout !!!!!

Mais cette macro n'imprime rien du tout ! L'as-tu essayée ?

Elle te demande seulement d'entrer le nom de ton fichier et il est bien précisé qu'elle produit un pdf...

Je ne me serai pas permis de te répondre sans essayer et c'est d'ailleurs super sympa de me proposer qqechose mais je n'y connais rien donc après avoir copié ton code, il faudrait que je fasse quoi car rien ne s'était passé...

Voici un fichier mieux adapté :

10makepdf.xlsm (80.03 Ko)

Le PDF est enregistré dans le répertoire du classeur.

Il est possible de l'enregistrer ailleurs en modifiant :

nom = "C:\tonchemin\blabla\testmacro.pdf"

A+

C'est gentil d'essayer de m'aider... Je clique sur le bouton mais je ne sais pas vraiment où ça va, j'ai aucune action qui se passe et tu me dis de voir dans le répertoire du fichier et rien en vu ! :-(((

Merci qd même mais en réalité, j'ai besoin de 11 pdf différents, ta solution, ça ne va pas être possible de tte façon. Je pensais que qqn me trouverait une solution. C-à-d qu'en double cliquant dans les cellules J2, dans O2, etc, etc, etc, bref les 11 perfs et à chaque double clique, j'ai un pdf qui se génère..

Ta solution avec des boutons, ça va faire trop de boutons ;-))) Et pour l'instant rien ne se passe en plus...

Merci

Bonne soirée

Mais si ça marche ! il suffit de regarder dans le répertoire en question et ton pdf est bien là.

Grosmalin : Et comment tu veux que Galopin y devine ce que tu veux enregistrer ? Il faut que tu donnes suffisamment de précisions si tu veux du clef en main moi je te donne le code pour faire un pdf après c'est à toi d'adapter...

Dans ce cas le mieux me semble quand même être le bouton. Yfo pas abuser des bonnes choses : Les évents du type double clic dont on ne sait jamais rien c'est comme les raccourci Windows : Yfo s'en rappeler. Et comment Galopin y sait quelle zone correspond au double clic ? pour faire la macro.

Je peux te proposer un truc : On garde le bouton et quand tu appui sur le bouton tu as une boite de dialogue qui te demande de sélectionner la zone à enregistrer. Ça te va ?

Sinon fournir tous les détails : Cellule à double cliquer + zone à enregistrer pour chaque cellule double cliquée.

A+

Bonjour Galopin01 et merci bcp pour ta proposition...

Un bouton qui demanderait la zone dans une boîte de dialogue, ça serait très bien aussi, c'est vrai ;-)))

A savoir qu'il y aura une double zone, c-à-d (A2:B?) + (K2:O?), ou alors (A2:B?) + (P2:U?), etc, etc ==> le "?" dépend du nombre de sportifs qui participent à telle ou telle épreuve.

Merci pour ton conseil explicatif de ne pas utiliser les doubles cliques...

Je viens de trouver le pdf en question en faisant une recherche sur tout mon disk dur : C'était dans "Documents" ;-)))

Est-ce possible d'enregistrer dans C:\Users\vodor\Desktop\Challenge National épreuves sportives. Je tape où le chemin d'accès dans ton code ?

image image

Si ça marche bien, je copierai ta solution dans mon tableur qui est en train d'être peaufiné par un de tes collègues (Arturo83) dans un autre sujet.

Encore merci pour ta précieuse aide :-)))

Bonne journée :-))))

Provisoirement tu peux taper le chemin d'accès dans le code Je vois pour te faire un petit usf.

A+

Le fichier en question : Pour le tester attention de bien paramétrer dans le UserForm "Saisie" en mettant ton chemin car pour l'instant le UserUorm est paramétré pour chez moi.

11makepdf.xlsm (81.70 Ko)

Utilisation :

Ouvrir les 2 classeurs (le tien et le mien)

Dans VBA avec la souris faire glisser le UserForm Saisie de mon classeur vers ton classeur

Il suffit de créer le bouton dans ton classeur (utilise le bouton ActiveX )

Lui donner la propriété TakeFocusOnClick = False

Si tu préfères tu peux également à partir de l'onglet Développeur, te mettre en mode Création.

Sélectionner mon bouton avec un clic droit, le copier et le coller dans ton classeur.

Puis désactiver le mode Création et fermer mon classeur. Normalement le mode Création doit être également désactivé dans ton classeur.

Copier cette macro dans le module de la feuille.

Private Sub CommandButton1_Click()
   Saisie.Show
End Sub

Dans le code du UserForm, attention à bien remplacer avec ton chemin si tu ne l'avais pas enregistré au moment du test.

A+

Merci Galopin01 mais dans la zone de saisie, si je veux les 2 plages, c'est quoi la formule ? ;-))))

Notamment par exemple pour (A2:D30) + (K2:O30)

Autre chose, il y aura toujours (A2:D) dans toutes les saisies. Ainsi, peut-on les mettre par défaut déjà dans la zone de saisie. Y'aura plus qu'à entrer le chiffre pour le "D" + l'autre plage ! ;-))))

Merci

à+

On peut gérer cela en masquant (Donner une largeur zéro aux colonnes indésirables)

Mais cela exigerait une programmation plus compliquée.

En fait il faudrait repenser un peu (euphémisme !) ton tableau : On utilise alors le Gestionnaire de Noms

Voir ma feuille Prm on rajoute alors une colonne Dis et dans le UserForm au lieu de demander de sélectionner les colonnes on va demander de cocher les colonnes souhaitées. Le programme masquerait alors les colonnes non cochées... Cela pourrait aussi être fait manuellement. (masquer/démasquer)
Dans le classeur joint de nombreux détails ont été modifiés pour s'adapter à ces nouvelles exigences.
Le bouton a été repensé, renommé (RegPDF) et ses propriétés on été modifiées pour s'adapter au problème. (En fait cette première ligne est vraiment mal foutue. Il faudrait la supprimer !)
Mébon...
La macro Change aussi a été un peu modifié pour s'adapter au nouveau tableau dans la feuille Prm...
9makepdf2.xlsm (87.33 Ko)
PS : Ne pas oublier de modifier le chemin dans le UserForm !!!
A+

Bonjour Galopin01,

Franchement ce que tu proposes est vraiment très très attractif !!!!!!

En plus tu bosses en pleine nuit !!! Quelle santé ;-)))

Bravo, j'm bcp !!!!!

J'ai un bugue au moment de générer le pdf...

Mais en tout cas la présentation est parfaite !!!

Merci encore

Bonne journée :-))))

image

Cliquer sur débogage et fournir l'imprim écran du VBA.

(On peut parier que l'erreur est au niveau de ton chemin.)

Tu n'es pas obligé de fournir le chemin complet : Le nom du fichier.pdf suffit maintenant que tu sais qu'il se trouvera dans le même dossier que ton classeur. Le chemin n'est nécessaire que si tu veux que tes pdf soient enregistrés dans un dossier spécifique.

Nan justement, comme je t'ai écrit plus haut, il se met dans "Mes documents" mais bon c'est pas ça le pb ce coup-ci...

J'ai mis le chemin dans le code VBA mais ça bug tjrs :-(((

Je ne sais pas comment aller dans le UserForm pour changer le chemin d'accès comme tu me l'avais demandé à un moment :-((((

Quand je clique pour une sélection ça bug et je n'arrive plus à revenir avec le tableau complet ! :-(((((((((((

6makepdf2.xlsm (87.79 Ko)
image

bonjour vodoraix, salut Galopin01,

je pense à une erreur orthographe (accent,espace,...) dans votre chemin, c'est pourquoi j'ai ajouté une nouvelle ligne à la macro deGalopin01

Private Sub CommandButton1_Click()
     Dim FileN$
     Me.Hide
     Masquer
     ChDir "C:\Users\vodor\Desktop\Challenge_National_épreuves_sportives"     '<<<<<<<<<<<<<<<<<<< vérifier le chemin
     FileN = "C:\Users\vodor\Desktop\Challenge_National_épreuves_sportives\testmacro.pdf"
     [TabRes].ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileN, _
                                  IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
     Unload Me
     Columns("E:BZ").EntireColumn.Hidden = False
End Sub

Merci pour ta participation BsAlv mais là je nage complet et ne comprends rien, désolé :-((((((((((((((

Rechercher des sujets similaires à "capture automatisee partie extraire pdf"