Lister sans doublons les infos recueillies dans 559 feuilles

Bonjour,

Je suis débutante en VBA et j'ai fait plusieurs recherches pour écrire ce code mais il ne fonctionne pas.

Je souhaite obtenir une ligne contenant des dates situées dans des feuilles à partir de la ligne 23 (certaines feuilles ont une seule date -> ligne 23, d'autres en ont 6 ou plus (je n'ai pas regardé toutes les feuilles). Je ferai ensuite un autre code pour remplir le tableau avec les valeurs des "altitude du repère".

Je ne sais pas pourquoi j'obtiens toutes les valeurs de la colonne 1 alors que je ne souhaite récupérer que les valeurs contenues dans les cellules situées 2 lignes plus haut que celles où 'Altitude du repère" est mentionné. Et l'action ne s'effectue que pour 1 feuille.

Voici quelques feuilles en exemple et le code que j'ai utilisé.

25rc-exemple.xlsx (22.10 Ko)

Pourriez-vous m'aider, me donner quelques conseils ou commentaires?

Je vous remercie d'avance.

Sub creation_tableau()

'déclaration des variables

Dim ligne As Integer
Dim n As Integer
Dim valeur_cherchee As Variant

'Boucle sur toutes les feuilles
For n = 1 To 559

compteur = 8
        'recherche sur toutes les lignes de la feuille
        For ligne = 23 To 200

       'si dans la cellule il y a "Altitude du repère ** :" alors 2 lignes plus haut, récupérer le contenu de la cellule (= date)
       If ThisWorkbook.Worksheets(n).Cells(ligne, 1).Value = "Altitude du repère **  :" Then

           'vérifier que la date n'est pas déja saisie

           Set valeur_cherchee = Sheets("Repere_crues").Cells(1).Find(ThisWorkbook.Worksheets(n).Cells(ligne - 2, 1).Value)
           'si une correspondance est trouvée, annuler l'action
           If Not valeur_cherchee Is Nothing Then
           End If

           'sinon enregistrer la valeur dans la cellule
           Else
           compteur = compteur + 1
           Sheets("Repere_crues").Cells(1, compteur) = ThisWorkbook.Worksheets(n).Cells(ligne - 2, 1)

        End If

        Next ligne

Next n

End Sub

Bonjour Jiji971 le forum

ton fichier en retour, tu l'ouvres tu cliques sur le bouton traiter et tu auras tes dates sans doublons dans la feuille repere_crues

en colonne A car comme je ne savais pas ou les mettre???

Par contre pour traiter 500 feuilles là il faudrait passer par des tableaux ce serait beaucoup plus rapide, mais ne sachant pas si le résulta te convient vérifie et redis moi

a+

Papou


Re Jiji971 le forum

une version 2 avec le niveau je ne sais plus quoi enfin bref ouvres cliques sur le bouton traiter et tu me redis

a+

Papou

24jiji971-v1.xlsm (37.39 Ko)
29jiji971-v2.xlsm (39.09 Ko)

Bonsoir,

Merci Paritec !

Ce que je souhaite obtenir c'est les dates sur une même ligne comme dans ce fichier-ci.

En fait chaque ligne correspond à un emplacement où un (ou plusieurs) repères de crue ont été mesurés.

Mon objectif est de remplir le tableau en précisant pour chaque ligne les altitudes des repères de crues en fonction des dates : Mai 1983, février 1958, ...

29rc-exemple.xlsx (56.01 Ko)

Bonjour Jiji971 le forum

je ne sais pas dans quoi tu travailles mais une certitude tu es une avare de renseignements, je suppose que pour trouver la ligne on met les hauteurs sur la ligne qui correspond au site qui lui est le n°RC dans la feuille ????? Repère_Crues ?????

mais bon c'est peut-être un secret c'est pour cela que tu n'expliques pas ???

a te relire

a+

Papou

Oui c'est bien ça, le numéro RC (repère de crue) est le numéro de chaque fiche de repère de crue (une fiche étant une feuille).

J'ai d'abord importé les fiches d'internet et maintenant je veux extraire les informations. C'est pour savoir à quel endroit les mesures ont été faites, et pour les refaire si nécessaire et dans un second temps caler un modèle hydraulique en utilisant les informations pour différentes crues donc différentes dates.

Donc une feuille correspond à une ligne dans le tableau et le n°RC fait le lien entre la feuille et la ligne.

J'espère avoir été claire cette fois-ci.

Merci pour ta patience

Re Jiji971 le forum

bon alors ton fichier en retour tu ouvres tu cliques tu regardes et tu me redis

a+

Papou

36jiji971-v3.xlsm (102.68 Ko)

Bonjour,

Les dates sont présentes plusieurs fois.

Je suis vraiment débutante et je n'arrive pas à voir ce que je dois modifier pour appliquer le code aux 552 feuilles de mon fichier complet.

Est ce que le " For Each sh In Worksheets" permet d'appliquer à toutes les feuilles même si je ne les nomme pas ?

Re jiji971 le forum

bon alors il n'y avait pas de doublon de date mais comme tes dates sont écrites avec tantôt des espaces devant tantôt des espaces derrière, bah pour excel "Mai 1983" ou "Mai 1983 " ou " Mai 1983" bah c'est pas pareil

je n'avais pas vérifié cela c'est choses faites et j'ai traité les différentes écritures

voilà qui ne donnera plus de faux doublon

pour for each sh in worksheets oui c'est pour toutes les feuilles sauf la feuille Repere_Crues tu as une condition en dessous

Mais ne te pose pas de question tu prends la Feuil1 de ce fichier avec la macro dans la module Jiji971 et cela marche pour les 559 feuilles A CONDITION que la feuille Récup s'appelle bien Feuil1 dans le vba

a+

papou

17jiji971-v4.xlsm (102.63 Ko)

Re Jiji971 le forum

bon voilà le fichier avec la macro modifiée, la seule condition maintenant est d'avoir une feuille qui s'appelle "Repere_crues" et orthographiée de la sorte

a+

papou

44jiji971-v5.xlsm (102.87 Ko)

Merci beaucoup ça fonctionne !!

Rechercher des sujets similaires à "lister doublons infos recueillies 559 feuilles"