Création outil validation de facturation

Bonjour Mesdames, Messieurs,

Je suis étudiante en apprentissage dans le bâtiment. Ma formation ne m'a jamais permis de pratiquer EXCEL.

Ma mission dans mon entreprise consiste à permettre de valider plus efficacement des factures.

L'objectif est de supprimer toute saisie manuelle au profit d'une saisie informatique. Je reçois des factures sous forme d'extractions EXCEL et je dois les transférer dans la base de données de mon entreprise pour qu'il soit ensuite possible de les comparer aux anciennes factures.

Par conséquent, je dois créer un outil qui permette de sélectionner des données précises des extractions EXCEL reçue (car toutes les données ne nous intéresse pas) et de les transférer vers un autre classeur (qu'on nommera classeur A) sous forme de tableau.

Quand ces données seront dans le bon classeur, je devrais créer un mécanisme EXCEL qui me permettra de voir en un clin d’œil si ma facture est valide ou non quand je compare son montant aux montants des autres factures qui lui correspondent.

Mes idées ne m'ont encore mené à rien car je ne dispose pas des capacités nécessaire pour savoir coder sur VBA.

Par exemple, j'ai utilisé ce code : Workbooks("outils.xlsm").Worksheets("BDDengie").Range("C2:AN33").Value = Workbooks("test2.xlsx").Worksheets("Feuil1").Range("A2:AK33").Value

Il permet d'aller chercher les données d'une feuille dans un classeur A et de les exporter vers une feuille différente d'un classeur B. Je pensais que ce code allait m'aider sauf qu'il est valide pour un seul classeur à la fois et une seule feuille à la fois. J'ai besoin d'un code qui puisse s'adapter à n'importe quel nouveau classeur (que je n'ai pas à aller modifier dans le code VBA à chaque nouveau classeur).

Pourriez-vous m'aider s'il vous plait ?

P.S: J'ai regardé beaucoup de tutoriel afin de trouver une manière de faire un tableau de bord spécialisé dans la validation de facturation mais encore une fois je n'aboutis pas. Si vous avez des idées de ce côté n'hésitez pas à me les transmettre.

Je vous remercie d'avance.

Bonjour,

Ton soucis actuel si je comprends bien, c'est d'avoir un programme qui marche toujours, en clair, qu'il n'ait pas besoin de savoir à l'avance le nom du fichier dans lequel tu vas aller chercher tes données, dans ce cas, une boucle sur l'ensemble des classeurs ouverts avec vérification du nom du fichier pourrait t'aider.

Tu peux tester par exemple que tes fichiers commencent par test, ce qui ressemblerait à

If Workbook.name like "test*" Then

Donc tu ferais quelque chose comme ça:

Sub test
For each wkb in Excel.Workbooks
    If wkb.name like "test*" then
        msgbox(wkb.name & " commence par test.")
    end If
Next wkb
End Sub

Quand tu auras fais ça tu n'auras aucun mal à ensuite faire le reste de ton programme.

Merci beaucoup pour votre aide ! Je ne manque pas de vous dire si cela fonctionne avec mon outil !

Cordialement,

Lucie .

De rien et pas besoin de me vouvoyer, pas de ça entre apprentis

Bonne journée

Haha d'accord merci !

Je reviens vers toi rapidement: quand j'exécute ton code, une fenêtre apparaît et me dit "Erreur de compilation - Instruction incorrecte à l'extérieure d'une procédure" et il semble m'indiquer que c'est le code "workbook" dans "If Workbook.Name Like "test*" Then" qui ne fonctionnerait pas. Qu'est-ce que ça signifie ? Que puis-je rajouter ou modifier pour que ça marche ?

Je m'excuse si cela te dérange et merci d'avance !

Cordialement,

Lucie BRETON.

Rebonjour,

Si tu fais la boucle :

Sub test
For each wkb in Excel.Workbooks
    If wkb.name like "test*" then
        msgbox(wkb.name & " commence par test.")
    end If
Next wkb
End Sub

Il ne faut pas utiliser Workbook.name mais wkb.name, si ça ne marche pas alors il faut que tu ajoutes l'onglet développeur, et dans cet onglet cliques sur sécurité des macros et coche la case "Accès approuvé au modèle d'objet du projet VBA".

Merci pour ce retour rapide

J'avais testé chez moi ça semblait marcher, donc j'espère que ça marchera pour toi...

Je viens de changer par wbk.name et de faire les modifications dans l'onglet développeur mais la fenêtre "erreur de compilation" apparaît encore

Je n'ai vraiment aucune connaissance en EXCEL alors je ne sais pas quelle manipulation utiliser pour régler le problème haha

Ah c'est étrange ça...

Il y aurait moyen de transférer un fichier pour que je puisse voir si ça fonctionne chez moi?

Bien sur ! Voici mon fichier et merci beaucoup de prendre autant de temps pour mon problème !

10outils.xlsm (65.76 Ko)

Bonjour,

J'ai trouvé d'où venait le problème grâce au fichier que tu m'as transmis, il y a un IF qui se trouve en dehors d'une procédure, c'est d'ailleurs ce qu'indique le message d'erreur lorsque tu tentes de lancer ton programme, ce genre d'instruction doit se trouve entre un Sub et un End Sub, c'est pour cela que ton programme ne veut pas se lancer.

Voici le fichier en retour sans la ligne qui gêne le lancement du programme :

Attention à ouvrir tous tes fichiers dans la même fenêtre Excel, si tu ouvres deux fichiers dans deux applications Excel, ça ne fonctionnera pas.

Merci beaucoup !

Tu me sauves la mise !

Le code fonctionne mais je ne sais pas ou il envoie mes données haha !

Bonjour,

Le code suivant n'envoie pas tes données, il affiche juste les noms des fichiers ouverts dans la même application de ton classeur, dont le nom commence par test, c'est une base de travail pour toi, comme je n'avais pas plus d'infos, c'est tout ce que j'ai pu te fournir, tu as une boucle pour parcourir tous les classeurs ouverts dans la même application, et un moyen de tester leur nom

Rechercher des sujets similaires à "creation outil validation facturation"