Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4679 connectés 

 

 

 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  38  39  40  ..  112  113  114  115  116  117
Auteur Sujet :

[Topic Unique] Excel : Keep calm and Pivot Table !

n°3056457
Ptit loup
Quand c'est flou, y'a un loup
Posté le 24-09-2012 à 12:19:51  profilanswer
 

Reprise du message précédent :
Plusieurs points
 
-> les nouvelles version d'Excel (2007 et 2010) permettent de bosser avec plus de lignes, donc tu peux oublier cette première contrainte.
 
Les questions qu'il faut te poser avant d'imaginer un autre outil (parce qu'il faudra aussi te les poser avec l'autre outil)
-> as-tu besoin de toutes tes données en même temps (pour faire des stats, ou graph ou autre)
-> que fais tu de ces données, tu parles de mailing,... tu fais quoi d'autre avec ?
 
Ensuite, se tourner vers Access, pourquoi pas, ou un autre SGBD plutôt je dirais (MySQL non ? c'est gratuit...  ou un "vrai" SGBD type Oracle / MSSQL... mais là faut raquer pour les licences)
Si ces données sont si précieuses, au delà de la base et de sa gestion, il faut aussi organiser des sauvegardes, des tests de restauration, etc...
 
Pour en revenir au format des données, il faudrait nous en dire plus, pour savoir ce que peux t'apporter un SGBD plutôt qu'une feuille Excel, savoir ce que tu en fais en terme de reporting/graph/consolidation/...
Ces données évoluent-elles dans le temps ? ou alors ce n'est que de l'ajout ?

mood
Publicité
Posté le 24-09-2012 à 12:19:51  profilanswer
 

n°3057054
Dantiste
Posté le 28-09-2012 à 20:56:42  profilanswer
 

Ptit loup a écrit :

Plusieurs points
 
-> les nouvelles version d'Excel (2007 et 2010) permettent de bosser avec plus de lignes, donc tu peux oublier cette première contrainte.
 
Les questions qu'il faut te poser avant d'imaginer un autre outil (parce qu'il faudra aussi te les poser avec l'autre outil)
-> as-tu besoin de toutes tes données en même temps (pour faire des stats, ou graph ou autre)
-> que fais tu de ces données, tu parles de mailing,... tu fais quoi d'autre avec ?
 
Ensuite, se tourner vers Access, pourquoi pas, ou un autre SGBD plutôt je dirais (MySQL non ? c'est gratuit...  ou un "vrai" SGBD type Oracle / MSSQL... mais là faut raquer pour les licences)
Si ces données sont si précieuses, au delà de la base et de sa gestion, il faut aussi organiser des sauvegardes, des tests de restauration, etc...
 
Pour en revenir au format des données, il faudrait nous en dire plus, pour savoir ce que peux t'apporter un SGBD plutôt qu'une feuille Excel, savoir ce que tu en fais en terme de reporting/graph/consolidation/...
Ces données évoluent-elles dans le temps ? ou alors ce n'est que de l'ajout ?


A retardement, mais grand merci à toi   :hello:  
 
Oui, j'ai besoin de toutes les données en même temps, sur 6 colonnes. D'abord pour retrouver la ligne contenant les infos, puis toutes les infos de la ligne, et X^n lignes pour les stats... Pour les points de restauration, aucun souci, le serveur central gère ca haut la main, sur 2 ans passés...
 
Les données n'évoluent pas, elle sont fixées à l'instant T et ne peuvent plus varier dès lors qu'elles sont validées. C'est du texte et des nombres (dates, pas de chiffres donc pas de calcul à ce stade). Mais par contre, elles grossissent au jour le jour, ou plutôt chaque mois, chaque année d'environ 200 lignes, et à la dernière MaJ en début de mois, je suis arrivé à 65.332 lignes sur 65.536, donc je ressens comme une urgence  :bounce:  
 
Tu as je crois répondu à ma question dès le premier point, je peux passer sans souci à Office Pro 2007, voire 2010. Je vais pas être le seul à travailler sur ce fichier, il y aura bien quelqu'un pour prendre la relève vu que je pense bientôt aller bosser ailleurs, mais ce serait intéressant d'avoir la possibilité de cumuler environ 200.000 lignes (dossiers légalement conservés 100 ans * moyenne de 2000 données/an).
 
Extraction de noms, adresses, la même personne peut remonter plus d'une fois (sur plus d'une ligne sur différentes années), puis attribuer des critères pour les rendre anonymes, données plus ou moins démographiques, mais données privées donc sécurisées, calculs statistiques sur une population, donc c'est très certainement des stats basées sur le nombre de lignes de chaque extraction, etc... Lignes que je numérote par incrémentation de 1 à N, tout bêtement, puisque le matheux de service ne veut pas mettre son nez dans ce genre de fichiers qui ne sont pas de son champ d'activité. Mais ca ne l'a pas empêché de demander en haut lieu à ce qu'on lui communique le fichier que j'ai élaboré  :whistle:  
 
J'ai fait un essai d'exploitation (cherche et trouve MARTIN, au Costa-Rica en telle année, H ou F, adresse, statut civil + pro, etc) sous Access, c'est pas vraiment ce qu'il me faut, l'impression que le module de recherche est le même sous Excel et Access, mais sur Excel je peux sélectionner la colonne pour filtrer la recherche si il me manque une donnée... Access, je connais pas assez, ca me paraît bcp plus "virtuel"... [:sniperlk]  
 
Pour les stats, par contre, je serais plus "poète"  :whistle:  et le matheux de service qui se prend pour le divin créateur a horreur des stats... Mais la crème de la crèmerie n'aime que les fromages bien présentés, et pas avec des noix  ;)  
 
Donc je vais rester sous Excel et faire des copies d'écran des graphs pour les insérer dans la feuille des commentaires, qui finit sous PowerPoint chez le chef qui arrive toujours aux réunions stratégiques avec un PowerPoint sur sa clé USB  :lol:  
 
Dans ma cogip
 
1 on est pauvres,  
2 le patron est pingre,  
3 je vais faire bondir la sphère qui vérifie ma respiration et mes battements de coeur si je demande un budget pour la licence Oracle pour travailler sur UN fichier  :whistle: Je vais quand même regarder MySQL  :jap:  
 
Merci encore  [:louisledeboucheur]
 
 
 


Message édité par Dantiste le 28-09-2012 à 20:57:47

---------------
Mariupol, heroes forever. - Zelensky, Dudaev. - Boum !
n°3057126
Frodin
Posté le 29-09-2012 à 16:31:54  profilanswer
 

sur le choix excel/access, j'avais trouvé à l'époque que ce bouquin était pas mal
http://www.editions-eyrolles.com/L [...] l-a-access
200000 lignes même sous un excel récent c'est peut être violent :)
note que tu peux éclater tes données en plusieurs fichiers excel, et y accéder de manière assez synthétique via un document maître (un peu à la manière dont on accède au contenu d'une cellule d'une feuille à partir d'une autre feuille du même classeur)
il y a plein de solutions possibles en fait

n°3057142
Dantiste
Posté le 29-09-2012 à 20:12:20  profilanswer
 

Frodin a écrit :

sur le choix excel/access, j'avais trouvé à l'époque que ce bouquin était pas mal
http://www.editions-eyrolles.com/L [...] l-a-access
200000 lignes même sous un excel récent c'est peut être violent :)
note que tu peux éclater tes données en plusieurs fichiers excel, et y accéder de manière assez synthétique via un document maître (un peu à la manière dont on accède au contenu d'une cellule d'une feuille à partir d'une autre feuille du même classeur)
il y a plein de solutions possibles en fait

Oui ca je sais faire (et je suis le seul dans ma cogip à pouvoir traiter les heures sous Excel pour établir les salaires et le calcul de la durée et des jours de congés, ce qui me rend assez "intouchable"  :whistle:  ), on peut scinder les données et obtenir les résultats sur une autre feuille ou un autre classeur, mais là, on en revient à ce qui m'a fait déjà des caguades à cause d'un matériel obsolète... A ce stade, Access serait mieux pour contenir plus de données, mais pour en tirer des stats et des graphs, j'aurais à creuser un moment alors que je sais déjà faire sous Excel, c'est déjà prêt ;)  
 
Je vais donc passer à Office 2007 ou 2010. Et comme Office 2007 va très certainement exploser la bétaillère qui me sert d'ordinateur (40 Go de DD), je vais demander du matériel plus performant. S'ils refusent ce sera un motif de plus pour les larguer. Après ca dans un moyen terme plus long que moyen, y a des chefs qui se bougeront peut-être pour ce qu'on les paye...  :sol:  
 
Je connaissais pas le bouquin, je vais le faire commander, mais pas impossible qu'on me le refuse. Boîte archaïque.
 
Ah aussi, on m'a conseillé Business Object, surpuissant, sous licence...  
Connais pas du tout, j'ai trouvé ca, j'ai l'air d'un cochon devant une prise de courant  :??:  
 
 
:D
 


Message édité par Dantiste le 29-09-2012 à 20:14:04

---------------
Mariupol, heroes forever. - Zelensky, Dudaev. - Boum !
n°3057490
Ptit loup
Quand c'est flou, y'a un loup
Posté le 02-10-2012 à 14:43:33  profilanswer
 

BO, oublie... s'ils peuvent pas se payer un bouquin, une licence BO coûte vraiment déjà cher pour les boites qui s'en servent beaucoup.
 
Non, moi ce que j'en vois par rapport à ce que tu redis, c'est l'utilisation d'une base de données... (type MySQL, vu que gratuit, et que tu n'as pas besoin d'un truc ultra costaud non plus). Côté Access... bof, j'aime pas trop access donc je serais pas un bon vendeur... mais à mon sens, access a aussi ses limites sur des gros volumes (même si tu n'es pas encore sur des gros volumes avec 200k lignes, c'est encore des "petites" tables :)
 
Ensuite, pour la présentation, reste Excel, je suis d'accord, mais tu peux attaquer avec Excel une base MySQL ou Access sans pb (et sûrement plus facilement une base Access vu que c'est du MS... mais j'en suis pas sûr que ça soit plus simple en fait...).
 
Parce que côté de l'exploitation des données, une requête SQL permet de faire des choses rapides, souples, précises sur un grand volume de données (typiquemet ton M. MARIN qui habite au Costa Rica, etc...).
 
Je ferais donc au final
- base Access (pour commencer, c'est un outil que tu connais un peu et que tu as sous la main)
- requêtes sous Access ou directement dans du VBA Excel
- graph sous Excel basés sur le résultat de tes requêtes
 
Et comme ça le chef est content et a toujours ses beaux powerpoint ! :)

n°3057498
SuppotDeSa​Tante
Aka dje69r
Posté le 02-10-2012 à 15:14:30  profilanswer
 

+1
Le graph peut même etre fait sur Access, TCD et tout le toutim


---------------
Soyez malin, louez entre voisins !
n°3057948
saebalyon
le roi de l'aurtogafe
Posté le 06-10-2012 à 15:02:34  profilanswer
 

bonjour,
 
je cherche le moyen de remplacer dans une formule comme celle ci : =SOMME(($AN$13*R17)+$F$9)+(($AN$13*R17))*(($O$8)/100)
 
tous les caractère R doivent être remplacer par S , et ca dans une série de 300 case dans la même colonne.
 
merci de votre aide.


---------------
L'urbex : faire découvrir le patrimoine oublié / Mes albums urbex : https://www.flickr.com/photos/14695 [...] 5272741566 et https://www.flickr.com/photos/20070 [...] 0316987281
n°3057952
kensiko26
Posté le 06-10-2012 à 15:47:23  profilanswer
 

Fais une copie de ton fichier Excel, puis ajoute une colonne juste avant la R. Après tu pourras copier les formules en question.

n°3057964
saebalyon
le roi de l'aurtogafe
Posté le 06-10-2012 à 17:37:48  profilanswer
 

kensiko26 a écrit :

Fais une copie de ton fichier Excel, puis ajoute une colonne juste avant la R. Après tu pourras copier les formules en question.


 
 
pas con le rajout de colonne , merci ^^


---------------
L'urbex : faire découvrir le patrimoine oublié / Mes albums urbex : https://www.flickr.com/photos/14695 [...] 5272741566 et https://www.flickr.com/photos/20070 [...] 0316987281
n°3057975
saebalyon
le roi de l'aurtogafe
Posté le 06-10-2012 à 19:59:18  profilanswer
 

Mais non je prend tout la colonne copier , je fait coller la formule dans la colonne décaler d'une de plus et ca marche , je viens de le faire c'est niquel
 
quand je pense je fessais a la main une case par une la modif ....
 


---------------
L'urbex : faire découvrir le patrimoine oublié / Mes albums urbex : https://www.flickr.com/photos/14695 [...] 5272741566 et https://www.flickr.com/photos/20070 [...] 0316987281
mood
Publicité
Posté le 06-10-2012 à 19:59:18  profilanswer
 

n°3058136
lulu12
Posté le 07-10-2012 à 23:28:48  profilanswer
 

Bonsoir,  
 
Mon boss m'a demandé de réaliser une action sous Excel que je ne sais pas faire mais je pense pas que ca soit très dur:  
 
Il recoit un tableau de données (1) avec differentes infos sur des clients: Nom, Prenom, Adresse email, Numéro de telephone.  
 
A partir de ce tableau il en complete un second (2) où il a besoin de:  
Nom, Prenom et numéro de telephone uniquement
 
J'ai les deux tableaux devant moi et j'aimerai automatiser le "transfert de données" du tableau 1 vers le tableau 2.  
 
Qu'est ce que je dois faire dans le tableau 1 et qu'est ce que je dois utiliser ?  Vous l'aurez compris je suis pas un tueur sur excel donc si les explications peuvent etre claires ça serait génial !  
 
Merci

n°3058143
kensiko26
Posté le 08-10-2012 à 02:48:57  profilanswer
 

si tu fais un copié de toutes les colonnes au complet, puis collé spécial - références dans l'autre feuille ?

n°3058185
Ptit loup
Quand c'est flou, y'a un loup
Posté le 08-10-2012 à 13:37:34  profilanswer
 

saebalyon a écrit :

bonjour,
 
je cherche le moyen de remplacer dans une formule comme celle ci : =SOMME(($AN$13*R17)+$F$9)+(($AN$13*R17))*(($O$8)/100)
 
tous les caractère R doivent être remplacer par S , et ca dans une série de 300 case dans la même colonne.
 
merci de votre aide.


Sans fichier supplémentaire, tu étends ta colonne à droite (avec le petit carré en bas de la sélection... et comme ton R n'est pas avec un $, il va bien adapter ta formule et donc transformer le R en S...

n°3060717
Shoine
Posté le 25-10-2012 à 11:14:23  profilanswer
 

Bonjour,
 
Je tente de remplacer la parte D3 dans "TO_DATE" ici :
 
="INSERT INTO CTGETL.OM_BUSINESS_EVENT (BP_ID, BP_DESCRIPTION, BP_CODE, BP_CREATION_DATE, BP_EFFECTIVE_DATE, MESSAGE_PUBLISH_COUNT, ORIGINATING_SALES_FORCE_ID, INSERT_DATE, PROCESS_FLAG,"&"PROCESS_MESSAGE, SERVICING_SALES_FORCE_ID, PUBLISHING_DATE, RECONCILIATION_FLAG, RECONCILIATION_EFFECTIVE_DATE) values("&A3&",'"&B3&"','"&C3&"', TO_DATE('"&D3&"', 'DD-MON-YY'), TO_DATE('"&E3&"', 'DD-MON-YY'),"&F3&",'"&G3&"',TO_DATE('" &H3&"', 'DD-MON-YY')," & I3 & "," & J3 & "," & K3 & "," & L3 & "," & M3 & "," & N3 &" );"
 
 
Par la fonction  "text" afin que dans mon copier coller, je n'ai pas de problèmùe de format. ma date se transforme en 4038271...
 
="INSERT INTO CTGETL.OM_BUSINESS_EVENT (BP_ID, BP_DESCRIPTION, BP_CODE, BP_CREATION_DATE, BP_EFFECTIVE_DATE, MESSAGE_PUBLISH_COUNT, ORIGINATING_SALES_FORCE_ID, INSERT_DATE, PROCESS_FLAG,"&"PROCESS_MESSAGE, SERVICING_SALES_FORCE_ID, PUBLISHING_DATE, RECONCILIATION_FLAG, RECONCILIATION_EFFECTIVE_DATE) values("&A3&",'"&B3&"','"&C3&"', TO_DATE('"&TEXT(D3;dd-mmm-yy)&"', 'DD-MON-YY'), TO_DATE('"&E3&"', 'DD-MON-YY'),"&F3&",'"&G3&"',TO_DATE('" &H3&"', 'DD-MON-YY')," & I3 & "," & J3 & "," & K3 & "," & L3 & "," & M3 & "," & N3 &" );"
 
 
J'ai malheureusement une erreur #NAME?.
 
Une idée ? Le format de texte me semble pourtant bon. (La date est 29-Apr-12)


Message édité par Shoine le 25-10-2012 à 11:14:43

---------------
Future is what we do of it.
n°3060800
kensiko26
Posté le 25-10-2012 à 13:45:13  profilanswer
 

le format devrait être entre guillemets non ?

n°3060930
Shoine
Posté le 25-10-2012 à 21:41:39  profilanswer
 

kensiko26 a écrit :

le format devrait être entre guillemets non ?


effectivement, j'avais trouvé mais oublie d'éditer... Merci!


---------------
Future is what we do of it.
n°3068157
The_chosen​_one
There can only be one !
Posté le 24-11-2012 à 15:19:57  profilanswer
 

Je rebondi sur le format, qqun aurait une bonne explication sur les formats customs possible ?

n°3083552
Xxxaaavvv
Posté le 08-04-2013 à 12:41:48  profilanswer
 

La vrai question, c'est qu'est ce que tu veux faire ? :o
(pas ce que tu peux faire :o²)

n°3083740
Ptit loup
Quand c'est flou, y'a un loup
Posté le 10-04-2013 à 14:28:41  profilanswer
 

On peut globalement "tout" faire avec les formats... reste à savoir ce qu'on veut faire
 
Pour des bons conseils sur les formats... vous pouvez regardez cette page qui est très détaillée et bien foutue !
http://jeannot45.developpez.com/ar [...] onnalises/

n°3084138
etoile64
Pas de bras, pas de 8a!
Posté le 14-04-2013 à 12:20:55  profilanswer
 

Bonjour à tous,
 
Je suis en train de réaliser les graphiques d'une étude clinique dans le domaine médical, et je galère pas mal avec la création des graphiques.
 
Il me faut des graphiques type boite à moustache pour présenter la médiane, les Q1 et Q3 et le min et max.
 
Jusque là, OK, j'ai réussi.`
 
Le problème est que je voudrais que la médiane soit représentée juste par un trait très fin qui fasse la totalité de la boite Q1-Q3, et je n'arrive pas à modifier cela (je préfererai éviter de bidouiller en faisant moi-même un trait à la place de la marque prévue, parce que si jamais je dois modifier mes données, ça sera bien galère) :
 
Pour le moment, ça donne un truc qui ressemble à ça :
 
http://finance-technique.com/wp-content/uploads/2012/12/Sans-titre11.png
 
Et je voudrais que ça ressemble à ça :
 
http://img.over-blog.com/544x408/4/49/29/23/bmfg-copie-1.png
 
Une idée?
 
Merci d'avance  :jap:

n°3095964
stevetur
Posté le 28-08-2013 à 15:16:14  profilanswer
 

Bonjour
 
J'ai une question sur les graphiques.
 
Voilà ce que j'ai
http://hfr-rehost.net/self/232550ba651e5604e8bb150b0907ba29a4b25769.jpg
 
Je fais alors mon graphique en nuage de point, mais je voudrais inclure les données de la colonne commentaire automatiquement.
 
Est-ce que c'est possible?
 
Merci

n°3099358
mac_dounal​d
Posté le 30-09-2013 à 21:44:57  profilanswer
 

:hello:

 

je cherche à faire une manip sur word/excel, mais étant vraiment un ignare dans ce domaine, je cherche une bonne âme pour au moins m'aiguiller  :o

 

Voila, en gros j'ai récupéré un gros fichier texte avec beaucoup de variables imbitable (genre w4212 ... sur 800 pages) et j'ai absolument besoin de comprendre la logique des équations que le texte contient.
Par chance, j'ai récupéré une partie de la biblio des variables que j'ai organisé sous excel

 

en gros, j'ai une colonne A avec le nom de variable, et une colonne B avec le commentaire.
j'aimerai trouver chaque occurrence de la variable dans le fichier texte, pour la remplacer par le commentaire de la colonne B.

 

Ca pourrait potentiellement me faire gagner un temps fou, comme cela pourrait me servir à rien ... une piste à suivre ? quelqu'un aurait déjà fait ? Niveau de difficulté ?  (je connais quelques langages de prog, mais je ne sais absolument rien sur les macro excel par exemple, je ne pourrais meme pas en lancer une pour vous dire le niveau)

 


toute aide serait la bienvenue :jap:

Message cité 1 fois
Message édité par mac_dounald le 30-09-2013 à 21:46:20
n°3099366
kensiko26
Posté le 01-10-2013 à 00:02:07  profilanswer
 

j'ai vraiment pas beaucoup de temps alors je te laisse avec ça:
 
Tu dois faire un Search and Replace façon macro, en faisant une boucle For Next sur chaque ligne et faire Replace sur le fichier texte au complet, ce qui devrait fonctionner.

n°3099420
Cutter
Posté le 01-10-2013 à 19:44:58  profilanswer
 

mac_dounald a écrit :

:hello:  
 
je cherche à faire une manip sur word/excel, mais étant vraiment un ignare dans ce domaine, je cherche une bonne âme pour au moins m'aiguiller  :o  
 
Voila, en gros j'ai récupéré un gros fichier texte avec beaucoup de variables imbitable (genre w4212 ... sur 800 pages) et j'ai absolument besoin de comprendre la logique des équations que le texte contient.  
Par chance, j'ai récupéré une partie de la biblio des variables que j'ai organisé sous excel
 
en gros, j'ai une colonne A avec le nom de variable, et une colonne B avec le commentaire.  
j'aimerai trouver chaque occurrence de la variable dans le fichier texte, pour la remplacer par le commentaire de la colonne B.
 
Ca pourrait potentiellement me faire gagner un temps fou, comme cela pourrait me servir à rien ... une piste à suivre ? quelqu'un aurait déjà fait ? Niveau de difficulté ?  (je connais quelques langages de prog, mais je ne sais absolument rien sur les macro excel par exemple, je ne pourrais meme pas en lancer une pour vous dire le niveau)  
 
 
toute aide serait la bienvenue :jap:


Je comprend pas, ton fichier texte se présente comment? Il est convertible en tableur c'est complètement autre chose?


---------------
last.fm
n°3099427
mac_dounal​d
Posté le 01-10-2013 à 20:08:19  profilanswer
 

le fichier texte est un fichier word, à l'origine c'est un programme généré par un automate.
 
ça revient à chercher l'occurrence d'une chaine de caractères et de la remplacer par une autre.

n°3099428
mac_dounal​d
Posté le 01-10-2013 à 20:11:07  profilanswer
 

kensiko26 a écrit :

j'ai vraiment pas beaucoup de temps alors je te laisse avec ça:
 
Tu dois faire un Search and Replace façon macro, en faisant une boucle For Next sur chaque ligne et faire Replace sur le fichier texte au complet, ce qui devrait fonctionner.


 
Oui c'est ce que je cherche à faire, automatiser un replace :)
faut que j'y regarde, je ne sais pas comment taper dans un fichier différent du fichier macroter, et encore moins lancé une macro :o
 
 
merci :jap:

n°3099471
Cutter
Posté le 02-10-2013 à 01:04:50  profilanswer
 

Je ne veux pas te prémâcher le travail parce que savoir utiliser VBA crée un tas de possibilités et j'aimerais t'encourager à l'apprendre. Ce sera une macro très courte (plus courte que ce post) mais que je vais essayer de détailler au mieux.

 

Le travail porte sur un document Word, il te faut donc une macro Word qui remplacera les mots selon une table de remplacement enregistrée dans un fichier Excel.

 

Nous allons enregistrer une petite macro qui nous servira de base. Ouvre Word, et dans l'onglet Développeur (activable dans les options de Word s'il est invisible), clique sur "Enregistrer une macro", que tu nommeras comme tu veux (maMacro dans mes exemples), et lance l'enregistrement.
Clique sur Remplacer (Ctrl + H) et tape un mot à rechercher et un mot à remplacer arbitraires. Clique sur "Remplacer tout" et ferme la boite de dialogue, puis clique sur "Arrêter l'enregistrement" dans l'onglet Développeur.

 

Toujours dans l'onglet Développeur, clique sur Visual Basic. Le code VBA de la macro que tu viens d'enregistrer devrait être visible dans le module "NewMacros" du projet "Normal". Elle commence par Sub maMacro() (c'est là que commencera son exécution) et se termine par End Sub. Elle va nous servir de base. Pour l'instant elle fait exactement ce que tu as enregistré: elle remplace un mot par un autre, une seule fois. Il s'agit de faire en sorte qu'elle s'exécute en boucle jusqu'à ce que tous les mots à remplacer l'aient été.

 

Pour savoir quoi remplacer par quoi, on a besoin de lire la table de remplacement au format Excel. Comme on est dans Word, il faut activer la librairie Excel pour utiliser ses fonctionnalités: Outils > Références... puis cocher "Microsoft Excel Object Library".

 

Petit détour par les variables:
En programmation, une variable sert à stocker une valeur. En VBA on déclare une variable comme suit:

Dim maVariable


Et on lui attribue une valeur de la manière suivante:

maVariable = 5


maVariable ne contient qu'une seule valeur mais il est possible de déclarer des variables qui en contiennent plusieurs: il s'agit alors de tableaux. Nous aurons besoin d'un tableau pour stocker notre table de remplacement.

 

Pour déclarer des tableaux:

Dim monTableauA(10) 'tableau à une dimension comportant 11 éléments (de 0 à 10)

 

Dim monTableauB(5,10) 'tableau à deux dimensions comportant 6 lignes et 11 colonnes

 

Dim monTableauC() 'tableau dynamique (non dimensionné)


Pour y stocker une valeur:

monTableauB(0, 2) = 5


Si on en revient à notre cas, nous allons copier notre table de remplacement Excel dans un tableau nommé tableRemplacement() afin que notre macro travaille sur des données stockées en mémoire (vive) et non sur un fichier, ce qui sera beaucoup plus rapide à l'exécution.

 

Déclarons en début de macro le tableau destiné à contenir notre table de remplacement.
A placer juste en dessous de Sub maMacro():

Dim tableRemplacement()

 

Petit détour par les objets:
Chaque application implémentant le langage VBA a son modèle objet. Au sommet de la hiérarchie du modèle objet se trouve l'objet Application. Un objet a des propriétés qui peuvent être des variables, des procédures, ou d'autres objets ayant eux-mêmes des propriétés.

 

La syntaxe VBA qui permet de faire référence à la propriété d'un objet est Objet.Propriété.

 

Ainsi, sous Word:

Application.Documents(1).Title


...fait référence au titre du premier document ouvert.

 

Sous Excel:

Application.Workbooks(1).Worksheets(1).Range("A1:B6" ).Value


...fait référence aux valeurs contenues dans la plage A1:B6 de la première feuille du premier classeur ouvert.

 

Ceci sert d'exemple mais il n'est pas nécessaire de taper Application.Workbooks(1).Worksheets(1) pour faire référence à la feuille de calcul active.
On peut écrire simplement:

Range("A1:B6" ).Value


ce qui fera référence aux valeurs de la plage A1:B6 dans la feuille active.

 

Maintenant, ouvrons le fichier Excel contenant la table de remplacement, et copions les valeurs contenues dans la première feuille de calcul vers notre tableau tableRemplacement(). Le tout en une ligne à placer juste en dessous de la déclaration de tableau (Dim tableRemplacement())

tableRemplacement() = Excel.Workbooks.Open("C:\Users\mac_dounald\Desktop\Classeur1.xlsx", ReadOnly).Worksheets(1).UsedRange.Value

 

Par cette ligne, nous affectons au tableau tableRemplacement() les valeurs (.Value) contenues dans la plage utilisée (.UsedRange) de la première feuille (.Worksheets(1)) du classeur que nous ouvrons en lecture seule: (.Workbooks.Open("C:\Users\mac_dounald\Desktop\Classeur1.xlsx", ReadOnly)) via Excel.

 

Pour voir ce que contient ce tableau, on peut afficher la fenêtre Variables Locales (Affichage > Variables Locales) et exécuter la macro pas-à-pas en appuyant plusieurs fois sur F8. A noter que les index du tableau ne commencent plus à 0 mais à 1. C'est le cas lorsque l'on copie des valeurs d'une plage de cellules d'Excel.

 

Maintenant que notre table de remplacement est copiée en mémoire, ajoutons une boucle For...Next qui va répéter le remplacement que nous avons enregistré plus tôt, en remplaçant les mots de la première colonne par ceux de la deuxième.

 

Syntaxe de la boucle for:

For i = 1 to n
(code à exécuter)
Next


La variable i prend ici la valeur 1, puis le code entre parenthèses est exécuté. i est incrémenté à chaque itération de la boucle. A la ligne Next, si i est inférieur ou égal à n, l'exécution reprend depuis le début de la boucle. Lorsque i devient supérieur à n, le code à exécuter est sauté et l'exécution se poursuit après la boucle. L'intérêt de i est que l'on peut l'utiliser à l'intérieur du code à exécuter pour modifier légèrement son exécution d'une itération à l'autre, car bien que le code soit répétitif, quelque-chose doit changer à chaque itération! En l'occurrence, ce qu'on veut faire changer entre chaque itération est la ligne de notre table de remplacement. A la première itération, on remplacera la valeur contenue dans la première ligne, colonne 1 (tableRemplacement(1, 1)) par celle contenue dans la première ligne, colonne 2 (tableRemplacement(1, 2)). A la deuxième itération, on remplacera tableRemplacement(2, 1) par tableRemplacement(2, 2) et ainsi de suite. On peut donc dire que la boucle remplacera tableRemplacement(i, 1) par tableRemplacement(i, 2):

 

For i = 1 To UBound(tableRemplacement())
Selection.Find.ClearFormatting
Selection.Find.Replacement.ClearFormatting
With Selection.Find
.Text = tableRemplacement(i, 1) 'mot de la première colonne
.Replacement.Text = tableRemplacement(i, 2) 'mot de la deuxième colonne, sur la même ligne
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
End With
Selection.Find.Execute Replace:=wdReplaceAll
Next


A la place de n, on utilise la fonction UBound() qui retourne le nombre de lignes de tableRemplacement().
.Text, prend la valeur de tableRemplacement(i, 1)
.Replacement.Text prend la valeur de tableRemplacement(i, 2)

 

Maintenant tu n'as plus qu'à lancer ta macro via le bouton Macros de Word (onglet Développeur).

 

:hello:


Message édité par Cutter le 02-10-2013 à 09:05:17

---------------
last.fm
n°3099558
mac_dounal​d
Posté le 02-10-2013 à 23:01:16  profilanswer
 

merci énormément pour ce post :jap:
 
je travaille depuis peu sur de l'excel/word, et ça donne envie de s'y mettre vraiment, surtout que ca n'a pas l'air très compliqué.
j'y regarderai plus précisément demain au boulot, tu m'enlèves une sacrée épine du pied !
 
 
encore merci pour cette réponse ultra complète  :jap:  
 
 

n°3100546
asmomo
Posté le 12-10-2013 à 19:29:05  profilanswer
 

J'ai pas trouvé de topic Office 2013 donc je poste ici vu que mon pb est avec Excel. Je viens de passer de 2007 à 2013 64bit, impossible de laisser l'ancien installé du coup, mais la transition a été OK, Outlook surtout a retrouvé ses petits.
 
J'utilise quelques fichiers Excel très régulièrement, et comme je fais toujours X choses en même temps, je me suis débrouillé pour que ces fichiers prennent une place réduite sur l'écran, la fenêtre Excel ayant une taille et position bien définie. Seulement voilà le nouvel Excel se lance toujours avec une fenêtre prenant tout l'écran, comment changer ce comportement ?


---------------
New Technology is the name we give to stuff that doesn't work yet. Douglas Adams
n°3101525
Ptit loup
Quand c'est flou, y'a un loup
Posté le 18-10-2013 à 17:07:26  profilanswer
 

Que veux tu dire par "ton nouveau excel" ?
c'est une nouvelle instance de l'exe Excel, ou alors c'est un nouveau fichier que tu ouvres dans un Excel déjà ouvert ?

n°3105075
saebalyon
le roi de l'aurtogafe
Posté le 10-11-2013 à 18:01:23  profilanswer
 

Bonjour, je cherche une formule qui me permettrait a partir d'une date et heure du type : 10/11/2013 18h00  
de rajouter un nombre d'heure provenant d'une case genre : 168h
et d'avoir une date de fin et d'heure du style 17/11/2013 8H00
 
Merci :)


---------------
L'urbex : faire découvrir le patrimoine oublié / Mes albums urbex : https://www.flickr.com/photos/14695 [...] 5272741566 et https://www.flickr.com/photos/20070 [...] 0316987281
n°3105081
TDS
Posté le 10-11-2013 à 18:35:33  profilanswer
 

saebalyon a écrit :

Bonjour, je cherche une formule qui me permettrait a partir d'une date et heure du type : 10/11/2013 18h00  
de rajouter un nombre d'heure provenant d'une case genre : 168h
et d'avoir une date de fin et d'heure du style 17/11/2013 8H00
 
Merci :)


 
Il suffit tout simplement d'utiliser le signe +  :o  
Par contre, le formatage classique, c'est plutôt "10/11/2013 18:00" et "168:00:00".

n°3105446
Ptit loup
Quand c'est flou, y'a un loup
Posté le 13-11-2013 à 16:04:10  profilanswer
 

A noter que c'est souvent le contraire que l'on cherche... à avoir un cumul d'heures qui dépassent les 24h, il faut utiliser les crochets...
 
par exemple
=> format personnalisé : [hh]:mm

n°3105469
Asegard
Posté le 13-11-2013 à 19:50:37  profilanswer
 

Salut tout le monde !
 
Besoin de votre aide pour une petite chose:
 
Jusqu'à présent au boulot, on était sur Excel 2003. Je m'étais fais un fichier tout simple avec 3 colonne, la première étant une colonne de thèmes principaux. Pour choisir facilement mon thème et afficher les données correspondantes des autres colonnes, j'avais fait un filtre automatique, et j'avais donc un menu déroulant des plus basiques.
 
Je cliquais sur un thème, et directement j'avais ce que je voulais.
 
On vient de passer sur Office 2007, et maintenant, pour passer d'un thème a l'autre, je dois décocher le précédent, afficher celui que je veux, et cliquer sur OK.... bref, moins simple.
 
Y'a t-il une astuce pour revenir aux listes déroulantes simplifiées, ou est-ce que je vais devoir faire ça tout le temps ?
 
Merci de votre aide :)

n°3105490
kensiko26
Posté le 13-11-2013 à 22:20:13  profilanswer
 

Asegard a écrit :


Y'a t-il une astuce pour revenir aux listes déroulantes simplifiées, ou est-ce que je vais devoir faire ça tout le temps ?
 
Merci de votre aide :)


 
Malheureusement ça fonctionne différemment sous Excel 2007. Il faudrait que tu fasses une macro avec un ComboBox pour avoir le même résultat.

n°3105491
Asegard
Posté le 13-11-2013 à 22:21:21  profilanswer
 

Ok donc ca va pas le faire...  :/
 
Merci  :)

n°3105548
Ptit loup
Quand c'est flou, y'a un loup
Posté le 14-11-2013 à 17:35:12  profilanswer
 

Dans la zone de saisie libre après avoir cliqué sur la combo, tu peux aussi saisir du texte... il filtre alors sur ce qui correspond dans la liste.
Si ma mémoire est bonne, ça annule le critère précédent (sauf si tu coches pour ajouter à la sélection précédente); à voir si c'est plus simple ou pas dans ton cas.

n°3106214
Zaphod
Posté le 20-11-2013 à 16:12:07  profilanswer
 

Bonjour à tous.
 
Est-il possible d'afficher un nombre dans sa version tronquée ?
(sans utiliser de formule pour ne pas modifier le contenu)
 
Exemple je veux que 1.2467 soit affiché en tant que 1.24
Mais pouvoir continuer à faire référence à cette cellule pour d'autres calculs.
 
Evidemment une solution serait de doubler les cellules (une pour le calcul, une pour l'affiche qui soit la troncature de l'autre) mais j'aimerais éviter.

n°3106217
kensiko26
Posté le 20-11-2013 à 16:49:57  profilanswer
 

Oui bien sûr, faire un clic droit puis format de cellule puis choisir nombre, tu mets le nombre de chiffres après la virgules.

n°3106218
Ptit loup
Quand c'est flou, y'a un loup
Posté le 20-11-2013 à 17:05:52  profilanswer
 

Format de cellule -> onglet Nombre -> tu choisis ensuite le format
 
(y'a déjà qq formats de base ou le nb de décimales dans le ruban Accueil, zone Nombre)
 
C'est juste l'affichage qui est modifié, les calculs continuent de se faire avec la valeur exacte.
 
Ca marche pour tout type de données
-> dates (tu peux afficher le jour de la semaine, etc...),
-> heures
-> nombres
-> euros (qui ne sont que des nombres)
-> pourcentages
etc...

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  38  39  40  ..  112  113  114  115  116  117

Aller à :
Ajouter une réponse
 

Sujets relatifs
[EXCEL] Faire une mise à jour dynamique de valeur entre champsExcel : rechercher et afficher une liste
[EXCEL] Conversion/multiplication de massequestions sur la téléphonie avec free en 512k
Excel: Comment insérer automatiquement un titre à chaque page ?[excel] largeur de colonne différente
[Excel] (N00B Inside :-/ )Je veux additionner ...2 questions urgentes : Remplacer Photoshop et achat de scanner
changer la police par défaut sous Excel[Excel] Comment faire pivoter une feuille ?
Plus de sujets relatifs à : [Topic Unique] Excel : Keep calm and Pivot Table !


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)