[Excel] extraction de données

Tibal Messages postés 3 Statut Membre -  
gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,

je suis en train d'exploiter un tableau excel assez grand (environ 10000 lignes) et que je devrai faire souvent, il me faut donc automatiser mes extractions de données.

ce tableau provient d'un document pdf exporté en txt puis importé sous excel.
les données sont donc un peu dispersées.

Les données correspondent a des ingrédient introduits dans une pate.
Sur un ingrédient on peut avoir différents lots dans une meme pate
or la valeur qui m'intéresse est la somme sur tous les lots pour 1 pate. (sachant que j'ai un nombre inconnu de pate dans mon tableau et que le nombre de lot par pate est variable.)

Voila comment se présente ma colonne de valeur :

dsdv
dvd

vdv

21
54
564
24
45
214
cdcdscdc

dsfs

dsf

54
54
54
21
54
647
78
1323
.......................;;;

les caractères étant des chaines de texte placées un peu aléatoirement.

je voudrai sommer les nombres consécutifs et qu'il m'affiche dans une autre colonne la somme obtenue a chaque fois.

Si quelqu'un a des idées, sachant que je suis totalement novice en VBA.

Merci d'avance

ps 1 : la fonction NB() de Excel qui renvoie 1 si c'est un chiffre et 0 sinon pourrait etre utile

ps 2 : si c'est pas clair n'hésitez pas à demander des explications.

6 réponses

  1. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    C'est sympa d'avoir un message comme çà !

    Le plaisir est aussi pour moi d'avoir partagé avec toi.

    à bientôt peut-être pour un nouvel échange.

    1
  2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    est-ce ainsi que tu veux le résultat ?

    j'ai mis "<=>" entre les colonnes pour visualiser.

    dsdv <=> 0
    1dvd <=> 0
    <=> 0
    <=> 0
    vdv <=> 0
    <=> 0
    <=> 0
    21 <=> 21
    54 <=> 75
    564 <=> 639
    24 <=> 663
    45 <=> 708
    214 <=> 922
    cdcdscdc <=> 922
    <=> 922
    <=> 922
    dsfs <=> 922
    <=> 922
    <=> 922
    dsf <=> 922
    <=> 922
    54 <=> 976
    54 <=> 1030
    54 <=> 1084
    21 <=> 1105
    54 <=> 1159
    647 <=> 1806
    78 <=> 1884
    1323 <=> 3207
    0
  3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    ou bien ceci :

    dsdv <=> 0
    1dvd <=> 0
    <=> 0
    <=> 0
    vdv <=> 0
    <=> 0
    <=> 0
    21 <=> 21
    54 <=> 75
    564 <=> 639
    24 <=> 663
    45 <=> 708
    214 <=> 922
    cdcdscdc <=> 0
    <=> 0
    <=> 0
    dsfs <=> 0
    <=> 0
    <=> 0
    dsf <=> 0
    <=> 0
    54 <=> 54
    54 <=> 108
    54 <=> 162
    21 <=> 183
    54 <=> 237
    647 <=> 884
    78 <=> 962
    1323 <=> 2285
    0
  4. Tibal Messages postés 3 Statut Membre
     
    Bonjour

    en fait c'est la deuxième proposition dont j'ai besoin, je saurai me débrouiller après je pense.

    Sinon l'idéal serait de mettre des 0 partout sauf à la dernière somme de chaque série.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    bonjour

    voici le tableau avec la formule qui est à recopier sur toutes les lignes (Ctrl + B avec sélection colonne).

    elle suppose qu'il y a une ligne titre et commence en ligne 2.

    (désolé pour la présentation, mais la suppression des espaces est pénalisante.)

    col A col B
    _______ | _____ |
    données | calcul | formule
    dsdv | 0 | =SI(ESTERREUR(CNUM(A2));0;CNUM(A2)+B1)
    dvd | 0 |
    | 0 |
    | 0 |
    vdv | 0 |
    | 0 |
    | 0 |
    21 | 21 |
    54 | 75 |
    564 | 639 |
    24 | 663 |
    45 | 708 |
    214 | 922 |
    cdcdscdc | 0 |
    | 0 |
    | 0 |
    dsfs | 0 |
    | 0 |
    | 0 |
    dsf | 0 |
    | 0 |
    54 | 54 |
    54 | 108 |
    54 | 162 |
    21 | 183 |
    54 | 237 |
    647 | 884 |
    78 | 962 |
    1323 | 2285 |

    Pour n'avoir que la dernière somme, il faut une troisième colonne
    avec la formule en ligne 2 à recopier jusqu'en bas:

    =SI(ESTERREUR(CNUM(A3));CNUM(B2);"")

    bon courage si c'est ce que tu voulais.
    0
  7. Tibal Messages postés 3 Statut Membre
     
    Je t'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaime!!!

    c'est exactement ce qu'il me fallait et pas besoin d'aller sur VBA en plus

    un très très grand merci, ca me sauve la vie!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    Tibal
    0