IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

JavaScript Discussion :

Compter le nombre d’occurrences de chaque mot d'un texte.


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut Compter le nombre d’occurrences de chaque mot d'un texte.
    Salut,

    Compter le nombre d’occurrences de chaque mot d'un texte...

    J'ai fait ça :

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    texte = "Salut tout le monde, c'est un texte pour tester le code... Salut tout le monde, c'est un texte pour tester le code..."
     
    div = texte.split(/[^a-zA-Z]/)
    console.log(div);
    dico = {}
     
    for (let mot of div) {    
        if (mot != "") {
            if (dico[mot] != undefined) {
                dico[mot] += 1;
            } else {
                dico[mot] = 1
            }
        }
    }
     
    console.log(dico);

    Peut-on améliorer le code ?

  2. #2
    Membre actif Avatar de abdennour bouaicha
    Homme Profil pro
    Développeur Java
    Inscrit en
    Avril 2009
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Avril 2009
    Messages : 98
    Par défaut
    une autre proposition :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    var texte = 'Salut tout le monde, c\'est un texte pour tester le code... Salut tout le monde, c\'est un texte pour tester le code...';
    var text=texte.split(' ');
    var k=0;
    console.clear();
    function getMot(mot){
    k=0;
    for(var j=0;j<text.length;j++){
    if(mot==text[j])k++;
    }
    return k;
    }
    for (let mot of text) { 
    console.log(mot +': est repeté '+ getMot(mot) + ' fois \n');
    }

  3. #3
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2011
    Messages
    2 910
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2011
    Messages : 2 910
    Par défaut
    Merci pour cette nouvelle proposition... A analyser...

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour Beginner.,

    • tes variables ne sont pas déclarées (toujours utiliser "use strict"; !)
    • ta regex n'inclut pas les caractères accentués.
    • de plus, il faut mettre le tout le minuscules, sinon "Salut" et "salut" seront 2 mots différents.
    • on peut aussi mettre le tout dans une fonction, et ne prendre que les mots de plus de 3 lettres (par exemple)
    • on peut aussi supprimer de la liste ceux qui n'apparaissent qu'une seule fois

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    "use strict";
    // -------------
    function count_multiples_mots( texte )
    {
      var div = texte.toLowerCase().split(/[^a-zA-ZàèìòùÀÈÌÒÙáéíóúýÁÉÍÓÚÝâêîôûÂÊÎÔÛãñõÃÑÕäëïöüÿÄËÏÖÜŸçÇߨøÅ寿œ]/);
      var obj_dico = {};
      // ---------
      for (let mot of div) {    
        if (mot != "" && mot.length>2 ) // mots de plus de 3 lettres
        {
          if (obj_dico[mot] == undefined) {
            obj_dico[mot] = 1;
          } else {
            obj_dico[mot] += 1;
          }
        }
      }
      // ---------
      // on supprime ceux qui ne sont présents qu'une fois
      for (var mot in obj_dico)
      {
        if( obj_dico[mot]==1 ){
          delete(obj_dico[mot]);
        }
      }
      // ---------
    //  console.log( dico );
      return obj_dico;
    }
    Utilisation :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <div id="mon-texte">
    C'est l'évadé du Névada <br />
    Qui s'évada dans la vallée <br />
    Dans la vallée du Névada <br />
    Qu'il dévala pour s'évader <br />
    Sur un vilain vélo volé <br />
    Qu'il a volé dans une villa <br />
    Et le valet qui fut volé <br />
    Vit l'évadé qui s'envola <br />
       <br />
      Avec un vélo <br />
    'Faut pas s'évader <br />
    Parce que c'est crevant <br />
    Et puisqu'on peut crever <br />
     <br />
    Si l'évadé du Névada <br />
    S'est évadé dans la vallée <br />
    C'est qu'il pensait au lit d'Éva <br />
    Et le voulait pour s'y lover <br />
    Sur le divan de la Diva <br />
    On vit l'évadé s'affaler <br />
    Mais quand Éva le revit là <br />
    Elle le vida pour l'éviter <br />
     <br />
    Quand on est cocu <br />
    'Faut téléphoner <br />
    Ou télégraphier <br />
    Avant de se pointer <br />
     <br />
    C'est l'évadé du Névada <br />
    Qui s'énerva dans la vallée <br />
    Il se leva devant Éva <br />
    Pour lui filer une belle volée <br />
    Et c'est Éva qui s'alita <br />
    Pendant que l'on vit l'évadé <br />
    Qui n'avait plus envie d'Éva <br />
    se r'envoler dans la vallée <br />
     <br />
    Y'a des énervés <br />
    Qui pensent qu'à frapper <br />
    Avec ces mecs-là <br />
    On peut pas s'expliquer <br />
     <br />
    Mais l'évadé du Névada <br />
    Fût délavé dans la vallée <br />
    Par toute l'eau qui tombait là <br />
    Et on vit l'évadé vanné <br />
    C'est vrai que la vie d'évadé <br />
    Ne valait pas la vie d'avant <br />
    Car en vélo quand y'a du vent <br />
    On est vidé c'est évident <br />
     <br />
    C'est moi qui te l'dis <br />
    Si t'as pas d'imper' <br />
    C'est vachement facile <br />
    De commettr' un impair <br />
     <br />
    Et l'évadé du Névada <br />
    A pédalé dans la vallée <br />
    Dans la taule il dit : "me voila <br />
    Je crois que là vous m'en voulez <br />
    Car toute l'eau qui m'a lavé <br />
    Et toute l'eau qu'j'ai avalée <br />
    M'a dégoûté de m'évader <br />
    De la vallée du Névada" <br />
     <br />
    Quand y tombe de l'eau <br />
    Quand y a d'la pluie <br />
    Retourne en prison <br />
    Pour te mettre à l'abri <br />
    </div>
    <div id="result"></div>
    <div id="classement"></div>
    Affichage :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    // -------------
    var texte = document.querySelector('#mon-texte').textContent;
    var obj_dico = count_multiples_mots( texte );
    // -------------
    // Affichage
    var ul = document.createElement('ul');
    document.querySelector('#result').append(ul);
    for (var mot in obj_dico)
    {
    //  console.log(mot, obj_dico[mot]);
      var li = document.createElement('li');
      li.textContent = mot+' : '+obj_dico[mot];
      ul.append(li);
    }
    // -------------
    Classement des mots, par nombre d'occurrences croissant (une autre façon d'afficher les résultats) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    // -------------
    // Classement des mots, par nombre d'occurrences croissant
    function count_multiples_mots_array_sort( obj_dico )
    {
      var arr_dico = [];
      for (var mot in obj_dico)
      {
        if(arr_dico[obj_dico[mot]] == undefined) {
          arr_dico[obj_dico[mot]] = [];
        }
        arr_dico[obj_dico[mot]].push(mot);
      }
      return arr_dico;
    }
    // -------------
    var arr_dico = count_multiples_mots_array_sort( obj_dico );
    //console.log( arr_dico );
    var ul = document.createElement('ul');
    document.querySelector('#classement').append(ul);
    for (var idx in arr_dico)
    {
      var li = document.createElement('li');
      li.textContent = idx+' : '+arr_dico[idx].join(', ');
      ul.append(li);
    }
    // -------------



    Dernière modification par Invité ; 02/11/2019 à 11h23.

  5. #5
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 198
    Par défaut
    Bonjour,
    Peut-on améliorer le code ?
    cela va dépendre de ce que tu entends par « améliorer » !

    En l'état ton code est correct, je fais abstraction de la façon de récupérer les mots qui peut être bien différente suivant ce que tu cherches à obtenir via ta RegExp et du choix du type de la boucle for..of qui est une question de choix personnel plutôt que de performance.

    Tu ne fais que nombre-éléments-trouvés itérations, il va t'être difficile de faire moins, et de plus tu gardes une trace via ton objet crée.

    La méthode proposée par abdennour bouaicha elle va faire nombre-éléments-trouvés * nombre-éléments-trouvés, et ce sans garder de trace, ce qui est donc à éviter autant que faire ce peut.

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  7. #7
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Citation Envoyé par Beginner. Voir le message
    Peut-on améliorer le code ?
    salut,

    En relisant ta proposition et les suivantes, peut-être un mix simplifié:

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    const texte = "Salut tout le monde, c'est un texte pour tester le code... Salut tout le monde, c'est un texte pour tester le code...";
    const div = texte.toLowerCase().split(/[^a-zàèìòùáéíóúýâêîôûãñõäëïöüÿçßøåæœ]/);
     
    for(var i=0, dico={};i<div.length;i++){
    	if(div[i].length>0){
    		if(!dico[div[i]]){
    			dico[div[i]]=1;
    		}
    		else{
    			dico[div[i]]++;
    		}
    	};
    }
    console.log(dico)

  8. #8
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    Je suis parti du regex de jreaux62, après j'ai juste jonglé avec les différentes méthodes que l'on peut appliquer directement sur les objets Array de JS
    Il y a aussi une utilisation de l'objet SET de JS....
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    <!DOCTYPE html>
    <html lang="fr">
    <head>
      <meta charset="UTF-8">
      <title>Compter le nombre d’occurrences de chaque mot d'un texte</title>
      <style>
        body { font-family: Arial, Helvetica, sans-serif; }
        table { border-collapse: collapse; margin: 1em;}
        td { border: 1px solid grey; padding: .2em .5em;}
      </style>
    </head>
    <body>
      <div id="mon-texte" style="display:none;"> 
          C'est l'évadé du Névada          <br /> Qui s'évada dans la vallée       <br />
          Dans la vallée du Névada         <br /> Qu'il dévala pour s'évader       <br />
          Sur un vilain vélo volé          <br /> Qu'il a volé dans une villa      <br />
          Et le valet qui fut volé         <br /> Vit l'évadé qui s'envola         <br />
                                           <br /> 
          Avec un vélo                     <br /> 'Faut pas s'évader               <br />
          Parce que c'est crevant          <br /> Et puisqu'on peut crever         <br />
                                           <br />
          Si l'évadé du Névada             <br /> S'est évadé dans la vallée       <br />
          C'est qu'il pensait au lit d'Éva <br /> Et le voulait pour s'y lover     <br />
          Sur le divan de la Diva          <br /> On vit l'évadé s'affaler         <br />
          Mais quand Éva le revit là       <br /> Elle le vida pour l'éviter       <br />
                                           <br />
          Quand on est cocu                <br /> 'Faut téléphoner                 <br />
          Ou télégraphier                  <br /> Avant de se pointer              <br />
                                           <br />
          C'est l'évadé du Névada          <br /> Qui s'énerva dans la vallée      <br />
          Il se leva devant Éva            <br /> Pour lui filer une belle volée   <br />
          Et c'est Éva qui s'alita         <br /> Pendant que l'on vit l'évadé     <br />
          Qui n'avait plus envie d'Éva     <br /> se r'envoler dans la vallée      <br />
                                           <br />
          Y'a des énervés                  <br /> Qui pensent qu'à frapper         <br />
          Avec ces mecs-là                 <br /> On peut pas s'expliquer          <br />
                                           <br />
          Mais l'évadé du Névada           <br /> Fût délavé dans la vallée        <br />
          Par toute l'eau qui tombait là   <br /> Et on vit l'évadé vanné          <br />
          C'est vrai que la vie d'évadé    <br /> Ne valait pas la vie d'avant     <br />
          Car en vélo quand y'a du vent    <br /> On est vidé c'est évident        <br />
                                           <br />
          C'est moi qui te l'dis           <br /> Si t'as pas d'imper'             <br />
          C'est vachement facile           <br /> De commettr' un impair           <br />
                                           <br />
          Et l'évadé du Névada             <br /> A pédalé dans la vallée          <br />
          Dans la taule il dit : "me voila <br /> Je crois que là vous m'en voulez <br />
          Car toute l'eau qui m'a lavé     <br /> Et toute l'eau qu'j'ai avalée    <br />
          M'a dégoûté de m'évader          <br /> De la vallée du Névada"          <br />
                                           <br />
          Quand y tombe de l'eau           <br /> Quand y a d'la pluie             <br />
          Retourne en prison               <br /> Pour te mettre à l'abri          <br />
      </div>
      <table id="result"></table>
      <table id="classement"></table>
      <script>
        const leTexte      = document.querySelector('#mon-texte')
            , leResult     = document.querySelector('#result')
            , leClassement = document.querySelector('#classement')
            , decoup= leTexte
                        .textContent
                        .toLowerCase()
                        .match(/[a-zàèìòùáéíóúýâêîôûãñõäëïöüÿçߨøåæœ]+/g)
                        .filter(s=>(s!==undefined && s.length > 3) )
                        .sort((a, b) => a.localeCompare(b))
                        .reduce((a,c,i,t)=>                              // crée un tableau d'objet
                          {
                          if (i===0 || t[i-1]!==c ) a.push ({m:c, n:1})   // ex : { m: 'envoler', n: 1 }
                          else                      a[a.length-1].n++    // ex : { m: 'névada', n: 1+1+1+1 }
                          return a
                          }
                          , [])
     
        let occurences = new Set()
     
        for (let mot of decoup)
          {
          occurences.add(mot.n)
          let nRow  = leResult.insertRow(-1)               // nouveau <tr></tr> en fin de table
            , rCell = 0                                    // indice du premier <td></td>
          nRow.insertCell(rCell++).textContent = mot.m     // crée et rempli le premier  <td> avec le mot.m ( ex: 'envoler')
          nRow.insertCell(rCell++).textContent = mot.n     // crée et rempli le premier  <td> avec le mot.n ( son nombre d'occurence )
          }
     
        [...occurences]
          .sort((a, b)=>a-b)
          .forEach(o=>
            {
            let nRow  = leClassement.insertRow(-1)
              , rCell = 0
            nRow.insertCell(rCell++).textContent = o                    // crée et rempli le premier  <td> la valeur d'occurence
            nRow.insertCell(rCell++).textContent = decoup               // sur cet Array 
                                                    .filter(d=>d.n===o) // ne garde que ceux ayant la même valeur que l'occurence courante
                                                    .map(e=>e.m)        // crée un tableau avec uniquement les termes  ( [ ..., { m: 'évader',  n:  3 }, ...] devient [ ..., 'évader', ...]  )
                                                    .join(', ')         // transfo de cet array en String séparé par des virgules...
            })
      </script>
    </body>
    </html>

    [edit] j'arrive pas a activer la coloration syntaxique... :/
    [edit:2] je me suis arrangé pour qu'il fasse moins de 100 lignes + petite optimisation
    [edit:3] je travaille sur les explications, patience....
    [edit:4] les explications sont ici => https://www.developpez.net/forums/d2.../#post11208639

  9. #9
    Invité
    Invité(e)
    Par défaut
    @psychadelic

    1- Il semble que la coloration syntaxique fonctionne mal au delà de 100 lignes de code.
    C'est en cours de correction...
    N.B. J'ai scindé ton code en 2

    2- Merci de mettre quelques explications dans ton code.
    Ce ne serait pas du luxe...

  10. #10
    Expert confirmé
    Avatar de javatwister
    Homme Profil pro
    danseur
    Inscrit en
    Août 2003
    Messages
    3 684
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : danseur

    Informations forums :
    Inscription : Août 2003
    Messages : 3 684
    Par défaut
    Juste pour appliquer le minimum syndical à une page:

    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> 
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
     
    <title>...</title>
     
    <style type="text/css">
    em{
            color:red;
            font-weight:bold;
    }
    #count{
            margin-right:50px;
            float:left;
            height:200px;
            width:500px;
    }       
    #diag{
            height:200px;
            width:500px;
            overflow:auto;
    }
    </style>
     
    <script type="text/javascript">
     
    window.addEventListener("load",()=> {
     
    document.getElementById("tester").addEventListener("click",(e)=>{
            const dico=[];// Oui, on recrée le tableau à chaque fois, c'est aussi simple.
            document.getElementById("diag").innerHTML="";// on vide la zone (salement, j'avoue)
            // on entre dans le tableau chaque paire "mot" + "occurrences" 
            document.getElementById("count").value.toLowerCase().split(/[^a-zàèìòùáéíóúýâêîôûãñõäëïöüÿçßøåæo]/).forEach(v => {
                    if(!dico[v]){
                            if(v.length>0){
                                    dico[v]=1
                            }
                    }
                    else{
                            dico[v]++;
                    };
            });     
                    // on affiche les mots répétés
                    for(i in dico){
                            if(dico[i]>1){
                                    document.getElementById("diag").innerHTML+=`<em>${i}</em> apparaît ${dico[i]} fois.<br />`;
                            }
                    }
            }
    ,false)},
    false);
     
    </script>
     
    </head>
    <body>
    <div style="margin:50px">Détectez les répétitions dans vos discours!</div>
     
    <div>
    	<textarea id="count"></textarea>
    </div>	
     
    <div id="diag"></div>
     
    <div  style="margin:20px;clear:both;">
    	<button id="tester">Compter les répétitions</button>
    </div>
     
    </body>
    </html>

  11. #11
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par javatwister Voir le message
    Juste pour appliquer le minimum syndical ...
    Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr"> 
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script type="text/javascript">
    Euhhhh... Il date de quel époque, ton "minimum syndical" ?
    Krazucki ??
    Dernière modification par ProgElecT ; 02/11/2019 à 21h09.

Discussions similaires

  1. Compter le nombre d’occurrences de chaque mot d'un texte.
    Par Beginner. dans le forum Général Python
    Réponses: 12
    Dernier message: 03/11/2019, 21h09
  2. Réponses: 0
    Dernier message: 30/03/2018, 10h33
  3. Réponses: 0
    Dernier message: 30/03/2018, 10h26
  4. [XL-2010] VBA - Compter le nombre de fois un mot en fonction de chaque mois.
    Par chdiouc dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 31/01/2017, 06h20
  5. Réponses: 4
    Dernier message: 10/12/2014, 23h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo