Répondre à la discussion
Affichage des résultats 1 à 30 sur 30

M'aider à créer une petite macro sous word ou excel



  1. #1
    azeto

    M'aider à créer une petite macro sous word ou excel


    ------

    Bonjour,

    J'ai une colonne de plusieurs centaines de lignes contenant une phrase chacune.

    Je voudrais que s'inscrive sur une colonne à droite dans chaque cellule correspondant à une phrase le nombre de mots contenus dans cette phrase.

    -----

  2. Publicité
  3. #2
    Nithael

    Re : M'aider à créer une petite macro sous word ou excel

    Salut,

    Il "suffit" de faire une boucle (for par exmple) qui, sur chacune des lignes de ta colonne compte le nombre d'espace entre les mots. Le nombre de mots est alors égal au nombre d'espace+1 et il suffit de l'ecrire dans la deuxième colonne. Pour ce qui est de l'algo je te le laisse créer, il n'y a pas ,je pense, de difficultés.

    Cordialement
    Physique Murphienne: Tout corps plongé dans un liquide reçoit un coup de téléphone

  4. #3
    azeto

    Re : M'aider à créer une petite macro sous word ou excel

    Merci pour la réponse.
    Mais je suis débutant-débutant.
    Je ne sais pas écrire une macro.
    D'habitude, je me sers de la souris et du clavier (sous word), mais cette fois-ci, je n'y arrive pas.

  5. #4
    azeto

    Re : M'aider à créer une petite macro sous word ou excel

    J'ai eu la solution d'un ami qui m'a répondu entre temps.
    A coller dans une cellule :
    =NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";""))+1
    Puis faire glisser la poignée "copié".
    Merci.

  6. #5
    EspritTordu

    Re : M'aider à créer une petite macro sous word ou excel

    Bonjour,

    Je ne m'avance pas trop, mais je crois que les macros, c'est réservé à Excel uniquement...

    Pour votre affaire effectivement, il faut jouer avec des boucles (par exemple les boucles for)...imbriquées l'une dans l'autre ce qui n'est pas facile à dompter au début.

    Une macro dans Excel (je parle juste pour ce que je connais) est en fait seulement une procédure Visual Basic (VBA), langage de programmation annexé à Excel pour permettre d'étendre considérablement ses fonctionnalités.
    Pour faire une macro, il y a deux méthodes, soit on passe directement par l'interface Excel (menu outils>Macro>Nouvelle Macro, on nomme la macro par le premier nom venu), mais cette méthode permet seulement d'enregistrer ce que vous faîtes sur l'interface. En réalité, lorsque on suit l'interface Excel, le logiciel édite lui-même la programmation qui est visible en ouvrant l'éditeur VBA (menu outils>Macro>Visual Basic Editor). En effet, Excel vous a créé une procédure nouvelle dans le module associé au projet (généralement aussi ajouté dans la foulée). A voir.

    Pour votre affaire, il est plus rapide d'aller directement à l'éditeur de programmation VBA(menu>outils>Macro>Visual Basic editor). Ajouter un module à votre projet contenant par défaut des feuilles "sheet" (modules des feuillets). (dans l'éditeur : menu insertion>Module). Dans le nouveau module qui s'ouvre vierge, on va ajouter la procédure et les lignes de codes qu'elle doit contenir pour réaliser ce que vous souhaitez avec vos colonnes. il faut connaître le langage, mais VBA est très intuitif!

    Soit deux colonnes A et B. Dans A on a 100 lignes dont on veut pour chacune d'entres elles, calculer le nombre de mot, c'est-à-dire en fait calculer le nombre d'espace déterminant un mot. il n'y a plus qu'a faire une copie du texte suivant, le coller dans le module, et exécuter la dite procédure (dans l'éditeur: menu exécution>exécuter). C'est servi sur un plateau!

    Sub MaMacro()

    Dim i As Long, j As Long, NombreLigne As Long, ContenuCellule As String, LongueurContenuCellule As Long, NombreMot As Long

    NombreLigne = 100

    For i = 1 To NombreLigne
    ContenuCellule = Trim(ActiveSheet.Range("A" & i)) 'Ce que contient le cellule en cours d'étude
    LongueurContenuCellule = Len(ContenuCellule) 'Nombre total de caractère
    NombreMot = 0 'Réinitialisation du compteur de mot

    If LongueurContenuCellule <> 0 Then
    'on calcule les mots de la cellule en cours
    For j = 1 To LongueurContenuCellule - 1
    If InStr(j, ContenuCellule, Chr(32)) <> 0 Then
    NombreMot = NombreMot + 1
    j = InStr(j, ContenuCellule, Chr(32))
    End If


    Next j
    NombreMot = NombreMot + 1 'correctif
    End If

    'On sort le résultat
    ActiveSheet.Range("B" & i) = NombreMot
    Next i

    End Sub


    J'ai en plus testé la chose, il ne doit pas avoir d'erreur inattendues...

  7. A voir en vidéo sur Futura
  8. #6
    EspritTordu

    Re : M'aider à créer une petite macro sous word ou excel

    Bon j'arrive trop tard... Mais mon message reste instrutif (j'ai plus que cela je crois...). Il reste cependant que vous n'aviez pas précisé que les mots sont séparés non pas par des espaces (chr(32)) mais par un point virgule (";") semble-t-il!

  9. Publicité
  10. #7
    Gre

    Re : M'aider à créer une petite macro sous word ou excel

    Citation Envoyé par EspritTordu Voir le message
    [...]
    Je ne m'avance pas trop, mais je crois que les macros, c'est réservé à Excel uniquement...[...]
    Tu t'avances trop
    Les macros en VB sont disponibles dans tous les documents MS Office.
    C'est d'ailleurs un problème de sécurité important.
    War does not decide who's right, but who's left. (Bertrand Russell)

  11. #8
    mécano41

    Re : M'aider à créer une petite macro sous word ou excel

    Bonjour,

    Je t'ai fait ce petit truc (je n'ai jamais fait de VBA Word alors ça reste simple!).

    Tu peux allonger le tableau selon le mode habituel. Dans ce document, ne crée pas d'autre tableau avant les autres sinon la macro ne fonctionnera plus.

    Il suffit ensuite de copier tes phrases dans la première colonne puis de cliquer sur le bouton.

    Cordialement
    Fichiers attachés Fichiers attachés

  12. #9
    mécano41

    Re : M'aider à créer une petite macro sous word ou excel

    Désolé, il semble que les macros se soient désactivées dans ce document. Je vais chercher car je ne me rappelle plus comment on les réactive.

    Cordialement

  13. #10
    mécano41

    Re : M'aider à créer une petite macro sous word ou excel

    Pour réactiver, il suffit de cliquer "activer les macros dans la boîte de dialogue qui s'ouvre à l'ouverture du document.

    Mais, de toutes façons cela traite des "phrases" donc avec des mots séparés par des espaces donc ce n'est pas ton cas.

  14. #11
    mécano41

    Re : M'aider à créer une petite macro sous word ou excel

    J'ai modifié le fichier Word précédent. Celui-ci doit faire ce que tu cherches.

    Cordialement
    Fichiers attachés Fichiers attachés

  15. #12
    EspritTordu

    Re : M'aider à créer une petite macro sous word ou excel

    Citation Envoyé par Gre Voir le message
    Tu t'avances trop
    Les macros en VB sont disponibles dans tous les documents MS Office.
    C'est d'ailleurs un problème de sécurité important.
    Merci c'est bon de le savoir.

  16. Publicité
  17. #13
    azeto

    Re : M'aider à créer une petite macro sous word ou excel

    Citation Envoyé par mécano41 Voir le message
    J'ai modifié le fichier Word précédent. Celui-ci doit faire ce que tu cherches.

    Cordialement
    J'ouvre le document.
    Je lis :"Cliquez ici pour compter le nombre de mots".
    Je clique. Il ne se passe rien même si je recouvre les cellules.

  18. #14
    mécano41

    Re : M'aider à créer une petite macro sous word ou excel

    Bonjour,

    Pourtant, je viens de réessayer en ouvrant le document que je t'ai envoyé et cela fonctionne.

    Tu as bien cliqué "Activer les macros" dans la boîte de dialogue qui doit s'ouvrir avant l'ouverture du document?

    Cordialement

    EDIT Evidemment, cela ne fonctionne qu'une fois puisqu'après il n'y a plus les points-virgules pour séparer les mots mais des espaces.

  19. #15
    azeto

    Re : M'aider à créer une petite macro sous word ou excel

    Ouf !
    J'a trouvé mais ce fut long.
    Je n'avais pas de boîte de dialogue à l'ouverture.
    Il fallait baisser le niveau de sécurité de word (trouver dans google).
    Je garde ta macro. Elle est très bien.
    Comment l'enregistrer et même comment l'associer à la touche "CTRL-1" par exemple ?
    Merci d'avance.
    A ce soir.
    Je dois sortir.

  20. #16
    mécano41

    Re : M'aider à créer une petite macro sous word ou excel

    Bonjour,

    J'ai eu quelques soucis pour lancer la macro par ctrl+1 (dans cet exemple, c'est le 1 normal, pas celui du clavier numérique). Il a fallu modifier un peu. La macro s'appelle "Comptage"

    Si tu veux appliquer cette macro à un autre document il faut aller dans ce document et faire :

    - outil / macro / macros / organiser

    A gauche, tu dois voir le nom de ton document

    A droite il doit y avoir Normal.doc

    - tu cliques sur Fermer le fichier, puis sur ouvrir le fichier
    - tu vas chercher mon document, là où tu l'as enregistré
    - tu fais Ouvrir. Dans la fenêtre tu dois avoir "New macros"
    - Tu cliques sur le bouton << Copier. New macros doit s'inscrire dans la fenêtre de gauche
    - tu cliques Fermer

    Ensuite, il faut affecter des touches de raccourci à la macro en faisant :

    - outils / personnaliser et tu cliques sur le bouton Clavier, en bas
    - dans Catégories, tu choisis Macros
    - dans Enregistrer dans, tu sélectionnes le nom de ton document
    - dans Macro, tu sélectionnes Comptage
    - dans Nouvelles touches tu appuies sur tes touches (ctrl+1 par ex.)
    - tu cliques Attribuer. Les touches choisies s'affichent à gauche dans Touches actuelles
    - tu cliques Fermer puis à nouveau Fermer

    C'est tout

    Cordialement
    Fichiers attachés Fichiers attachés

  21. #17
    danyvio

    Re : M'aider à créer une petite macro sous word ou excel

    Citation Envoyé par azeto Voir le message
    J'ai eu la solution d'un ami qui m'a répondu entre temps.
    A coller dans une cellule :
    =NBCAR(A1)-NBCAR(SUBSTITUE(A1;" ";""))+1
    Puis faire glisser la poignée "copié".
    Merci.
    C'est une bonne solution, et élégante.
    Petite remarque toutefois : si des mots sont séparés par deux (ou davantage) espaces, il faut d'abord transiter par une cellule de travail (ou compliquer un peu ta formule) contenant la fonction SUPPRESPACE qui supprime tous les espaces, laissant toutefois un espace simple entre les mots.
    Dans B1 : =SUPPRESPACE(A1)
    Dans C1 : = NBCAR(B1)-NBCAR(SUBSTITUE(B1;" ";""))+1
    On trouve des chercheurs qui cherchent ; on cherche des chercheurs qui trouvent !

  22. #18
    mécano41

    Re : M'aider à créer une petite macro sous word ou excel

    En regardant à nouveau les posts suite à celui de Danyvio, je pense que j'ai mal interprété quelque chose.

    En regardant de plus près la méthode sous EXCEL, je vois que les mots de tes phrases sont bien séparés par des espaces (comme je l'avais d'ailleurs compris au début) et non par des points-virgules (comme je l'avais interprété suite au post # d'Esprit Tordu - j'avais modifié en conséquence). J'ai donc revu ma copie dans la version 4 !

    Désolé pour ce contretemps!

    Cordialement

    EDIT Cela démarre toujours par ctrl+1
    Fichiers attachés Fichiers attachés

  23. Publicité
  24. #19
    azeto

    Re : M'aider à créer une petite macro sous word ou excel

    Merci à tous.
    Je verrai cela demain car le soir, il ne faut pas trop exciter mes neurones déjà ensommeillées.
    Je vous tiens au courant.

  25. #20
    azeto

    Re : M'aider à créer une petite macro sous word ou excel

    J'ai essayé.
    Marche pas.
    Il y a une erreur (débogage).
    Une question : faut-il appliquer cette procédure à chaque nouveau document ?

  26. #21
    mécano41

    Re : M'aider à créer une petite macro sous word ou excel

    Tu as ouvert mon dernier document?
    Il s'est ouvert sans problème?
    Lorsque tu fais Ctrl+1, il te met une erreur?
    Qu'est-ce qui est écrit?
    Quand tu cliques sur débogage, il dit quoi?

    Je viens de le réouvrir depuis le forum et je n'ai pas d'anomalie.

    Pour ta question, on doit pouvoir mettre la macro dans le modèle normal.dot elle devient alors accessible à tous les documents

  27. #22
    azeto

    Re : M'aider à créer une petite macro sous word ou excel

    Pour ton document, aucun problème ça marche.
    Mais pour un nouveau document, ça ne marche pas.
    J'ai essayé de suivre à la lettre plusieurs fois tes instructions.
    Je ne vois pas où j'ai pu commettre une erreur.

  28. #23
    mécano41

    Re : M'aider à créer une petite macro sous word ou excel

    Je vais revérifier le processus. Je regarderai en même temps comment mettre la macro dans le normal.doc.

  29. #24
    azeto

    Re : M'aider à créer une petite macro sous word ou excel

    Merci.
    Explique bien pas à pas dans le détail car pour moi, c'est totalement du chinois. Il suffit que je manque un pas et ça rate. Rien ne m'est évident dans cette programmation.
    Attention : il m'arrive de travailler sur des milliers de phrases à la fois et parfois sur plusieurs colonnes et souvent sur des caractères spéciaux (Je suis linguiste).
    Bonne semaine.

    C'est normal.doc ou normal.dot ?

  30. Publicité
  31. #25
    mécano41

    Re : M'aider à créer une petite macro sous word ou excel

    Bonjour,

    Ton message vient de m'arriver. J'étais en train de rédiger ce qui suit. J'espère que ce sera assez clair.

    (Pour le dysfonctionnement dans le cas précédent, peut-être n'avais-tu pas mis le premier tableau (1 ligne de titres) avant le tableau de comptage, mais séparé, d'où l'erreur)

    Je pense que le plus pratique pour toi est de créer un modèle puis :

    - soit de créer un nouveau document basé sur le modèle
    - soit d'attacher le modèle à un document existant.

    Cela permet également de transmettre facilement le modèle à quelqu'un. C'est plus facile que de transférer une macro.

    Je ne sais pas si tu as déjà fait ces opérations alors, j'explique (j'ai préféré te le faire faire plutôt que t'envoyer un modèle tout fait, cela peut te servir une autre fois) :

    1 - Création du modèle

    - tu ouvres mon document EssaiVBAword4.doc
    - tu supprimes le deuxième tableau (tu laisses quelques sauts de paragraphe dessous)
    - tu fais Fichier/Enregistrer sous
    - dans "Nom de fichier" tu nommes ton modèle ex.: ComptageDeMots
    - dans "Type de fichier", tu sélectionnes "Modèles de documents (.dot)"
    - tu fais enregistrer

    Si un jour tu as besoin de copier ce modèle, il doit être (sous XP) normalement enregistré en : C:\Documents and settings\ici le nom d'utilisateur\Application data\Microsoft\Modèles (s'il n'est pas là il faut faire une recherche)

    2 - Utilisation du modèle par création d'un nouveau document

    - tu fais Fichier/Nouveau
    - tu choisis "Créer à partir d'un modèle"
    - tu cliques sur le nom du modèle ex. : ComptageDeMots
    (s'il n'y est pas cliques sur Modèles généraux)
    - le nouveau document s'ouvre
    - dans ce document, tu crées ou tu copies ton tableau de deux colonnes avec, à gauche, les phrases (mots séparés par un espace)
    - tu enregistres en fichier .doc
    - la macro se lance par Ctrl+1

    3 - Utilisation du modèle avec un document existant

    Contraintes :
    - le document doit comporter 1 tableau (pas plus) avant le tableau de comptage (comme dans le modèle). On pourrait éventuellement supprimer cette contrainte en modifiant la macro. Je t'expliquerai si nécessaire. S'il y a d'autres tableaux après le tableau de comptage, ce n'est pas gênant.
    - le tableau de comptage doit comporter au moins deux colonnes, les phrases étant dans la première et le compte dans la deuxième

    - tu fais Outils/Modèles et compléments
    - tu cliques "Attacher"
    - tu sélectionnes le nom de ton modèle ex.: ComptageDeMots.dot
    - tu cliques "Ouvrir"
    - tu cliques "OK"
    - la macro se lance par Ctrl+1

    J'espère n'avoir rien oublié. S'il y a un problème, dis-le sans attendre, en précisant ce qui se passe.

    Cordialement

  32. #26
    azeto

    Re : M'aider à créer une petite macro sous word ou excel

    2 - Utilisation du modèle par création d'un nouveau document

    - tu fais Fichier/Nouveau
    - tu choisis "Créer à partir d'un modèle"
    .........................


    J'ai bien fait "Fichier/Nouveau" mais je ne trouve pas "Créer à partir d'un modèle".

  33. #27
    mécano41

    Re : M'aider à créer une petite macro sous word ou excel

    Tu n'as pas une fenêtre qui s'ouvre contre le bord droit du document?

    Edit : je suis en Word 2002 - SP3 sour XP

  34. #28
    azeto

    Re : M'aider à créer une petite macro sous word ou excel

    Si, mais je n'avais pas fait attention.
    Je cherchais dans le menu déroulant.
    Ca marche.
    Merci beaucoup.

    Un petit détail pas grave (Je peux bidouiller). Les points, virgules, parenthèses, etc. sont comptés comme des mots

  35. #29
    mécano41

    Re : M'aider à créer une petite macro sous word ou excel

    Citation Envoyé par azeto Voir le message
    ...
    Un petit détail pas grave (Je peux bidouiller). Les points, virgules, parenthèses, etc. sont comptés comme des mots
    Effectivement, je ne l'avais pas vu. Chaque signe autre qu'une lettre compte pour deux mots! C'est bizarre car c'est une fonction de Word. Je vais chercher mais je ne suis pas optimiste. Est ce que le texte peut-être modifié ou doit-on le garder tel-quel?

  36. #30
    azeto

    Re : M'aider à créer une petite macro sous word ou excel

    Ne t'inquiète pas.
    Je peux modifier le texte comme je veux en supprimant tous ces caractères autres qu'une lettre puis les rétablir après comptage.
    Tu as déjà fait beaucoup. C'est 99 % de mon travail résolu car c'est une vraie galère quand il faut compter et recompter au risque de faire des erreurs. Et ça prend un temps fou que je pourrais employer à quelque chose de plus utile.
    Encore mille mercis.
    Je mets ta macro soigneusement au chaud.
    Bonne après-midi.

Discussions similaires

  1. Cherche petite macro word
    Par azeto dans le forum Logiciel - Software - Open Source
    Réponses: 3
    Dernier message: 18/09/2007, 07h03
  2. Conversion hexa-binaire dans une macro Excel
    Par jecario dans le forum Logiciel - Software - Open Source
    Réponses: 4
    Dernier message: 06/06/2007, 21h47
  3. créer une macro
    Par ABN84 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 25/04/2007, 16h26
  4. VBA Excel: appliquer une macro a plusieurs fichiers
    Par Igothigh dans le forum Logiciel - Software - Open Source
    Réponses: 2
    Dernier message: 14/03/2007, 09h45
  5. Pb avec une macro sur excel!!
    Par ilanazco dans le forum Logiciel - Software - Open Source
    Réponses: 6
    Dernier message: 05/04/2006, 07h51
Découvrez nos comparatifs produits sur l'informatique et les technologies.