SlideShare une entreprise Scribd logo
1  sur  19
Télécharger pour lire hors ligne
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
1
Comment transformer vos fichiers Excel en présentation PowerPoint en 1 clic ?
Je vous propose, aujourd’hui, un article invité d’Alexandre d’Excel Formation.
Dans cet article, nous allons voir comment, d’un seul clic, il est possible de transformer une
feuille de calcul Excel en une présentation PowerPoint, de manière instantanée.
Pour ce faire, nous allons décomposer notre feuille de calcul en plusieurs slides, en utilisant
les zones d’impressions. Mais nous aurions également pu utiliser d’autres outils (comme par
exemple transformer chaque feuille de calculs en autant de slides).
Cet article va être découpée en 2 parties, plus une 3e
partie bonus que je vous laisse découvrir
en fin de texte :
1. Dans la première partie, nous allons voir comment extraire les coordonnées de
chacune des zones d’impression de la feuille ;
2. Puis, dans la seconde partie, nous verrons comment exporter le contenu de chacune
de ces zones dans une présentation PowerPoint.
Le lien pour télécharger le fichier de macros complémentaires contenant l’ensemble de la
procédure est disponible à la fin du tutoriel.
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
2
Décomposons notre feuille de calculs en slides :
Pour illustrer cet article, nous allons utiliser un classeur d’exemple que nous avions mis en place
pour un article précédent ayant pour thème la formule RECHERCHEV(). Celui-ci se prête bien
à l’exercice, car il est constitué de nombreuses lignes et sera donc scindé en plusieurs slides.
Mais, bien entendu, libre à vous d’utiliser votre propre classeur Excel.
Voyons à présent comment récupérer les coordonnées de nos zones d’impression.
Si l’on effectue un aperçu avant impression de la feuille de calculs, on constate que toutes les
pages vont être imprimées, mais qu’aucune règle n’est clairement définie. Les passages aux
pages suivantes se font automatiquement en bas de feuille.
Nous allons commercer par insérer des sauts de page pour forcer l’édition à passer sur une
nouvelle page lorsque nous le choisissons :
• Pour cela, nous allons passer l’affichage en mode Afficher les sauts de page, en cliquant sur
le bouton correspondant en bas de la fenêtre :
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
3
• Puis, nous insérons manuellement tous les sauts de page, en gardant à l’esprit que ces
derniers vont nous permettre de délimiter chacun de nos slides :
o Nous commençons par sélectionner la ligne sur laquelle le saut de page devra être
inséré ;
o Puis, nous effectuons un clic droit ;
o Enfin, nous choisissons Insérer un saut de page ;
o Cette opération est à répéter pour tous les sauts de page :
Cela étant fait, nous pouvons repasser en mode Normal et vérifier le résultat avec un nouvel
Aperçu avant impression.
À présent, nous allons coder une nouvelle macro-commande en VBA qui va nous permettre
de récupérer les coordonnées de chacune des zones d’impression. Pour cela :
• Effectuons un clic droit sur l’onglet de la feuille de calcul ;
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
4
• Pour choisir Visualiser le code :
• Nous arrivons alors dans l’outil de développement d’Excel (VBA) ;
• Nous allons insérer un nouveau module (menu Insertion, puis Module) :
• Dans ce module, nous allons créer une nouvelle procédure que nous allons appeler sub
exporterVersPowerpoint, qui va nous permettre de générer notre export :
Sub exporterVersPowerpoint()
‘Partie 1 : Récupérer l’adresse des pages d’impressions
‘Partie 2 : Exporter chacune de ces zones vers une présentation PowerPoint
End Sub
Comme vous pouvez le constater, notre code sera décomposé en 2 étapes :
• Dans la première partie, nous allons identifier et stocker dans une variable les coordonnées
de chacune des zones d’impression que nous avons définie précédemment ;
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
5
• Dans une seconde partie, nous allons "exporter" ces plages de cellules dans des diapos
PowerPoint.
Pour stocker les adresses des zones d’impressions, nous allons instancier une nouvelle variable
de type String (c’est-à-dire une chaîne de caractères). Chaque adresse sera séparée au sein de
cette chaîne par un tiret ("-") :
‘Partie 1 : Récupérer l’adresse des pages d’impressions
Dim plages as String: plages = ""
Cette variable "plages" est pour le moment vide. Ensuite, pour récupérer les adresses des zones
d’impressions, nous allons utiliser l’objet HPageBreaks qui reprend chacun des sauts de pages
que nous avons définis au tout début de cette partie. Pour ne pas avoir à le ressaisir à chaque
fois, nous allons utiliser l’opérateur with :
With ActiveSheet.HPageBreaks
End With
De cette manière, dès lors qu’une propriété située entre ces 2 balises va commencer par un
point ("."), alors il s’agira d’une sous-propriété de HPageBreaks.
Les 2 expressions sont ainsi équivalentes :
‘Expression 1 : Avec l’opérateur with
With ActiveSheet.HPageBreaks
nombreSautDePage = .Count
End With
‘Expression 2 : Sans l’opérateur with
nombreSautDePage = ActiveSheet.HPageBreaks.Count
Pour commencer, nous allons vouloir savoir combien de sauts de page ont été insérés. De cette
manière, si aucun saut de page n’est identifié, alors cela signifie que toute notre feuille devra
être insérée dans un seul slide. Pour cela, nous allons utiliser l’instruction Count de
HPageBreaks (en commençant par un point).
If .Count = 0 Then
Else
End If
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
6
Ainsi, si .Count est égal à zéro, alors notre variable "plages", instanciée juste avant, est égale
aux coordonnées de l’ensemble des cellules utilisées dans notre feuille, que nous allons
récupérer avec l’instruction UsedRange :
If .Count = 0 Then
plages = ActiveSheet.UsedRange.Address
Par contre, si au moins un saut de page est identifié par Excel, alors nous allons vouloir les
coordonnées de chacun d’entre eux. L’objet HPageBreaks est en fait constitué d’autant de
sous-objets qu’il y a de sauts de page dans la feuille de calculs. Chacun de ses sous-objets porte
le nom d’Item.
Nous allons les passer en revue l’un après l’autre, en utilisant une boucle for :
Else
For i = 1 To .Count
Next
La variable i que nous utilisons pour notre boucle va ainsi prendre une valeur qui va
s’incrémenter lors de chaque nouvelle boucle (1, puis 2, puis 3 et ainsi de suite). Nous
pourrons donc récupérer le numéro de la ligne sur la laquelle est placé le saut de page numéro i
grâce à la propriété .Item(i).Location.Row
For i = 1 To .Count
ligneSaut = .Item(i).Location.Row
MsgBox ligneSaut
Next
Pour tester qu’Excel nous retourne bien le bon numéro de ligne, nous utilisons la fonction
msgbox qui permet d’afficher un message.
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
7
De retour dans notre feuille de calcul, si nous exécutons la commande (en appuyant sur les
touches Alt et F8 en même temps), le premier résultat retourné par Excel est la ligne 21 :
Le premier slide aura donc pour coordonnées les lignes 1 à 20 (et non 21, car la ligne 21 est
déjà sur le second slide) :
Pour connaître les coordonnées des colonnes, nous allons utiliser à nouveau une des propriétés
de UsedRange que nous avons vue précédemment, afin de compter le nombre de colonnes :
Dim derniereColonne As String
derniereColonne = ActiveSheet.UsedRange.Columns.Count
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
8
Nous pouvons maintenant déterminer l’adresse des cellules qui vont constituer le premier slide :
For i = 1 To .Count
ligneSaut = .Item(i).Location.Row
Dim derniereColonne As Integer
derniereColonne = ActiveSheet.UsedRange.Columns.Count
plages = plages & Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(ligneSaut - 1,
derniereColonne)).Address & "-"
MsgBox plages
Next
Vous noterez la présence du tiret en fin de chaîne pour séparer chacune des adresses. Si vous
testez la macro-commande à ce stade de son écriture, vous noterez que celle-ci commence
toujours sur la première ligne de notre feuille ($A$1) :
Pour régler ce problème, nous allons introduire une nouvelle variable que nous allons appeler
debut avec pour valeur 1 (pour la première ligne), puis à la fin de chaque cycle de la boucle,
celle-ci prendra la valeur de ligneSaut.
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
9
Enfin, nous utiliserons cette variable dans l’adresse de notre plage :
Else
Dim debut As Integer
debut = 1
For i = 1 To .Count
[…]
plages = plages & Range(ActiveSheet.Cells(debut, 1),
ActiveSheet.Cells(ligneSaut - 1, derniereColonne)).Address & "-"
debut = ligneSaut
Next
End If
Attention : si vous regardez attentivement les coordonnées retournées par la variable plages,
vous constaterez que celle-ci s’arrête au dernier saut de page (ligne 164 dans notre exemple),
et donc la dernière partie de la feuille de calcul n’est pas prise en compte (lignes 165 à 188) !
Il faut donc ajouter une dernière ligne à la suite de la boucle :
ligneFin = ActiveSheet.UsedRange.Rows.Count
plages = plages & Range(ActiveSheet.Cells(debut, 1), ActiveSheet.Cells(ligneFin,
derniereColonne)).Address & "-"
La dernière opération de cette première partie va consister à exclure le dernier caractère de la
variable "plages" (qui sera toujours un tiret).
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
10
Pour cela, nous allons utiliser l’instruction Left(), en spécifiant que nous désirons récupérer la
partie gauche de la variable "plages" pour le nombre de caractères contenus dans celle-ci, moins
un caractère :
‘Partie 1 : Récupérer l’adresse des pages d’impressions
Dim plages As String: plages = ""
With ActiveSheet.HPageBreaks
If .Count = 0 Then
plages = ActiveSheet.UsedRange.Address
Else
Dim debut As Integer
debut = 1
For i = 1 To .Count
ligneSaut = .Item(i).Location.Row
Dim derniereColonne As Integer
derniereColonne = ActiveSheet.UsedRange.Columns.Count
plages = plages & Range(ActiveSheet.Cells(debut, 1),
ActiveSheet.Cells(ligneSaut - 1, derniereColonne)).Address & "-"
debut = ligneSaut
Next
ligneFin = ActiveSheet.UsedRange.Rows.Count
plages = plages & Range(ActiveSheet.Cells(debut, 1),
ActiveSheet.Cells(ligneFin, derniereColonne)).Address & "-"
plages = Left(plages, Len(plages) - 1)
End If
End With
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
11
Nous disposons à présent d’une chaîne de caractères reprenant les adresses de chacune des
zones d’impressions, qui sont séparées par un tiret ("-") :
Nous allons maintenant pouvoir les exporter dans PowerPoint.
Exportons nos zones d’impressions dans PowerPoint :
Pour utiliser une application externe, telle que PowerPoint, depuis VBA, nous allons tout
d’abord devoir activer cette dernière.
Dans le menu Outils, choisissez Références :
Dans la fenêtre qui s’affiche, nous allons rechercher Microsoft PowerPoint Object Library
et cocher la case correspondante. Si vous avez activé cette référence dernièrement, celle-ci
devrait se trouver en haut de la liste (comme sur l’image ci-dessous). Dans le cas contraire,
vous la trouverez beaucoup plus bas, en suivant les références classées dans l’ordre
alphabétique.
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
12
Enfin, nous validons avec le bouton Ok :
À présent, nous allons pouvoir instancier un nouvel objet qui va nous permettre de prendre
le contrôle de PowerPoint :
‘Partie 2 : Exporter chacune de ces zones vers une présentation powerpoint
Dim oPowerPoint As Object
Set oPowerPoint = CreateObject("Powerpoint.application")
Grâce à cet objet que nous venons de créer, nous allons pouvoir générer une nouvelle
présentation PowerPoint, qui sera un sous-objet de oPowerPoint :
Dim oDiaporama As Object
Set oDiaporama = oPowerPoint.Presentations.Add
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
13
Si vous testez le code à ce moment de son développement, vous constaterez qu’Excel va
demander à PowerPoint de se lancer, puis de créer une nouvelle présentation. Évidemment,
celle-ci sera vide :
Nous allons maintenant ajouter les slides qui correspondent aux cellules de chaque zone
d’impressions que nous avons déterminées dans la première partie. Pour commencer, nous
allons instancier une nouvelle variable qui va reprendre l’identifiant de chaque diapositive.
Nous allons initialiser cette variable avec la valeur 1, pour le premier slide
idDiapo= 1
Puis, nous allons parcourir les différentes plages de cellules en utilisant une boucle for each,
combinée avec l’instruction split(). Cette dernière va nous permettre de séparer les plages en
fonction de chaque tiret
For Each plage In Split(plages, "-")
Next
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
14
Lors de chaque passage dans la boucle, nous allons créer une nouvelle diapositive dans notre
présentation en créant un nouvel objet. Cette diapositive aura pour index la variable idDiapo et
sera de type ppLayoutBlank, c’est-à-dire une diapositive vide :
For Each plage In Split(plages, "-")
Dim diapositive As Object
Set diapositive = oDiaporama.Slides.Add(Index:=idDiapo, Layout:=ppLayoutBlank)
Next
Pour exporter les données dans la présentation, nous allons effectuer un copier-coller un peu
particulier. Comprenez par-là que nous allons effectuer un collage spécial de type
ppPasteEnhancedMetafile, c’est-à-dire sous la forme d’une image :
ActiveSheet.Range(plage).Copy
oDiaporama.Slides(idDiapo).Shapes.PasteSpecial
DataType:=ppPasteEnhancedMetafile
Enfin, nous pouvons passer à la diapo suivante :
idDiapo = idDiapo + 1
À présent, nous pouvons tester la macro-commande et si tout se passe bien, vous devriez vous
retrouver avec une présentation PowerPoint de l’ensemble de vos zones d’impressions :
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
15
Cette présentation est pour le moment assez rudimentaire, mais vous pourrez l’améliorer en
quelques clics seulement, par exemple en utilisant les thèmes intégrés à PowerPoint. Je vous
invite également à suivre les excellents tutos disponibles sur votreassistante.net qui vont
vous permettre d’améliorer grandement votre présentation.
En bonus, pour les personnes qui ont suivi ce tuto jusqu’au bout, nous allons maintenant voir
comment créer un bouton dans la Barre d’outils Accès rapide, afin de pouvoir transformer
n’importe quelle feuille de calcul en présentation.
BONUS : Comment accéder à notre macro en 1 clic depuis n’importe quelle feuille de
calcul ?
En effet, la macro-commande que nous venons de créer est directement liée à la feuille de
calcul de test. Par conséquent, lorsque celle-ci sera fermée, la macro-commande ne sera
plus accessible.
Pour commencer, nous allons créer un nouveau classeur (en appuyant sur les
touches Ctrl + N).
Puis, depuis l’outil de développement VBA, nous allons effectuer un glisser-déposer du
module que nous venons créer, afin de le dupliquer. Pour cela nous cliquons dessus, et nous
faisons glisser la souris jusqu’à notre nouveau classeur :
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
16
Pour que la macro fonctionne, il faut activer la référence Microsoft PowerPoint Object Library
sur ce nouveau classeur comme nous l’avons vu juste au-dessus :
Ensuite, nous revenons sur le classeur que nous allons enregistrer en effectuant un Enregistrer
sous (touche F12 du clavier). Dans le type de classeur, nous allons choisir Complément
Excel (*.xlam) :
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
17
Automatiquement, Excel ouvre le répertoire d’enregistrement des macros
complémentaires (AddIns), nous allons alors donner le nom exporterVersPowerpoint.xlam à
ce classeur et appuyer sur la touche Enregistrer pour valider :
En réalité, Excel enregistre une copie du fichier, l’original restant toujours intact.
Nous pouvons à présent quitter les 2 classeurs Excel, sans enregistrer, puis relancer Excel.
Pour activer le complément, rendez-vous dans Fichier > Options > Compléments.
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
18
Dans le menu Gérer en bas de la fenêtre, choisissez Compléments Excel, puis Atteindre :
Dans la fenêtre qui s’affiche, sélectionnez l’option exporterVersPowerpoint et validez avec
Ok.
Votre Assistante : https://www.votreassistante.net - le 06/11/2018
Article écrit par Alexandre du site
Excel Formation : https://www.excelformation.fr
19
Enfin, pour créer un bouton accessible depuis n’importe quel classeur, rendez-vous dans
Fichier > Options > Barre d’outils Accès rapide, puis, dans le menu, choisissez les
commandes, puis les Macros :
Il suffit ensuite de repérer la macro exporterVersPowerpoint, de double-cliquer sur celle-ci et
enfin de valider avec Ok.
Ce tutoriel est maintenant terminé, si vous l’avez suivi à la lettre, vous devriez à présent avoir
un nouveau bouton dans la barre d’accès rapide qui se trouve par défaut en haut à
gauche (au-dessus du ruban) :
Le fichier complet est disponible à cette adresse. Vous trouverez également un tutoriel indiquant
la marche à suivre pour installer ce dernier.
Tutoriel réalisé avec Excel 2016
Voir la version vidéo de cet article

Contenu connexe

Tendances

Tugas makalah good corporate governance
Tugas makalah good corporate governanceTugas makalah good corporate governance
Tugas makalah good corporate governanceMhd. Abdullah Hamid
 
Enisa guni
Enisa guniEnisa guni
Enisa gunienisa06
 
Tatimet definicioni baza dhe norma tatimore 2017
Tatimet definicioni  baza dhe norma tatimore 2017Tatimet definicioni  baza dhe norma tatimore 2017
Tatimet definicioni baza dhe norma tatimore 2017UBT University
 
Integrime Ekonomike Evropiane
Integrime Ekonomike EvropianeIntegrime Ekonomike Evropiane
Integrime Ekonomike EvropianeVeton Sopjani
 
Korniza rregullative - konventat kontabel
Korniza rregullative - konventat kontabelKorniza rregullative - konventat kontabel
Korniza rregullative - konventat kontabelMenaxherat
 
Prezantim e drejte sigurimesh
Prezantim e drejte sigurimeshPrezantim e drejte sigurimesh
Prezantim e drejte sigurimeshJana511
 
Visualisasi Laporan Keuangan Untuk Meningkatkan Understandability Pengguna La...
Visualisasi Laporan Keuangan Untuk Meningkatkan Understandability Pengguna La...Visualisasi Laporan Keuangan Untuk Meningkatkan Understandability Pengguna La...
Visualisasi Laporan Keuangan Untuk Meningkatkan Understandability Pengguna La...Khrisna Ariyudha
 
Transfer pricing suatu pemahaman awal (short version)
Transfer pricing suatu pemahaman awal (short version)Transfer pricing suatu pemahaman awal (short version)
Transfer pricing suatu pemahaman awal (short version)Futurum2
 
Parashikimi financiar leksion
Parashikimi financiar leksionParashikimi financiar leksion
Parashikimi financiar leksionMenaxherat
 
Kecurangan, Pengendalian Internal, dan Kas
Kecurangan, Pengendalian Internal, dan KasKecurangan, Pengendalian Internal, dan Kas
Kecurangan, Pengendalian Internal, dan KasFair Nurfachrizi
 
10.audit kecurangan
10.audit kecurangan10.audit kecurangan
10.audit kecuranganIndra Yu
 
Biznesi familjar
Biznesi familjarBiznesi familjar
Biznesi familjarZana Agushi
 
Ekonomia e Kosovës dhe BE-së - Dr. Gazmend Qorraj (Pyetje dhe përgjigje)
Ekonomia e Kosovës dhe BE-së - Dr. Gazmend Qorraj (Pyetje dhe përgjigje)Ekonomia e Kosovës dhe BE-së - Dr. Gazmend Qorraj (Pyetje dhe përgjigje)
Ekonomia e Kosovës dhe BE-së - Dr. Gazmend Qorraj (Pyetje dhe përgjigje)fatonbajrami1
 
Politika e dividendit
Politika e dividenditPolitika e dividendit
Politika e dividenditLidijeRapaj
 
Statistike, ushtrime 2
Statistike, ushtrime 2Statistike, ushtrime 2
Statistike, ushtrime 2coupletea
 
Pyetjet me përgjigje nga kontabiliteti
Pyetjet me përgjigje nga kontabilitetiPyetjet me përgjigje nga kontabiliteti
Pyetjet me përgjigje nga kontabilitetiKushtrim Xhemajli
 
1. biznesi dhe format e organizimit të tij
1. biznesi dhe format e organizimit të tij1. biznesi dhe format e organizimit të tij
1. biznesi dhe format e organizimit të tijMenaxherat
 

Tendances (20)

Tugas makalah good corporate governance
Tugas makalah good corporate governanceTugas makalah good corporate governance
Tugas makalah good corporate governance
 
Enisa guni
Enisa guniEnisa guni
Enisa guni
 
Tatimet definicioni baza dhe norma tatimore 2017
Tatimet definicioni  baza dhe norma tatimore 2017Tatimet definicioni  baza dhe norma tatimore 2017
Tatimet definicioni baza dhe norma tatimore 2017
 
Integrime Ekonomike Evropiane
Integrime Ekonomike EvropianeIntegrime Ekonomike Evropiane
Integrime Ekonomike Evropiane
 
Korniza rregullative - konventat kontabel
Korniza rregullative - konventat kontabelKorniza rregullative - konventat kontabel
Korniza rregullative - konventat kontabel
 
Prezantim e drejte sigurimesh
Prezantim e drejte sigurimeshPrezantim e drejte sigurimesh
Prezantim e drejte sigurimesh
 
Visualisasi Laporan Keuangan Untuk Meningkatkan Understandability Pengguna La...
Visualisasi Laporan Keuangan Untuk Meningkatkan Understandability Pengguna La...Visualisasi Laporan Keuangan Untuk Meningkatkan Understandability Pengguna La...
Visualisasi Laporan Keuangan Untuk Meningkatkan Understandability Pengguna La...
 
Psak 46
Psak 46Psak 46
Psak 46
 
Transfer pricing suatu pemahaman awal (short version)
Transfer pricing suatu pemahaman awal (short version)Transfer pricing suatu pemahaman awal (short version)
Transfer pricing suatu pemahaman awal (short version)
 
Parashikimi financiar leksion
Parashikimi financiar leksionParashikimi financiar leksion
Parashikimi financiar leksion
 
Joint venture ppt
Joint venture pptJoint venture ppt
Joint venture ppt
 
Kecurangan, Pengendalian Internal, dan Kas
Kecurangan, Pengendalian Internal, dan KasKecurangan, Pengendalian Internal, dan Kas
Kecurangan, Pengendalian Internal, dan Kas
 
10.audit kecurangan
10.audit kecurangan10.audit kecurangan
10.audit kecurangan
 
Biznesi familjar
Biznesi familjarBiznesi familjar
Biznesi familjar
 
Ekonomia e Kosovës dhe BE-së - Dr. Gazmend Qorraj (Pyetje dhe përgjigje)
Ekonomia e Kosovës dhe BE-së - Dr. Gazmend Qorraj (Pyetje dhe përgjigje)Ekonomia e Kosovës dhe BE-së - Dr. Gazmend Qorraj (Pyetje dhe përgjigje)
Ekonomia e Kosovës dhe BE-së - Dr. Gazmend Qorraj (Pyetje dhe përgjigje)
 
Politika e dividendit
Politika e dividenditPolitika e dividendit
Politika e dividendit
 
Statistike, ushtrime 2
Statistike, ushtrime 2Statistike, ushtrime 2
Statistike, ushtrime 2
 
Pyetjet me përgjigje nga kontabiliteti
Pyetjet me përgjigje nga kontabilitetiPyetjet me përgjigje nga kontabiliteti
Pyetjet me përgjigje nga kontabiliteti
 
Audit Program 2
Audit Program 2Audit Program 2
Audit Program 2
 
1. biznesi dhe format e organizimit të tij
1. biznesi dhe format e organizimit të tij1. biznesi dhe format e organizimit të tij
1. biznesi dhe format e organizimit të tij
 

Similaire à Comment transformer vos fichiers Excel en présentation PowerPoint en 1 clic ?

Comment compter les répétitions de caractères dans une cellule et créer une f...
Comment compter les répétitions de caractères dans une cellule et créer une f...Comment compter les répétitions de caractères dans une cellule et créer une f...
Comment compter les répétitions de caractères dans une cellule et créer une f...Votre Assistante
 
js---Partie1----.pdf
js---Partie1----.pdfjs---Partie1----.pdf
js---Partie1----.pdfMiRA452885
 
Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...
Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...
Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...Votre Assistante
 
Support tutoriel : Créer votre jeu en HTML5
Support tutoriel : Créer votre jeu en HTML5Support tutoriel : Créer votre jeu en HTML5
Support tutoriel : Créer votre jeu en HTML5SmartnSkilled
 
Créer un message d’alerte à l’ouverture d’Excel
Créer un message d’alerte à l’ouverture d’ExcelCréer un message d’alerte à l’ouverture d’Excel
Créer un message d’alerte à l’ouverture d’ExcelVotre Assistante
 
Microsoft business-intelligence
Microsoft business-intelligenceMicrosoft business-intelligence
Microsoft business-intelligenceBENJID Mohamed
 
Javascript - Fonctions : que fait ce code ?
Javascript - Fonctions : que fait ce code ?Javascript - Fonctions : que fait ce code ?
Javascript - Fonctions : que fait ce code ?Ruau Mickael
 
Chapitre 9-Les Formulaires et les contrôles.pptx
Chapitre 9-Les Formulaires et les contrôles.pptxChapitre 9-Les Formulaires et les contrôles.pptx
Chapitre 9-Les Formulaires et les contrôles.pptxSamiBENAISSIA1
 
Cours JavaScript.ppt
Cours JavaScript.pptCours JavaScript.ppt
Cours JavaScript.pptPROFPROF11
 
utilisation de MATLAB dans l'asservissement.pdf
utilisation de MATLAB dans l'asservissement.pdfutilisation de MATLAB dans l'asservissement.pdf
utilisation de MATLAB dans l'asservissement.pdfAnesKebbab
 
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?Votre Assistante
 
cours developpement web javascript 2023/2024
cours developpement web javascript 2023/2024cours developpement web javascript 2023/2024
cours developpement web javascript 2023/2024YounesOuladSayad1
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de donnéesISIG
 

Similaire à Comment transformer vos fichiers Excel en présentation PowerPoint en 1 clic ? (20)

Comment compter les répétitions de caractères dans une cellule et créer une f...
Comment compter les répétitions de caractères dans une cellule et créer une f...Comment compter les répétitions de caractères dans une cellule et créer une f...
Comment compter les répétitions de caractères dans une cellule et créer une f...
 
js---Partie1----.pdf
js---Partie1----.pdfjs---Partie1----.pdf
js---Partie1----.pdf
 
Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...
Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...
Explication du code VBA utilisé dans le tutoriel Créer un formulaire personna...
 
Support tutoriel : Créer votre jeu en HTML5
Support tutoriel : Créer votre jeu en HTML5Support tutoriel : Créer votre jeu en HTML5
Support tutoriel : Créer votre jeu en HTML5
 
Créer un message d’alerte à l’ouverture d’Excel
Créer un message d’alerte à l’ouverture d’ExcelCréer un message d’alerte à l’ouverture d’Excel
Créer un message d’alerte à l’ouverture d’Excel
 
Microsoft business-intelligence
Microsoft business-intelligenceMicrosoft business-intelligence
Microsoft business-intelligence
 
Javascript - Fonctions : que fait ce code ?
Javascript - Fonctions : que fait ce code ?Javascript - Fonctions : que fait ce code ?
Javascript - Fonctions : que fait ce code ?
 
Chapitre 9-Les Formulaires et les contrôles.pptx
Chapitre 9-Les Formulaires et les contrôles.pptxChapitre 9-Les Formulaires et les contrôles.pptx
Chapitre 9-Les Formulaires et les contrôles.pptx
 
Excel2007
Excel2007Excel2007
Excel2007
 
Cours vba excel bahi djedje laurent n. formation ejs
Cours vba excel bahi  djedje laurent n. formation ejs Cours vba excel bahi  djedje laurent n. formation ejs
Cours vba excel bahi djedje laurent n. formation ejs
 
Vba
VbaVba
Vba
 
Cours JavaScript.ppt
Cours JavaScript.pptCours JavaScript.ppt
Cours JavaScript.ppt
 
utilisation de MATLAB dans l'asservissement.pdf
utilisation de MATLAB dans l'asservissement.pdfutilisation de MATLAB dans l'asservissement.pdf
utilisation de MATLAB dans l'asservissement.pdf
 
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?
Comment réinitialiser (vider) une liste déroulante en cascade sur Excel ?
 
formation excel
formation excelformation excel
formation excel
 
cours developpement web javascript 2023/2024
cours developpement web javascript 2023/2024cours developpement web javascript 2023/2024
cours developpement web javascript 2023/2024
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
Environnement de développement de bases de données
Environnement de développement de bases de donnéesEnvironnement de développement de bases de données
Environnement de développement de bases de données
 
Les Widgets
Les WidgetsLes Widgets
Les Widgets
 
Tp1 matlab
Tp1 matlab Tp1 matlab
Tp1 matlab
 

Plus de Votre Assistante

Comment créer un effet de texte avec une ombre longue sur Illustrator ?
Comment créer un effet de texte avec une ombre longue sur Illustrator ?Comment créer un effet de texte avec une ombre longue sur Illustrator ?
Comment créer un effet de texte avec une ombre longue sur Illustrator ?Votre Assistante
 
Comment compacter une base de données Access en VBA.pdf
Comment compacter une base de données Access en VBA.pdfComment compacter une base de données Access en VBA.pdf
Comment compacter une base de données Access en VBA.pdfVotre Assistante
 
Comment créer un modèle de document Word ?
Comment créer un modèle de document Word ?Comment créer un modèle de document Word ?
Comment créer un modèle de document Word ?Votre Assistante
 
Comment ouvrir plusieurs images dans Camera Raw ?
Comment ouvrir plusieurs images dans Camera Raw ?Comment ouvrir plusieurs images dans Camera Raw ?
Comment ouvrir plusieurs images dans Camera Raw ?Votre Assistante
 
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?Votre Assistante
 
Comment créer un modèle de diaporama PowerPoint ?
Comment créer un modèle de diaporama PowerPoint ?Comment créer un modèle de diaporama PowerPoint ?
Comment créer un modèle de diaporama PowerPoint ?Votre Assistante
 
Comment alimenter une liste déroulante dans Word avec une liste Excel ?
Comment alimenter une liste déroulante dans Word avec une liste Excel ?Comment alimenter une liste déroulante dans Word avec une liste Excel ?
Comment alimenter une liste déroulante dans Word avec une liste Excel ?Votre Assistante
 
Comment calculer l'âge dans une base de données Access ?
Comment calculer l'âge dans une base de données Access ?Comment calculer l'âge dans une base de données Access ?
Comment calculer l'âge dans une base de données Access ?Votre Assistante
 
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...Comment modifier le contenu d’une liste déroulante en cascade si la précédent...
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...Votre Assistante
 
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?Votre Assistante
 
Comment créer un effet vignettage sur Photoshop ?
Comment créer un effet vignettage sur Photoshop ?Comment créer un effet vignettage sur Photoshop ?
Comment créer un effet vignettage sur Photoshop ?Votre Assistante
 
Comment cocher et décocher des cases à cocher en 1 clic dans un formulaire su...
Comment cocher et décocher des cases à cocher en 1 clic dans un formulaire su...Comment cocher et décocher des cases à cocher en 1 clic dans un formulaire su...
Comment cocher et décocher des cases à cocher en 1 clic dans un formulaire su...Votre Assistante
 
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...Votre Assistante
 
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...Votre Assistante
 
Comment numéroter certaines lignes dans Word ?
Comment numéroter certaines lignes dans Word ?Comment numéroter certaines lignes dans Word ?
Comment numéroter certaines lignes dans Word ?Votre Assistante
 
Comment créer un modèle de base de données Access ?
Comment créer un modèle de base de données Access ?Comment créer un modèle de base de données Access ?
Comment créer un modèle de base de données Access ?Votre Assistante
 
Comment créer un effet fourrure sur Illustrator ?
Comment créer un effet fourrure sur Illustrator ?Comment créer un effet fourrure sur Illustrator ?
Comment créer un effet fourrure sur Illustrator ?Votre Assistante
 
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...Votre Assistante
 
Comment créer un calendrier perpétuel sur Excel ?
Comment créer un calendrier perpétuel sur Excel ?Comment créer un calendrier perpétuel sur Excel ?
Comment créer un calendrier perpétuel sur Excel ?Votre Assistante
 
Créer un bonhomme de neige avec Illustrator
Créer un bonhomme de neige avec IllustratorCréer un bonhomme de neige avec Illustrator
Créer un bonhomme de neige avec IllustratorVotre Assistante
 

Plus de Votre Assistante (20)

Comment créer un effet de texte avec une ombre longue sur Illustrator ?
Comment créer un effet de texte avec une ombre longue sur Illustrator ?Comment créer un effet de texte avec une ombre longue sur Illustrator ?
Comment créer un effet de texte avec une ombre longue sur Illustrator ?
 
Comment compacter une base de données Access en VBA.pdf
Comment compacter une base de données Access en VBA.pdfComment compacter une base de données Access en VBA.pdf
Comment compacter une base de données Access en VBA.pdf
 
Comment créer un modèle de document Word ?
Comment créer un modèle de document Word ?Comment créer un modèle de document Word ?
Comment créer un modèle de document Word ?
 
Comment ouvrir plusieurs images dans Camera Raw ?
Comment ouvrir plusieurs images dans Camera Raw ?Comment ouvrir plusieurs images dans Camera Raw ?
Comment ouvrir plusieurs images dans Camera Raw ?
 
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?
Comment créer des listes déroulantes en cascade à 3 niveaux sur Excel ?
 
Comment créer un modèle de diaporama PowerPoint ?
Comment créer un modèle de diaporama PowerPoint ?Comment créer un modèle de diaporama PowerPoint ?
Comment créer un modèle de diaporama PowerPoint ?
 
Comment alimenter une liste déroulante dans Word avec une liste Excel ?
Comment alimenter une liste déroulante dans Word avec une liste Excel ?Comment alimenter une liste déroulante dans Word avec une liste Excel ?
Comment alimenter une liste déroulante dans Word avec une liste Excel ?
 
Comment calculer l'âge dans une base de données Access ?
Comment calculer l'âge dans une base de données Access ?Comment calculer l'âge dans une base de données Access ?
Comment calculer l'âge dans une base de données Access ?
 
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...Comment modifier le contenu d’une liste déroulante en cascade si la précédent...
Comment modifier le contenu d’une liste déroulante en cascade si la précédent...
 
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?
Comment utiliser et modifier des icônes Font Awesome sur Illustrator ?
 
Comment créer un effet vignettage sur Photoshop ?
Comment créer un effet vignettage sur Photoshop ?Comment créer un effet vignettage sur Photoshop ?
Comment créer un effet vignettage sur Photoshop ?
 
Comment cocher et décocher des cases à cocher en 1 clic dans un formulaire su...
Comment cocher et décocher des cases à cocher en 1 clic dans un formulaire su...Comment cocher et décocher des cases à cocher en 1 clic dans un formulaire su...
Comment cocher et décocher des cases à cocher en 1 clic dans un formulaire su...
 
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...
Comment insérer des données Excel dans PowerPoint avec ou sans mise à jour au...
 
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...
Pourquoi utiliser le menu Développeur de Microsoft et comment l’afficher sur ...
 
Comment numéroter certaines lignes dans Word ?
Comment numéroter certaines lignes dans Word ?Comment numéroter certaines lignes dans Word ?
Comment numéroter certaines lignes dans Word ?
 
Comment créer un modèle de base de données Access ?
Comment créer un modèle de base de données Access ?Comment créer un modèle de base de données Access ?
Comment créer un modèle de base de données Access ?
 
Comment créer un effet fourrure sur Illustrator ?
Comment créer un effet fourrure sur Illustrator ?Comment créer un effet fourrure sur Illustrator ?
Comment créer un effet fourrure sur Illustrator ?
 
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...
Comment créer une carte de vœux sur Photoshop avec un effet de sapin de Noël ...
 
Comment créer un calendrier perpétuel sur Excel ?
Comment créer un calendrier perpétuel sur Excel ?Comment créer un calendrier perpétuel sur Excel ?
Comment créer un calendrier perpétuel sur Excel ?
 
Créer un bonhomme de neige avec Illustrator
Créer un bonhomme de neige avec IllustratorCréer un bonhomme de neige avec Illustrator
Créer un bonhomme de neige avec Illustrator
 

Comment transformer vos fichiers Excel en présentation PowerPoint en 1 clic ?

  • 1. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 1 Comment transformer vos fichiers Excel en présentation PowerPoint en 1 clic ? Je vous propose, aujourd’hui, un article invité d’Alexandre d’Excel Formation. Dans cet article, nous allons voir comment, d’un seul clic, il est possible de transformer une feuille de calcul Excel en une présentation PowerPoint, de manière instantanée. Pour ce faire, nous allons décomposer notre feuille de calcul en plusieurs slides, en utilisant les zones d’impressions. Mais nous aurions également pu utiliser d’autres outils (comme par exemple transformer chaque feuille de calculs en autant de slides). Cet article va être découpée en 2 parties, plus une 3e partie bonus que je vous laisse découvrir en fin de texte : 1. Dans la première partie, nous allons voir comment extraire les coordonnées de chacune des zones d’impression de la feuille ; 2. Puis, dans la seconde partie, nous verrons comment exporter le contenu de chacune de ces zones dans une présentation PowerPoint. Le lien pour télécharger le fichier de macros complémentaires contenant l’ensemble de la procédure est disponible à la fin du tutoriel.
  • 2. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 2 Décomposons notre feuille de calculs en slides : Pour illustrer cet article, nous allons utiliser un classeur d’exemple que nous avions mis en place pour un article précédent ayant pour thème la formule RECHERCHEV(). Celui-ci se prête bien à l’exercice, car il est constitué de nombreuses lignes et sera donc scindé en plusieurs slides. Mais, bien entendu, libre à vous d’utiliser votre propre classeur Excel. Voyons à présent comment récupérer les coordonnées de nos zones d’impression. Si l’on effectue un aperçu avant impression de la feuille de calculs, on constate que toutes les pages vont être imprimées, mais qu’aucune règle n’est clairement définie. Les passages aux pages suivantes se font automatiquement en bas de feuille. Nous allons commercer par insérer des sauts de page pour forcer l’édition à passer sur une nouvelle page lorsque nous le choisissons : • Pour cela, nous allons passer l’affichage en mode Afficher les sauts de page, en cliquant sur le bouton correspondant en bas de la fenêtre :
  • 3. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 3 • Puis, nous insérons manuellement tous les sauts de page, en gardant à l’esprit que ces derniers vont nous permettre de délimiter chacun de nos slides : o Nous commençons par sélectionner la ligne sur laquelle le saut de page devra être inséré ; o Puis, nous effectuons un clic droit ; o Enfin, nous choisissons Insérer un saut de page ; o Cette opération est à répéter pour tous les sauts de page : Cela étant fait, nous pouvons repasser en mode Normal et vérifier le résultat avec un nouvel Aperçu avant impression. À présent, nous allons coder une nouvelle macro-commande en VBA qui va nous permettre de récupérer les coordonnées de chacune des zones d’impression. Pour cela : • Effectuons un clic droit sur l’onglet de la feuille de calcul ;
  • 4. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 4 • Pour choisir Visualiser le code : • Nous arrivons alors dans l’outil de développement d’Excel (VBA) ; • Nous allons insérer un nouveau module (menu Insertion, puis Module) : • Dans ce module, nous allons créer une nouvelle procédure que nous allons appeler sub exporterVersPowerpoint, qui va nous permettre de générer notre export : Sub exporterVersPowerpoint() ‘Partie 1 : Récupérer l’adresse des pages d’impressions ‘Partie 2 : Exporter chacune de ces zones vers une présentation PowerPoint End Sub Comme vous pouvez le constater, notre code sera décomposé en 2 étapes : • Dans la première partie, nous allons identifier et stocker dans une variable les coordonnées de chacune des zones d’impression que nous avons définie précédemment ;
  • 5. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 5 • Dans une seconde partie, nous allons "exporter" ces plages de cellules dans des diapos PowerPoint. Pour stocker les adresses des zones d’impressions, nous allons instancier une nouvelle variable de type String (c’est-à-dire une chaîne de caractères). Chaque adresse sera séparée au sein de cette chaîne par un tiret ("-") : ‘Partie 1 : Récupérer l’adresse des pages d’impressions Dim plages as String: plages = "" Cette variable "plages" est pour le moment vide. Ensuite, pour récupérer les adresses des zones d’impressions, nous allons utiliser l’objet HPageBreaks qui reprend chacun des sauts de pages que nous avons définis au tout début de cette partie. Pour ne pas avoir à le ressaisir à chaque fois, nous allons utiliser l’opérateur with : With ActiveSheet.HPageBreaks End With De cette manière, dès lors qu’une propriété située entre ces 2 balises va commencer par un point ("."), alors il s’agira d’une sous-propriété de HPageBreaks. Les 2 expressions sont ainsi équivalentes : ‘Expression 1 : Avec l’opérateur with With ActiveSheet.HPageBreaks nombreSautDePage = .Count End With ‘Expression 2 : Sans l’opérateur with nombreSautDePage = ActiveSheet.HPageBreaks.Count Pour commencer, nous allons vouloir savoir combien de sauts de page ont été insérés. De cette manière, si aucun saut de page n’est identifié, alors cela signifie que toute notre feuille devra être insérée dans un seul slide. Pour cela, nous allons utiliser l’instruction Count de HPageBreaks (en commençant par un point). If .Count = 0 Then Else End If
  • 6. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 6 Ainsi, si .Count est égal à zéro, alors notre variable "plages", instanciée juste avant, est égale aux coordonnées de l’ensemble des cellules utilisées dans notre feuille, que nous allons récupérer avec l’instruction UsedRange : If .Count = 0 Then plages = ActiveSheet.UsedRange.Address Par contre, si au moins un saut de page est identifié par Excel, alors nous allons vouloir les coordonnées de chacun d’entre eux. L’objet HPageBreaks est en fait constitué d’autant de sous-objets qu’il y a de sauts de page dans la feuille de calculs. Chacun de ses sous-objets porte le nom d’Item. Nous allons les passer en revue l’un après l’autre, en utilisant une boucle for : Else For i = 1 To .Count Next La variable i que nous utilisons pour notre boucle va ainsi prendre une valeur qui va s’incrémenter lors de chaque nouvelle boucle (1, puis 2, puis 3 et ainsi de suite). Nous pourrons donc récupérer le numéro de la ligne sur la laquelle est placé le saut de page numéro i grâce à la propriété .Item(i).Location.Row For i = 1 To .Count ligneSaut = .Item(i).Location.Row MsgBox ligneSaut Next Pour tester qu’Excel nous retourne bien le bon numéro de ligne, nous utilisons la fonction msgbox qui permet d’afficher un message.
  • 7. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 7 De retour dans notre feuille de calcul, si nous exécutons la commande (en appuyant sur les touches Alt et F8 en même temps), le premier résultat retourné par Excel est la ligne 21 : Le premier slide aura donc pour coordonnées les lignes 1 à 20 (et non 21, car la ligne 21 est déjà sur le second slide) : Pour connaître les coordonnées des colonnes, nous allons utiliser à nouveau une des propriétés de UsedRange que nous avons vue précédemment, afin de compter le nombre de colonnes : Dim derniereColonne As String derniereColonne = ActiveSheet.UsedRange.Columns.Count
  • 8. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 8 Nous pouvons maintenant déterminer l’adresse des cellules qui vont constituer le premier slide : For i = 1 To .Count ligneSaut = .Item(i).Location.Row Dim derniereColonne As Integer derniereColonne = ActiveSheet.UsedRange.Columns.Count plages = plages & Range(ActiveSheet.Cells(1, 1), ActiveSheet.Cells(ligneSaut - 1, derniereColonne)).Address & "-" MsgBox plages Next Vous noterez la présence du tiret en fin de chaîne pour séparer chacune des adresses. Si vous testez la macro-commande à ce stade de son écriture, vous noterez que celle-ci commence toujours sur la première ligne de notre feuille ($A$1) : Pour régler ce problème, nous allons introduire une nouvelle variable que nous allons appeler debut avec pour valeur 1 (pour la première ligne), puis à la fin de chaque cycle de la boucle, celle-ci prendra la valeur de ligneSaut.
  • 9. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 9 Enfin, nous utiliserons cette variable dans l’adresse de notre plage : Else Dim debut As Integer debut = 1 For i = 1 To .Count […] plages = plages & Range(ActiveSheet.Cells(debut, 1), ActiveSheet.Cells(ligneSaut - 1, derniereColonne)).Address & "-" debut = ligneSaut Next End If Attention : si vous regardez attentivement les coordonnées retournées par la variable plages, vous constaterez que celle-ci s’arrête au dernier saut de page (ligne 164 dans notre exemple), et donc la dernière partie de la feuille de calcul n’est pas prise en compte (lignes 165 à 188) ! Il faut donc ajouter une dernière ligne à la suite de la boucle : ligneFin = ActiveSheet.UsedRange.Rows.Count plages = plages & Range(ActiveSheet.Cells(debut, 1), ActiveSheet.Cells(ligneFin, derniereColonne)).Address & "-" La dernière opération de cette première partie va consister à exclure le dernier caractère de la variable "plages" (qui sera toujours un tiret).
  • 10. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 10 Pour cela, nous allons utiliser l’instruction Left(), en spécifiant que nous désirons récupérer la partie gauche de la variable "plages" pour le nombre de caractères contenus dans celle-ci, moins un caractère : ‘Partie 1 : Récupérer l’adresse des pages d’impressions Dim plages As String: plages = "" With ActiveSheet.HPageBreaks If .Count = 0 Then plages = ActiveSheet.UsedRange.Address Else Dim debut As Integer debut = 1 For i = 1 To .Count ligneSaut = .Item(i).Location.Row Dim derniereColonne As Integer derniereColonne = ActiveSheet.UsedRange.Columns.Count plages = plages & Range(ActiveSheet.Cells(debut, 1), ActiveSheet.Cells(ligneSaut - 1, derniereColonne)).Address & "-" debut = ligneSaut Next ligneFin = ActiveSheet.UsedRange.Rows.Count plages = plages & Range(ActiveSheet.Cells(debut, 1), ActiveSheet.Cells(ligneFin, derniereColonne)).Address & "-" plages = Left(plages, Len(plages) - 1) End If End With
  • 11. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 11 Nous disposons à présent d’une chaîne de caractères reprenant les adresses de chacune des zones d’impressions, qui sont séparées par un tiret ("-") : Nous allons maintenant pouvoir les exporter dans PowerPoint. Exportons nos zones d’impressions dans PowerPoint : Pour utiliser une application externe, telle que PowerPoint, depuis VBA, nous allons tout d’abord devoir activer cette dernière. Dans le menu Outils, choisissez Références : Dans la fenêtre qui s’affiche, nous allons rechercher Microsoft PowerPoint Object Library et cocher la case correspondante. Si vous avez activé cette référence dernièrement, celle-ci devrait se trouver en haut de la liste (comme sur l’image ci-dessous). Dans le cas contraire, vous la trouverez beaucoup plus bas, en suivant les références classées dans l’ordre alphabétique.
  • 12. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 12 Enfin, nous validons avec le bouton Ok : À présent, nous allons pouvoir instancier un nouvel objet qui va nous permettre de prendre le contrôle de PowerPoint : ‘Partie 2 : Exporter chacune de ces zones vers une présentation powerpoint Dim oPowerPoint As Object Set oPowerPoint = CreateObject("Powerpoint.application") Grâce à cet objet que nous venons de créer, nous allons pouvoir générer une nouvelle présentation PowerPoint, qui sera un sous-objet de oPowerPoint : Dim oDiaporama As Object Set oDiaporama = oPowerPoint.Presentations.Add
  • 13. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 13 Si vous testez le code à ce moment de son développement, vous constaterez qu’Excel va demander à PowerPoint de se lancer, puis de créer une nouvelle présentation. Évidemment, celle-ci sera vide : Nous allons maintenant ajouter les slides qui correspondent aux cellules de chaque zone d’impressions que nous avons déterminées dans la première partie. Pour commencer, nous allons instancier une nouvelle variable qui va reprendre l’identifiant de chaque diapositive. Nous allons initialiser cette variable avec la valeur 1, pour le premier slide idDiapo= 1 Puis, nous allons parcourir les différentes plages de cellules en utilisant une boucle for each, combinée avec l’instruction split(). Cette dernière va nous permettre de séparer les plages en fonction de chaque tiret For Each plage In Split(plages, "-") Next
  • 14. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 14 Lors de chaque passage dans la boucle, nous allons créer une nouvelle diapositive dans notre présentation en créant un nouvel objet. Cette diapositive aura pour index la variable idDiapo et sera de type ppLayoutBlank, c’est-à-dire une diapositive vide : For Each plage In Split(plages, "-") Dim diapositive As Object Set diapositive = oDiaporama.Slides.Add(Index:=idDiapo, Layout:=ppLayoutBlank) Next Pour exporter les données dans la présentation, nous allons effectuer un copier-coller un peu particulier. Comprenez par-là que nous allons effectuer un collage spécial de type ppPasteEnhancedMetafile, c’est-à-dire sous la forme d’une image : ActiveSheet.Range(plage).Copy oDiaporama.Slides(idDiapo).Shapes.PasteSpecial DataType:=ppPasteEnhancedMetafile Enfin, nous pouvons passer à la diapo suivante : idDiapo = idDiapo + 1 À présent, nous pouvons tester la macro-commande et si tout se passe bien, vous devriez vous retrouver avec une présentation PowerPoint de l’ensemble de vos zones d’impressions :
  • 15. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 15 Cette présentation est pour le moment assez rudimentaire, mais vous pourrez l’améliorer en quelques clics seulement, par exemple en utilisant les thèmes intégrés à PowerPoint. Je vous invite également à suivre les excellents tutos disponibles sur votreassistante.net qui vont vous permettre d’améliorer grandement votre présentation. En bonus, pour les personnes qui ont suivi ce tuto jusqu’au bout, nous allons maintenant voir comment créer un bouton dans la Barre d’outils Accès rapide, afin de pouvoir transformer n’importe quelle feuille de calcul en présentation. BONUS : Comment accéder à notre macro en 1 clic depuis n’importe quelle feuille de calcul ? En effet, la macro-commande que nous venons de créer est directement liée à la feuille de calcul de test. Par conséquent, lorsque celle-ci sera fermée, la macro-commande ne sera plus accessible. Pour commencer, nous allons créer un nouveau classeur (en appuyant sur les touches Ctrl + N). Puis, depuis l’outil de développement VBA, nous allons effectuer un glisser-déposer du module que nous venons créer, afin de le dupliquer. Pour cela nous cliquons dessus, et nous faisons glisser la souris jusqu’à notre nouveau classeur :
  • 16. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 16 Pour que la macro fonctionne, il faut activer la référence Microsoft PowerPoint Object Library sur ce nouveau classeur comme nous l’avons vu juste au-dessus : Ensuite, nous revenons sur le classeur que nous allons enregistrer en effectuant un Enregistrer sous (touche F12 du clavier). Dans le type de classeur, nous allons choisir Complément Excel (*.xlam) :
  • 17. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 17 Automatiquement, Excel ouvre le répertoire d’enregistrement des macros complémentaires (AddIns), nous allons alors donner le nom exporterVersPowerpoint.xlam à ce classeur et appuyer sur la touche Enregistrer pour valider : En réalité, Excel enregistre une copie du fichier, l’original restant toujours intact. Nous pouvons à présent quitter les 2 classeurs Excel, sans enregistrer, puis relancer Excel. Pour activer le complément, rendez-vous dans Fichier > Options > Compléments.
  • 18. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 18 Dans le menu Gérer en bas de la fenêtre, choisissez Compléments Excel, puis Atteindre : Dans la fenêtre qui s’affiche, sélectionnez l’option exporterVersPowerpoint et validez avec Ok.
  • 19. Votre Assistante : https://www.votreassistante.net - le 06/11/2018 Article écrit par Alexandre du site Excel Formation : https://www.excelformation.fr 19 Enfin, pour créer un bouton accessible depuis n’importe quel classeur, rendez-vous dans Fichier > Options > Barre d’outils Accès rapide, puis, dans le menu, choisissez les commandes, puis les Macros : Il suffit ensuite de repérer la macro exporterVersPowerpoint, de double-cliquer sur celle-ci et enfin de valider avec Ok. Ce tutoriel est maintenant terminé, si vous l’avez suivi à la lettre, vous devriez à présent avoir un nouveau bouton dans la barre d’accès rapide qui se trouve par défaut en haut à gauche (au-dessus du ruban) : Le fichier complet est disponible à cette adresse. Vous trouverez également un tutoriel indiquant la marche à suivre pour installer ce dernier. Tutoriel réalisé avec Excel 2016 Voir la version vidéo de cet article