Excel, formules

Résolu
b737_400 Messages postés 6 Statut Membre -  
aquarelle Messages postés 7181 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Dans une base de donnée excel, j'ai une colonne qui ne contient qu'un seul mot, mais qui peut varier de ligne. Je souhaiterai pouvoir recueillir ce mot à la fin de la colonne.

La fonction concatener marche bien, mais pour ma base de donnée de milliers de lignes, si je doit faire =CONCATENER(A2;A3;A4;A5........A1342) cela va me prendre un temps fou...

Y aurait il par exemple une formule qui prend la somme (en texte), de la colonne... ou le texte le plus haut de la colonne (de toute facon, vu qu'il n'y en a qu'un ce sera celui la..)

Bref, j'aimerai une fonction qui s'écrit comme cela =XXX(A2:A1342) et non pas =XXX(AA2;A3;A4;A5........A1342)

Merci pour vos réponses... ;-)
Configuration: Windows Vista
Internet Explorer 7.0

6 réponses

  1. santiago69 Messages postés 485 Statut Membre 209
     
    Je maitrise parfaitement excel et je peux te garantir que je cherche cette fonction depuis longtemps.
    En fait, je sais maintenant tres bien qu'elle n'existe pas. Alors j'ai programme la mienne.
    Si tu en as absolument besoin et que tu n'a pas trop peur, je peux t'aider a programmer la tienne.
    0
  2. aquarelle Messages postés 7181 Date d'inscription   Statut Modérateur Dernière intervention   1 311
     
    Bonjour,
    Il te faudrait créer ta propre fonction dans Visual Basic Editor comme proposé par eriiic dans ce topic, en l'adaptant un peu pour que cela fonctionne comme tu le souhaites, soit, je pense, comme ceci :
    Function ConcatPlage(plage As Variant) As String
        Dim c As Range
        Dim rep As String
        For Each c In plage
            rep = rep & c.Value
        Next c
        ConcatPlage = Mid(rep, 1)
    End Function
    


    Bonne journée

    0
    1. b737_400 Messages postés 6 Statut Membre
       
      euhhh moi j'y connait pas grand chose... le code que tu me donne... il faut le mettre où?
      0
  3. santiago69 Messages postés 485 Statut Membre 209
     
    Menu Outils, Macros, Visual Basic Editor
    Dans l'editeur Visual Basic
    Menu Insertion, Module
    C'est la que tu colle le programme.
    Ensuite tu ferme l'editeur (croix en haut a droite) et tu te retrouve dans Excel.
    Tu n'as plus qu'a taper la formule
    =ConcatPlage(A2:A1342)

    0
  4. aquarelle Messages postés 7181 Date d'inscription   Statut Modérateur Dernière intervention   1 311
     
    Re,
    Cela se fait avec Visual Basic Editor, il faut la mettre dans un module regarde ce lien : http://www.commentcamarche.net/faq/sujet 8130 mise a jour d une procedure ou d une fonction en vba
    Voici un classeur exemple la contenant : https://www.cjoint.com/?empvYHyOXC
    A+
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. santiago69 Messages postés 485 Statut Membre 209
     
    Tiens je t'ai simplifie le travail.

    1) Telecharge le fichier suivant : http://santiago.news.free.fr/download/toolbox.xla
    2) Copie le dans C:\Program Files\Microsoft Office\OFFICE11\Bibliothèque
    3) Ouvre Excel
    4) Menu Outils, Macros complementaires...
    5) Bouton Parcourir
    6) Ouvre C:\Program Files\Microsoft Office\OFFICE11\Bibliothèque
    7) Bouton OK

    Tu peux maintenant utiliser =CONCATPLUS()
    Cette fonction s'utilise comme =CONCATENER() avec en plus la possibilite d'utiliser des plages.

    Exemples :
    =CONCATPLUS("bon","jour")
    =CONCATPLUS(A1,A2,A3,A4)
    =CONCATPLUS(A2:A443)
    =CONCATPLUS("texte",A1,A2:A23)

    0
    1. b737_400
       
      MERCI beaucoup pour vos réponses !!!!
      0
  7. aquarelle Messages postés 7181 Date d'inscription   Statut Modérateur Dernière intervention   1 311
     
    Bonsoir et ravie que nous ayons pu t'apporter une réponse.
    bonne nuit
    0