VBA/PPT remplacer des données - VB/VBA/VBS - Programmation
Marsh Posté le 20-09-2013 à 10:03:46
Bonjour,
si c'est un problème de paramètres :
► repérer un échec de remplacement.
► Le faire manuellement via Rechercher / Remplacer en notant si les cases sont cochées ou pas.
► Comparer dans le code les arguments de Replace devant correspondre aux cases.
Si une case est cochée, l'argument correspondant doit être à True, sinon à False ou ne pas apparaitre dans le code.
Dans le code, placer le curseur sur Replace puis appuyer sur la touche pour accéder à l'aide intégrée !
PS : je n'ai jamais codé en VBA PPT …
Marsh Posté le 22-09-2013 à 10:53:51
Ca ne serait pas plus simple de faire des liaisons avec Excel ?
Menu Insertion > Objet > A partir d'un fichier > MS Excel et cocher "Liaison".
Marsh Posté le 23-09-2013 à 16:47:26
@ Marc L:
Tu parles de "repérer un échec de remplacement" et de cases cochées ou non... j'ai du mal à te comprendre ici, pourrais-tu m'expliquer s'il te plait?
@otobox:
Pareil je ne comprend pas, je fais ça dans ppt?
Quel est le résultat de faire des liaison?
J'ai pas trouvé le 'cochage de liaisons'
Marsh Posté le 23-09-2013 à 17:22:15
Mon message précédent est justement l'explication ! Suffit de lire le contenu de la fenêtre Rechercher / Remplacer …
Marsh Posté le 23-09-2013 à 18:09:13
tiber33 a écrit : @ Marc L: |
Ben les liaisons, c'est tu mets à jour ton classeur Excel et ta présentation PP se met à jour automatiquement. Ca t'évite de devoir le faire manuellement en lançant une macro...
Marsh Posté le 24-09-2013 à 21:06:56
OK, mais le truc c'est que de mon côté le tableau excel n'est là que ponctuellement pour faire le remplacement (il n'a pas lieu d'exister en dehors de ça).
Et par ailleurs, je ne veux que remplacer les données dans les cellules (pas d'autres présents dans des tableaux du même ppt), ce que fait déjà la macro, mais pas pour tous les contenus de cellules (l'histoire des --, des espaces et des / qui ne sont pas lus...), d'où l'idée que j'aurai du fait que c'est un problème de définition de paramètres, mais je ne trouve nul part de doc vba sous ppt...
Marsh Posté le 25-09-2013 à 07:25:02
Avec les liaison, il n'y a pas de problème si tu ne veux remplacer que quelques cellules... il suffit de lier seulement celles que tu as besoin de mettre à jour.
Mais si le classeur Excel n'a pas besoin d'exister autrement, c'est effectivement dommage d'en créer un spécialement pour ça.
Et puis le vba pour PP, je confirme, c'est très dur de trouver de la documentation, j'avais cherché il y a quelques années, je n'avais pas trouvé grand chose, hormis rajouter une feuille et quelques trucs simples comme ça.
As tu essayé ici ? http://www.developpez.net/forums/f [...] owerpoint/
Marsh Posté le 25-09-2013 à 15:52:55
Normalement il y a juste à corriger un argument de Replace …
Marsh Posté le 25-09-2013 à 16:50:06
OOOkay ! Ca marche !
Merci à votre aide Otobox et Marc L.
Le problème était en effet simple, c'est ta solution que j'ai utilisé du coup Marc, m'évitant également d'avoir à changer mon mode opératoire pour le changement.
La solution c'était de mettre 'WholeWords:=False' ... c'est tout con, mais ça à l'air de marcher maintenant !
Je vais vérifier si la macro est bonne dans toutes les circonstances mais cela semble correct.
Encore merci pour l'aide apportée !
Marsh Posté le 25-09-2013 à 17:24:48
Et en le supprimant carrément du code cela marche aussi …
Marsh Posté le 20-09-2013 à 01:58:33
Bonjour,
Je viens vers vous car je fais face à un petit mur, mais obstacle quand même...
En effet, j'aimerais automatiser le remplacement de données dans une feuille ppt par d'autres données, le tout fourni par un tableur excel servant de base de données.
Des images valent mieux qu'un long discours, voici ce que j'aimerai que la macro fasse:
Dans mon cas, j'ai initialement les données de gauche, et en lançant la macro, ce qu'il y a d'écrit dans les cases est remplacé et on obtient les cases de droite.
Pour la base de données, j'utilise un tableur excel très simple 2 colonnes:
-la première: ce que l'on cherche à remplacer, si on le trouve dans la diapo
-la deuxième: ce par quoi on va le remplacer
Un aperçu:
Pour ce faire, j'utilise la macro suivante (qui balaye le tableur ligne par ligne, et tant qu'une ligne n'est pas vide, récupère la valeur de la première colonne excel, va voir dans ppt si une case contient cette valeur, si oui la remplace par la donnée excel de la 2° colonne, puis on passe à la ligne suivante d'excel et on rebalaye les slides ppt à la recherche de la valeur à remplacer):
Ligne 13 le chemin appelant le fichier excel nommé 'liste'.
Voilà, tout est dit, le problème que je rencontre, c'est qu'avec cette macro je n'arrive pas à faire l'opération décrite dans la première visu.
Pourtant, la macro marche quand par exemple je veux remplacer 'jk123' par '147d7--', mais dès que la valeur à remplacer se complexifie (présence d'espaces, de "--" , de "/" ou une combinaison de tout cela) le code ne semble pas reconnaître ces valeurs dans le slide et ne les remplace donc pas.
Je pense que le problème réside dans la définition de certains paramètres, mais j'avoue ne pas être grandiose en programmation, et encore moins en VBA appliqué à ppt, d'où ma requête
Si des gens veulent bien se pencher sur mon problème je leur en serai reconnaissant, en espérant avoir été suffisamment clair.
Je vous remercie,
Tiber
Message édité par tiber33 le 20-09-2013 à 08:37:45