Automatiser fiche

Bonjour le forum,

Dans le cadre de mon travail, il me créer des fiches d'inventaire journalière de nos véhicules de travail et afin d'éviter d'archiver du papier j'aimerai les automatiser.

J'ai tenté une présentation, mais j'aimerai avoir quelques conseils de vous les pro d'excel, svp.

Pour le moment les listes de matériels dans les coffres sont bonne mais peuvent-être modifier à tout moment (ajout, suppression) donc peut-être avoir un principe de liste ajustable.

Mon objectif est de renseigner cette fiche journalièrement puis de l'archiver (je pense au copier coller sur nouveau onglet) ou autre si vous avez une meilleur idée, afin de pouvoir effectuer une recherche ultérieurement.

Je n'arrive pas à définir exactement un fonctionnement simple mais efficace.

La présentation peut-être modifier sans soucis.

Merci à vous pour vos conseils et l'aide.

pompaero

Bonjour,

Moi quand je vois une collection de boite à coche comme ça j'ai tout de suite le réflexe : "oulala... !"

Je te met une autre possibilité que je préfère car aucun objet...

Après pour l'archivage je préconise plutot un SaveCopyAs ....jpg ! dans un répertoire dédié : ça élimine la macro désormais inutile et ça évite d'alourdir le classeur pour pas grand chose.

Nota : j'ai juste rajouté une cellule rouge pour réinitialiser tous les jours...

...Mais j'ai préféré mettre un coche collectif par groupe : Si on met juste un coche en haut de feuille je trouve que ça enlève de la crédibilité au Check-up... Mébon tu fais bien comme tu veux : C'est juste l'idée qu'il faut garder.

A+

Bonjour galopin, le forum,

On reconnait les pros

Je viens de regarder ta proposition qui à l'air efficace et simple, tout ce que j'aimerai. Le soucis est que je ne comprend pas tout dans tes macro , en particulier les Chr(168) chr(254).

Comment fais-tu les coches ? j'ai bien vu que la police est du Wingdings.

Est il possible d'ajouter ou supprimer des coches ?

La coche par groupe, très bonne idée.

Pour l'archivage tu parle de SaveCopyAs...jpg, connais pas du tout !! j'imagine que c'est de l'image ? car ensuite il faut pouvoir rechercher une fiche une date précise, si besoin.

Grand merci toi

Cdlt

pompaero

Les plages de coches sont déclarées dans le Gestionnaire de nom

De GROUP1 à GROUP10

GROUP6 par exemple couvre les coches de =Feuil3!$AG$38:$AG$42 si tu désires en rajouter tu peux très bien modifier la plage pour aller de =Feuil3!$AG$38:$AG$50 par exemple.

On peut ainsi couvrir n'importe quelle zone de la feuille...

La cellule est coché par sélection au moyen d'une macro évènementielle Worksheet_SelectionChange

qui inscrit dans la cellule le

Chr 254(þ) ou 168 (¨)

...Ce qui correspond respectivement à "boite vide" et "boite cochée"

On peut aussi le visualiser dans la fenêtre d'éxécution VBA au moyen de la commande debug.print Chr(254) ou ?Chr(254)

fenexe

Faut que j'arrête de fumer n'importe quoi ! SaveCopyAs (.jpg) n'existe pas encore... Il s'agit en réalité de créer un enregistrement en .pdf ce qui est l'équivalent en VBA de la commande Enregistrer Sous... (.pdf)

Il faudra auparavant définir la zone d'impression à A1:AH69 (ajuster les marges) :

Il faudra enregistrer la macro pour avoir la syntaxe exacte pour ton chemin de fichier. Chez moi ça donne quelque chose comme :

Sub SaveAsPDF()
Dim FileN$
FileN = Format(Year(Date), "00") & Format(Month(Date), "00") & Format(Day(Date), "00") & ".pdf"
    ChDir "TonCheminEnregistré"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "D:\Documents\_EXC\Contrib\Fiche inventaire essai " & FileN, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
End Sub

Moyennant quoi tu auras un fichier pdf daté au format :

Fiche inventaire essai 20180814.pdf

Enfin bon... tu y feras bien à ton gout...

Ok ?

Bonjour galopin01,

tu as écrit :

screen

ah bon ! tu veux dire ça, alors : ☐ et ☑ ; traduits en caractères Unicode, c'est ceux de code 2610 et 2611.

comme tu peux le voir, ceux-là passent très bien dans la fenêtre d'édition d'un post !

dhany

Bonjour galopin

Merci pour les explications, génial.

Pour le jpg, pas grave, c'est pour cela que ça ne me parlais pas, lol. par contre le pdf, oui je connais. Je vais regarder à tout cela tranquillement et essayer de mettre tout cela en application sur mon fichier original.

Encore grand merci

A+

Cdlt

pompaero

Bonjour pompaero, le forum,

tu a écrit :

jpg, connais pas du tout !! j'imagine que c'est de l'image ?

oui, exactement c'est un format d'images, qui est compressé avec une méthode particulière pour générer des fichiers moins volumineux : taille plus réduite ➯ ça prend moins de place sur le disque dur du PC, et c'est plus rapide à envoyer/recevoir par mail.

l'extension peut être .jpg ou aussi .jpeg ; et c'est le sigle pour « Joint Photographic Experts Group » ; plus d'infos

ici : https://fr.wikipedia.org/wiki/JPEG et là : https://www.gralon.net/articles/photo-et-video/photo-et-video/article-le-format-jpeg---presentation-et-caracteristiques-1124.htm


note : mon précédent post à galopin01 était aussi pour toi, pour que tu vois les codes Unicode des caractères ☐ et ☑ : 2610 et 2611

dhany

Bonjour

voila une macro pour faire un PDF au Format A4

A toi de voir

A+

Maurice

Bonjour dhany archer, le fil, le forum,

dahny, merci pour les explications, je vais jeter un oeil.

archer, merci de la proposition, ça a l'aire interressant.

Merci à vous

Cdlt

pompaero

Bonjour le fil, le forum,

Merci à galopin, dhany, archer, pour votre aide. vos conseils m'on été utile.

Galopin, j'ai mis en place tes propositions concernant les fiches inventaire en créant un petit tableau de bord qui regroupe mes fiches, cela l'air de fonctionner, mais j'aimerai si possible, avoir un message d'alerte en début du code SaveAsPDF, si certaine cellules ne sont pas renseignées, est ce possible ? Ca concerne les cellules "C5; C7, C9, D12:D14, H12" renseigner obligatoirement (avec signe *).

Voici mon code SaveAsPDF adapté.

Sub SaveAsPDF() 'Enregistrement fiche en pdf
Dim FileN$
FileN = Format(Year(Date), "00") & Format(Month(Date), "00") & Format(Day(Date), "00") & ".pdf"
    ChDir "C:\Users\F Leroy\Desktop\ADMINISTRATIF France\Document originale NE PAS TOUCHER\Fiche Vérif véhicule"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\F Leroy\Desktop\ADMINISTRATIF France\DOCUMENTS ENREGISTRES\Vérif véhicule\VPA\FVPA " & FileN, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
  MsgBox "Fiche VPA enregistrée en PDF", vbInformation, "Enregistrement en PDF"
  Reinitialise
End Sub

Le principe de classement des dossiers est le suivant :

Dossier principal --> Administratif France

1er sous-dossier --> Document original Ne Pas Toucher

2e sous-dossier --> Vérif véhicule (dedans le classeur Fiche vérif véhicule)

et ensuite pour l'enregistrement "SaveAs PDF"

Dossier principal --> Administratif France

1er sous-dossier --> Documents enregistrés

2e sous-dossier --> Vérif véhicule (dedans un dossier par véhicule)

3e sous-dossier --> Sécu 2 (la, arrive les pdf du sécu 2)

3e sous-dossier --> Sécu 3 (la, arrive les pdf du sécu 3)

3e sous-dossier --> VPA (la, arrive les pdf du VPA)

J'espère avoir fait correctement l'adaptation des codes !! lol. Je joins mon classeur pour mieux se rendre compte.

Cordialement

pompaero

Bonjour,

Hum... Oui c'est possible. Il reste que c'était déjà un truc un peu tiré par les cheveux.

Ça sera complètement ouf... Mébon tu peux toujours écrire une fonction plus ou moins complexe qui vérifie que chaque cellule est correctement remplie et qui donne le OK à l'impression si les 6 conditions sont remplies.

Bon ceci dit c'est pas moi qui t'écrirai ce code complet parce que je déteste ce genre de trucs capillo-tractés.

Voici une fonction très minimaliste qui vérifie que chaque cellule est bien remplie et qui donne le "Ok" si c'est bon.

Private Function YSaisieOk() As Boolean
Dim Y, Y1, Y2, Y3, Y4, Y5, Y6 'Les variables sont définies As Boolean en tête du module par :
'DefBool Y (placé juste après Option Explicit)
Y1 = [C5] <> ""
Y2 = [C7] <> ""
Y3 = [C9] <> ""
Y4 = [D12] <> ""
Y5 = [D14] <> ""
Y6 = [H12] <> ""
Y = Y1 & Y2 & Y3 & Y4 & Y5 & Y6
 YSaisieOk = Y
End Function

Après tu peux encore faire 2 pages de code pour expliquer au gens qu'il doivent remplir telle ou telle cellule. Bon c'est là que moi je trouve que c'est une perte de temps : A mon avis une bordée d'insulte est bien suffisante pour faire comprendre aux intéressés qu'il doivent faire plus attention... Mébon à toi de voir...

Après dans ta sub SaveAsPDF tu écris :

Sub SaveAsPDF()
Dim FileN$
If YSaisieOk then
FileN = Format(Year(Date), "00") & Format(Month(Date), "00") & Format(Day(Date), "00") & ".pdf"
    ChDir "C:\Users\F Leroy\Desktop\ADMINISTRATIF France\Document originale NE PAS TOUCHER\Fiche Vérif véhicule"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "C:\Users\F Leroy\Desktop\ADMINISTRATIF France\DOCUMENTS ENREGISTRES\Vérif véhicule\VPA\FVPA " & FileN, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
  MsgBox "Fiche VPA enregistrée en PDF", vbInformation, "Enregistrement en PDF"
  Reinitialise
Else
Msgbox "Faites plus attention !
End if
End sub

A+

NOTA : Pourquoi je trouve que c'est un truc de ouf... "capillo-tracté"

Parce que je trouve que je genre de feuille n'a pas lieu d'être. Quand on sait se servir un minimum de VBA on ne se sert pas d'une feuille pour faire du contrôle de saisie.

L'interface normale de la feuille à remplir c'est le Userform. Quoi qu'en dises certain détracteur que je ne dénoncerai pas... Tu disposes avec les usf d'instruments de contrôle et de programmation qui te dispenseraient de créer des plages bidon pour cocher des cellules avec des prog à rallonges. Idem pour les contrôles de saisies obligatoires

En USF il suffit de 3 lignes (quel que soit le nombre de contrôles) pour faire un contrôle de saisie qui renvoie l'utilisateur sur la première saisie défectueuse. Sur une worksheet il te faut 1000 lignes de code à c... pour obtenir le même résultat en version Apocalypse Now !

Alors évidement ça m'irrite un peu.

Bon ceci dit je dis ça j'ai rien dit... laisse béton ! C'est encore les vacances et j'ai un pastis à sauver du réchauffement climatique :

A+

Re

Après réflexion, tu a raison, une bordée d'insulte fera l'affaire, mais je garde ta proposition sous le coude tout de même, au cas ou !! .

Je pense être arrivé au bout du projet qui me semble fonctionnel, je vais donc clôturer le post en te remerciant encore.

A bientot.

pompaero

Je me doute bien qu'avec USF les posibilités doivent être plus importantes, pour cela il faut maitriser parfaitement le codage et ça ce n'est pas mon fort.

Mais pourquoi ce pencher la dessus afin d'améliorer mon classeur.

Sur ce, bonne fin de vacances et prend pas trop de risques pour le sauvetage du pastis

A+

Tu inscris quoi dans les cellules "horomètre" un entier Integer ? Long ? un Décimal ?

Bonjour galopin,

Horametre, je crois Integer (se sont des heures avec chifrre rond comme : 125, 126, 128, ect...) pourquoi ?

Cdlt

Bonjour Galopin,

Excuse de revenir sur ce post, j'aimerai savoir s'il y est possible d'adapter le code enregistrement en PDF de m'anière à ne pas écrasser l'enregistrement précédent ?

J'explique, pour la fiche Hebdomadaire, celle-ci est identique pour tous les véhicules, donc il nous faut enregistrer une fiche par véhicule.

Par ex :

FHebdo 20180822-1

FHebdo 20180822-2

Sub SaveAsPDF() 'Enregistrement fiche en pdf
Dim FileN$
FileN = Format(Year(Date), "00") & Format(Month(Date), "00") & Format(Day(Date), "00") & ".pdf"
    ChDir "T:\AEROPORT\SSLIA\ADMINISTRATIF France\Document originale NE PAS TOUCHER\Fiche Vérif vim"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
        "T:\AEROPORT\SSLIA\ADMINISTRATIF France\DOCUMENTS ENREGISTRE\Vérif véhicule\Hebdomadaire\FHebdo  " & FileN, Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=False
  MsgBox "Fiche Hebdomadaire enregistrée en PDF", vbInformation, "Enregistrement en PDF"
  Reinitialise
End Sub

Merci

pompaero

Voilà qui devrait faire l'affaire :

Sub SaveAsPDF() 'Enregistrement fiche en pdf
Dim FileN$
FileN = Format(Year(Date), "00") & Format(Month(Date), "00") & _
      Format(Day(Date), "00") & " " & Format(Time, "hhmm") & ".pdf"
    ChDir "T:\AEROPORT\SSLIA\ADMINISTRATIF France\Document originale NE PAS TOUCHER\Fiche Vérif vim"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
      "T:\AEROPORT\SSLIA\ADMINISTRATIF France\DOCUMENTS ENREGISTRE\Vérif véhicule\Hebdomadaire\FHebdo  " & FileN, _
      Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=False
  MsgBox "Fiche Hebdomadaire enregistrée en PDF", vbInformation, "Enregistrement en PDF"
  Reinitialise
End Sub

En plus de la date le nom du fichier comporte l'heure donc aucun fichier ne peut être semblable au précédent.

A+

RE

Merci galopin, c'est génial. Je n'avais pas pensé à ajouter l'heure.

Cette fois ci, c'est bon pour moi.

A+

Cdlt

pompaero

Rechercher des sujets similaires à "automatiser fiche"