Automatisation fichier accueil

15acceuil-vsc.xlsx (39.87 Ko)

Bonjour à toutes et à tous,

Je souhaiterais avoir de l'aide!!!!!

J'ai actuellement un fichier excel liée a l’accueil des demandeur d'emploi pour avoir une traçabilité des personnes passé en agence pour les mesures de crises sanitaire lié au covid 19.

Je voudrais automatisé ce fichier pour pourvoir copié automatiquement la dernier feuille, supprimé son contenu et renomé automatiquement le nom de la feuille suivante par la date ou demande a l'utilisateur de saisir la date du jour. Je ne vais pas vous demandé plus même si j'y pense mais mon but serais de faire ce fichier automatisé au mois en un clic ou 2. A savoir si il n'y aura pas possibilité de crée automatiquement une copie en dernier jour en effaçant les données . comme sa il y aurait juste à modifier le nom par le mois en cours.

Bonjour Flam, bonjour le forum,

En pièce jointe une proposition.
Le bouton Nouvelle Journée de l'onglet Menu permet de copier un onglet Modèle (masqué) et de le renommer par la date renseignée dans la boîte d'entrée.
Je n'ai pas codé pour éviter les bugs de dates erronées il suffira de supprimer ou de renommer l'onglet créé...
Si le mois ou l'année change par rapport a la date indiquée en B2 de l'onglet Menu, un nouveau classeur est créé dans le même dossier que celui où se trouve le fichier source.
Je n'ai pas géré non plus la possibilité d'un fichier déjà existant...

Le code :

Private Sub CommandButton1_Click() 'bouton "Nouvelle Journée"
Dim CS As Workbook 'déclare la variable CS (Classeur Source)
Dim CA As String 'déclare la variable CA (Chemin d'Accès)
Dim D As Variant 'déclare la variable D (Date)

Application.ScreenUpdating = False 'masque les rafraîchissements d'écran
Set CS = ThisWorkbook 'définit le classeur source CS
CA = CS.Path & "\" 'définit le chemin d'accès CA
D = Application.InputBox("Quelle date ? (jj mm aaaa)", "DATE", Format(Date, "dd mm yyyy")) 'définit la date D (boîte d'entrée)
If D = False Or D = "" Then Exit Sub 'si bouton [Anuler] ou non renseignée, sort de la procédure
'condition : si le mois de la date D ou l'année de la date D est différent du mois de la cellule B2 ou de l'année de la cellule B2
If Month(D) <> Month(Me.Range("B2").Value) Or Year(D) <> Year(Me.Range("B2").Value) Then
    MsgBox "Un nouveau fichier portant le nom : accueil-vcs-" & CStr(Month(D)) & "-" & Year(D) & ".xlsm va être créé." 'message
    Me.Range("B2").Value = Format(D, "mmmm yyyy") 'renvoie la date D en B2
    Application.DisplayAlerts = False 'masque les message d'Excel
    For I = CS.Sheets.Count To 4 Step -1 'boucle sur tous les onglets (du dernier au 4ème)
        CS.Worksheets(I).Visible = True 'affiche l'onglet (au cas ou)
        CS.Worksheets(I).Delete 'supprime l'onglet
    Next I 'prochain onglet de la boucle
    Application.DisplayAlerts = True 'affiche les message d'Excel
    ThisWorkbook.SaveAs CA & "accueil-vcs- " & CStr(Month(D)) & " - " & Year(D), 52 'enregistre le classeur sous
End If 'fin de la condition
For I = 4 To Sheets.Count 'boucle sur tous les onglets (du 4ème au dernier)
    If Worksheets(I).Name = D Then 'condition : si le nom de l'onglet est égal a la date D
        MsgBox "Un onglet à cette date existe déjà !" 'message
        Worksheets(D).Visible = True 'affiche l'onglet (au cas ou)
        Worksheets(D).Activate 'active l'onglet
        Exit Sub 'sort de la procédure
    End If 'fin de la condition
Next I 'prochaine onglet de la boucle
With Worksheets("Modèle") 'prend en compte l'onglet "Modèle"
    .Visible = True 'affiche l'onglet "Modèle"
    .Copy After:=Sheets(Sheets.Count) 'copy l'onglet "Modèle en dernière position
    ActiveSheet.Name = D 'nomme l'onglet actif
    .Visible = False 'masque l'onglet "Modèle"
End With 'fi de la prose en compte de de l'onglet "Modèle"
Application.ScreenUpdating = True 'affiche les rafraîchissements d'écran
End Sub

Le fichier :

Un grand merci pour ton aide!!!! Surtout avec les commentaires qui m'aide à comprendre ta démarche.

Pouurais-je savoir si il y avait une manipulation particulière pour retranscrire ce macro sur excel tablette?

Bonjour Flam, bonjour le forum,

Désolé mais je ne sais pas te répondre n'ayant pas de tablette à part de chocolat mais dans mon placard...

Ok pas de soucis tu ma déjà grandement aider précédemment

Re,

J'ai ton fichier prêt pour ton autre problème mais j'attends que tu l'exposes dans ce fil ou un autre...

Au final j'ai réussi à faire comme cela. tu avais fais quoi toi?

Re,

J'avais fait ça :

Le tien est super il est plus perfectionnée.... Chapeau l'artiste

Nouveau problème pour une nouvelle aide.

Je souhaiterais crée un formulaire, la fonction formulaire me permet de crée celui ci mais je voudrais automatisé cela de maniere VBA pour que le formulaire sois demander à l'ouverture du fichier avec 2 bouton Consulté/extraire (visualisation, modification et extraction) et ajouter ( soumettre le formulaire)

Ou crée un lien de formulaire excel qui permettrais de remplir le formulaire sans ouvrir le fichier excel et que les données y soin transmise si possible.

Re,

Oui j'avais déjà ouvert ton fichier sur l'autre fil. D'ailleurs, il est préférable de rester sur l'autre fil.

Juste deux remarques :
1. À quel onglet se rapporte l'UserForm ?
2. Tu penses qu'on va créer le formulaire pour toi ?...

UserForm se rapport au premier onglet après je compte le décliner sur un autre tableau pour le deuxième onglet.

Et non je n'attends pas que vous crée le formulaire j'ai réussi a le crée avec, avec le nouvelle onglet dans le ruban, c'est juste automatisation qui me porte problème pour configuré cela à l'ouverture du fichier excel

Re,

Pourquoi tu ne proposes pas le fichier avec le formulaire (.xlsm) alors ?

Alors j'ai effectué le formulaire via lo'nglet formulaire de l'onglet ruban mais à l'enregistrement du fichier cela reste dans l'onglet donc j'essayes de refaire via la fonction VBA userform

En voici l'essai avec le formulaire et la macro

Rechercher des sujets similaires à "automatisation fichier accueil"