VBA cracker, les problèmes commencent

Bonsoir le forum,

Je viens vers vous en ce début de printemps, car je suis tombé dans un trou noir,

Voilà quelques temps un gentil Bio-informaticien nous a bidouiller un jolie tableau excel qui va récupérer des relevés de température dans un logiciel de traçabilité.

Le gentil Bio-informaticien est maintenant partie vers des cieux plus bleu, nous laissant un jolie système de fichier excel complètement verrouiller.

Heureusement les richesses du web m'ont permis de casser le mdp vba et d'accéder au code....

Et c'est la que je vais avoir besoin d'aide,

Si j'ai bien compris il y a deux fichier dans son montage :

Un fichier xlam qui contient le code

et un fichier " fille". xlsm qui récupère les données, dessine les graphes etc......

Mais le code pressente un problème que je n'arrive pas à résoudre, ( mais peut etres qu'avec vos idées....)

Lors de l'import des données dans le fichier "fille", les données (les dates ) se collent directement les une derrières les autres sans vérifier si les données ont déjà été importées. Dans une utilisation idéale on devrait pas avoir besoin de réimporter les données mais le principe de réalité...nous rattrape toujours.

Donc j'aimerai ajouter dans le code une notion de vérification de date pour que le collages des données commence à la "date de dernière mise à jour" définie sur l'onglet Accueil du fichier "fille" "Modele extraction".

Pour des raisons d'import j ai du modifier l'extension de"macro derives oceasoft" en xlsm, alors que l’extension initiale est bien xlam

Bien que le code soit relativement bien détaillé je n'ai pas encore trouver comment et ou resoudre mon probleme

PS : par défaut les données importées proviennent du mardi de chaque semaine

je tourne autour depuis quelques semaines et je commence à déprimer sérieusement, donc si vous avez des idées pour réaliser ceci?, je suis preneur !

Et merci à ceux qui auront lu le post jusque là et je reste à votre entière disposition si mes explications doivent être précisées

Edit : Nouveau fichier source plus bas a la demande d'eriic

et ci joint le fichier fille

Bonjour,

aie, ça commence mal !

2018 03 22 00 27 54

Peux-contrôler que IsAddin de ton ex .xlam est bien à False ? Sinon le mettre et reposter le fichier. Et fait Enregistrer sous... *.xlsm, sans renommer juste l'extension

Passer une semaine dessus crée de l'intimité. Si tu pouvais préciser la macro en cause et son module stp

eric

bonsoir eriic,

je suis heureux que tu te penches sur mon cas

je dirais module traitement des données

c'est mieux ainsi ?

message en doublon oup's

Pour êtres plus précis je penses que c'est ici qu'il faut ajouter le contrôle des dates pour sélectionner la cellule ou les données doivent êtres collées,

'MsgBox (NomFeuille)
                    'pour chaque sonde, on peut chercher les données
                    'on cherche le point de départ pour écrire les données
                    Sheets(NomFeuille).Select

                    Sheets(NomFeuille).Unprotect Password:=qwerty

                   col_deb = 1
                    While (Sheets(NomFeuille).Cells(9, col_deb).Value <> "")
                        col_deb = col_deb + 1
                    Wend
                  'MsgBox (col_deb)

                    For dat = 0 To (nb_dates - 1)

                        Sheets(NomFeuille).Cells(9, col_deb + dat).NumberFormat = "@"
                         Sheets(NomFeuille).Cells(9, col_deb + dat).Value = liste_dates(dat)
                         Sheets(NomFeuille).Cells(13, col_deb + dat).Value = Sheets("Accueil").Cells(ind_ligne - 1, 3).Value
                         Sheets(NomFeuille).Cells(11, col_deb + dat).Value = Sheets("Accueil").Cells(ind_ligne - 1, 4).Value

                         Sheets(NomFeuille).Cells(10, col_deb + dat).Value = "S" & DatePart("ww", liste_dates(dat))
                         

Par défaut il cherche ( si j'ai bien compris ) la première cellule vide de la ligne 9, alors que j'aimerai retrouver la premiere cellule dont la date est égale ou supérieure à la date de dernière mise à jour

Alors évidement je trimme plusieurs semaines sur probleme dont je ne trouve pas la solution et moin de 24h apres avoir poster je trouve la solution

du coup dans le code je remplace

        col_deb = 1
                    While (Sheets(NomFeuille).Cells(9, col_deb).Value <> "")
                        col_deb = col_deb + 1
                    Wend
                  'MsgBox (col_deb)

Par

        col_deb = 2
                    While (Sheets(NomFeuille).Cells(9, col_deb).Value <> "")
       If (Sheets("Accueil").Cells(6, 2).Value) >= (Cells(9,col_deb).Value) Then
                    col_deb = col_deb + 1
                    Else
                        col_deb = col_deb
                        GoTo Suite
                    End If
                    Wend
                    'MsgBox (col_deb)
Suite:

Par contre si quelqu'un sais comment sortir de la boucle While je suis preneur car ma méthode est je penses loin d'être orthodoxe....

Bonjour,

Bon, tant mieux, voilà ce que je m’apprêtais à te répondre :

j'ai jeté un oeil.

La date en B6 est bien prise en compte dans plusieurs endroits. Est-ce le résultat de tes tentatives ?

Parce que sinon ça brouille les pistes et on ne sait pas ce qui est actif ou non, valide ou non.

Si c'est le cas peux-tu mettre le fichier original, expurgé de tes modifs.

Donc à regarder, les dates semblent prises en compte après la dernière récup.

Le soucis c'est qu'on ne peut rien tester en réel vu qu'il faut une connexion à une base à laquelle on n'a pas accès. On ne peut qu'imaginer...

Pas sûr que ton col_deb = col_deb serve à grand chose

eric

Bonsoir eriiic,

Est-ce le résultat de tes tentatives ?

Hé non, c'est le code original

Pas sûr que ton col_deb = col_deb serve à grand chose

Bah ... je suis pas fier mais j'ai pas trouvé mieux

Le soucis c'est qu'on ne peut rien tester en réel vu qu'il faut une connexion à une base à laquelle on n'a pas accès. On ne peut qu'imaginer...

heureusement je manque pas d'inspiration

Franchement, tu ferais comment pour valider la valeur de col_deb dans la boucle While ( que j'utilise pour la première fois )

Et j'ai pas compris comment on sortait proprement de la boucle, du coup ce goto doit être un affront pour l’œil d'un programmateur aguerri

Et encore merci,

Rechercher des sujets similaires à "vba cracker problemes commencent"