automatiser ma feuille de frais

friendxconnect

XLDnaute Junior
bonjour,
je souhaite automatiser cette feuille de frais en ajoutant une boite de dialogue qui s'ouvrirait avec la touche F1.
dans la box il y aurait une case pour le jour, une case pour le lieu, une case pour le ttc, 2 cases pour la tva ,
une case à cocher hotel resto, une case à cocher reception client , une case à cocher carburant, une case à cocher autoroute, une case à cocher telephone, une case à cocher divers.

une touche annule et une touche entrer.

sur pression de F1, la boite de dialogue s'affiche, je remplie les valeurs, si il n'y a qu'une tva je laisse la 2eme vide.
sur pression de enter, la première ligne vide se remplie:
date=le jour
lieu= le lieu
total ttc= le ttc
tva= la somme des 2 tva
et si la case hotel rest est cochée il faut mettre le ht dans cette colonne...

je n'arrive pas à faire la boite de dialogue

merci pour votre aide
Bruno
 

Pièces jointes

  • essai.xls
    41 KB · Affichages: 105
  • essai.xls
    41 KB · Affichages: 104
  • essai.xls
    41 KB · Affichages: 105

friendxconnect

XLDnaute Junior
Re : automatiser ma feuille de frais

Bonsoir à tous,
je viens d'essayer ta dernière mouture, ça à l'air sympa,
Encore une petite doléance, est-il possible de rajouter une macro qui supprimerait toutes les macros pour envoyer mon document sans macro une fois terminé la saisie.
Merci d'avance Bruno
 

nicho

XLDnaute Occasionnel
Re : automatiser ma feuille de frais

salut le forum
Pour que votre classeur se remet a neuf il vous faudra tout d'abord charger une référence supplémentaire dans VBE.
Sous Excel, appeller l'éditeur :
Alt F11 //Outils/Références…
Cocher l'option :
Microsoft Visual Basic for Applications Extensibility

puis coller dans un module

Code:
Sub Supprimer_toutes_macros()
Dim VBC As Object
 
With ActiveWorkbook.VBProject
    For Each VBC In .VBComponents
        If VBC.Type = 100 Then
            With VBC.CodeModule
                .DeleteLines 1, .CountOfLines
                .CodePane.Window.Close
            End With
        Else
            .VBComponents.Remove VBC
        End If
    Next VBC
End With
 
End Sub

amicalement
 
Dernière édition:

Papou-net

XLDnaute Barbatruc
Re : automatiser ma feuille de frais

Encore une petite doléance, est-il possible de rajouter une macro qui supprimerait toutes les macros pour envoyer mon document sans macro une fois terminé la saisie.
Merci d'avance Bruno

Bonsoir à tous,

Si, comme je le suppose, le but est d'exporter la feuille Note de Frais dans un nouveau classeur, pas besoin d'effacer le code. La macro suivante créé un nouveau classeur, renomme la première feuille à l'identique et y recopie le contenu de la feuille originale. Elle supprime également les feuilles inutiles. Il ne reste plus qu'à enregistrer ce nouveau classeur, sous le nom et dans le répertoire désirés.

Je te laisse tester si ça répond à ta demande :

Code:
Sub ExportNotedeFrais()
'Désactive l'affichage des messages système
'Sans celà, un message de confirmation s'afficherait avant chaque suppression de feuille
Application.DisplayAlerts = False
' Créé un nouveau classeur
 Workbooks.Add
'Copie la feuille 1 du classeur d'origine
ThisWorkbook.Sheets("Note de Frais").Cells.Copy
' Les actions suivantes portent sur la feuille active du nouveau classeur
With ActiveSheet
  .Paste 'Colle les cellules sur la feuille active
  .Name = "Note de Frais" ' Renomme cette feuille
  'La boucle suivante supprime les feuilles supplémentaires du nouveau classeur
  For sh = ActiveWorkbook.Sheets.Count To 2 Step -1
    ActiveWorkbook.Sheets(sh).Delete
  Next
End With
'Réactive l'affichage des messages système
Application.DisplayAlerts = True
End Sub
Cordialement.
 

Papou-net

XLDnaute Barbatruc
Re : automatiser ma feuille de frais

Bonsoir frienxconnect,

Rassure-toi, personne n'est doué d'Excel à sa naissance, sinon ce site n'aurait aucune utilité.

Voici donc ton fichier avec la touche F10 opérationnelle.

Bonne soirée.

Cordialement.
 

Pièces jointes

  • friendxconnect44.xls
    97.5 KB · Affichages: 52

friendxconnect

XLDnaute Junior
Re : automatiser ma feuille de frais

merci,

Code:
Code :
Sub ExportNotedeFrais()
'Désactive l'affichage des messages système
'Sans celà, un message de confirmation s'afficherait avant chaque suppression de feuille
Application.DisplayAlerts = False
' Créé un nouveau classeur
 Workbooks.Add
'Copie la feuille 1 du classeur d'origine
ThisWorkbook.Sheets("Note de Frais").Cells.Copy
' Les actions suivantes portent sur la feuille active du nouveau classeur
With ActiveSheet
  .Paste 'Colle les cellules sur la feuille active
  .Name = "Note de Frais" ' Renomme cette feuille
  'La boucle suivante supprime les feuilles supplémentaires du nouveau classeur
  For sh = ActiveWorkbook.Sheets.Count To 2 Step -1
    ActiveWorkbook.Sheets(sh).Delete
  Next
End With
'Réactive l'affichage des messages système
Application.DisplayAlerts = True
End Sub

dans ce code on ne garde que la feuil1
Je voudrais aussi garder la feuil2
 

friendxconnect

XLDnaute Junior
Re : automatiser ma feuille de frais

bonsoir Papou-net,
j'ai fait copié collé dans mon document que j'ai modifié à ma convenance, mais ça ne marche pas la fonction F10 bugg je ne vois pas pourquoi
Merci d'avance
Bruno
 

Pièces jointes

  • friendxconnect432essai.xls
    81 KB · Affichages: 64

Papou-net

XLDnaute Barbatruc
Re : automatiser ma feuille de frais

bonsoir Papou-net,
j'ai fait copié collé dans mon document que j'ai modifié à ma convenance, mais ça ne marche pas la fonction F10 bugg je ne vois pas pourquoi
Merci d'avance
Bruno

Bonsoir Bruno,

Normal que ça ne marche pas, j'ai oublié de te signaler que tu avais une inversion de caractères dans le nom de l'onglet de Feuil2 .

Tu as écrit : "Barême indemintés kilométriques". Si tu corriges ce nom d'onglet (ce que j'avais fait sur mon exemple) tu verras que tu n'auras plus d'erreur.

Cordialement.
 

friendxconnect

XLDnaute Junior
Re : automatiser ma feuille de frais

bonjour Papou-net,
je reviens vers toi car j'ai encore un petit problème sur mon document que tu m'avais aidé à améliorer.

si tu te rappelles bien,
en fin de saisie, je presse f10 pour copier les feuil1 et feuill2 dans un nouveau classeur pour ne plus avoir aucune macro dans mon classeur final.
J'ai un petite formule toute simple en bas de ma feuil1 qui contrôle que la somme des colonnes soit à 0
une fois copiée dans le classeur1 j'ai une erreur
une idée?
je mets un exemple il suffit de faire f10 et il y a l'erreur
merci d'avance bruno
 

Pièces jointes

  • friendxconnect433essai.xls
    89.5 KB · Affichages: 77

Discussions similaires