Echec des formules, je me tourne vers les macros

Bonjour,

Je fais une thèse en géologie et je dois gérer une base de données a plus de 800 entrées, pour cela, j'ai le tableau que je vous joint dans la suite, et je dois remplir la colonne N° de mesure (E) de la façon suivante :

Si dans la colonne M il y a "SL", alors la colonne E doit contenir "Scanline Strike 1", puis 2, puis 3, a chaque SL on ajoute +1.

Si dans la colonne M il y a "JN", alors la colonne E doit contenir "Bedding 1", puis 2 etc...

Si dans M il n'y a ni JN ni SL, il faut chercher la celule précédante ou il n'y avait ni JN ni SL dans M, et si D est égal à la cellule actuelle, M+1, sinon, on repars à 1.

Plus clairement, pour chaque arrêt (colonne D) je veux que mes données soit nommées 1, 2, 3, 4, ...

Lorsque j'ai une donnée de type SL ou JN, faire une numérotation qui ne soit pas dépendante de l'arrêt

Et lorsque j'ai passé SL ou JN, continuer les mesures...

Je joint donc l'exemple de ce dont j'ai besoin, j'ai vraiment besoin d'aide et ça fait tellement longtemps que je n'ai pas touché au code que je ne sais plus du tout comment faire...

L'exemple est en deux parties : en haut le type de données, en bas, ce que je veux obtenir. Ici je l'ai fait sur 40 pour montrer, mais j'ai plus de 700 données...

Merci milles fois pour votre aide précieuse!

Aquhydro

9exemple.xlsx (23.59 Ko)

Bonjour le forum,

BA48 :

=D48&M48

E48 :

=SI(BA48="Car2";NB.SI($BA$48:BA48;"Car2");"")&SI(BA48="Bol1";NB.SI($BA$48:BA48;"Bol1");"")&SI(M48="JN";"Bedding "&NB.SI($M$2:M2;M2);SI(M48="SL";"Scanline Srike "&NB.SI($M$2:M2;M2);""))

Bonjour à tous

Version macro. A tester

Bye !

8exemple-v1.xlsm (49.09 Ko)

Colonne F : résultats attendus.

nb si

Bonjour,

Merci beaucoup gmb, pour ce qui est des beddings et des scanlines ça marche bien, par contre, pour ce qui est des numéros de fractures ça ne fonctionne pas. C'est peut être parce que Bol1, etc... étaient des exemples, il y a des 97 arrêts différentes en réalité il est donc compliqué de mettre en place un code qui prendrait en compte les noms que j'ai mis dans l'exemple... (j'ai théoriquement pas le droit de donner les vrais noms)...

Merci beaucoup encore...

Aquhydro a écrit :

pour ce qui est des numéros de fractures ça ne fonctionne pas.

La macro donne pourtant le même résultat que ton exemple.

J’ai dû zapper quelque chose.

Peux-tu donner un autre exemple où le résultat qu’elle donne n’est pas celui attendu ?

Bye !

Bien sur, voilà l'exemple, merci encore!

6exemplev1-1.xlsm (51.93 Ko)

Pardon d'avoir perturbé ta discussion.

Bon après-midi.

Mbbp, excuse moi du manque de réaction, je suis en plein décalage horraire, j'ai pas vraiment les yeux en face des trous. Ta proposition fonctionne pour mon exemple mais pas au delà et je ne peu pas l'utiliser car j'ai 97 arrêts différents pour 790 mesures de fractures donc c'est complexe a faire avec une formule de ce type, mais merci beaucoup d'avoir proposé. encore une fois excuse mon inattention, je comptais te répondre et j'ai testé la proposition de gmb, et j'ai oublié.

A+

Nouvel essai à tester.

Bye !

10exemplev2.xlsm (55.96 Ko)

Merci beaucoup ça marche parfaitement je vais signaler le sujet comme résolu merci beaucoup!

Et merci à vous deux pour l'attention aussi

En ajoutant :

=.....................SI(BA48="A";NB.SI($BA$48:BA48;"A");"")&SI(BA48="B";NB.SI($BA$48:BA48;"B");"")&SI(BA48="C";NB.SI($BA$48:BA48;"C");"")&SI(BA48="D";NB.SI($BA$48:BA48;"D");"").........................

quelques centaines de fois.

Mais, évidemment, cela n'est pas très pratique !

Rechercher des sujets similaires à "echec formules tourne macros"