Besoin d'aide pour compléter une macro (Résolu par Job75)

fenec

XLDnaute Impliqué
Bonsoir le forum,

J’ai besoin de votre aide pour compléter une macro.

Dans le fichier ci-joint, j’ai une macro qui enregistre mon fichier dans laquelle je supprime les codes et lignes devenues inutiles. Merci pour l’aide de Job75 qui a contribué pour beaucoup à ma petite appli.

Bref, je vous expose mon souhait :

Dans cette macro, je voudrais rajouter plusieurs choses si possibles, je m’explique.

Dans un premier temps, je souhaiterais supprimer en plus des lignes de 11 à 46 dans "UserForm_Initialize" les lignes de 57 à 62.

Dans un deuxième toujours dans "UserForm_Initialize" remplacer la ligne « Accueil_Click » par « Etat de congés_Click » si possible bien évidemment.

Cordialement,

Philippe.

PS: je ne trouve pas comment joindre mon fichier, je suis perdu dans cette nouvelle version du forum.
 

job75

XLDnaute Barbatruc
Bonjour fenec,

Attention, le 2ème argument de .DeleteLines est le nombre de lignes supprimées...

Dans la macro rec :
Code:
    .ReplaceLine .ProcBodyLine("UserForm_Initialize", 0) + 57, "Etat_Congés_Click"
    .DeleteLines .ProcBodyLine("UserForm_Initialize", 0) + 67, 6 ' 6 lignes supprimées
    .DeleteLines .ProcBodyLine("UserForm_Initialize", 0) + 11, 45 '45 lignes supprimées
Fichier joint.

A+
 

Fichiers joints

fenec

XLDnaute Impliqué
Bonjour le forum, Job75

Comme toujours c'est parfait.

Attention, le 2ème argument de .DeleteLines est le nombre de lignes supprimées...

je comprends mieux avec votre précision pourquoi ca ne fonctionnait pas avec:

.DeleteLines .ProcBodyLine("UserForm_Initialize", 0) + 57, 62

Encore une petite question si vous permettez.

Est-il possible que le fichier créer par la macro rec ne reste pas ouvert ou si possible qu'il se ferme et s'ouvre automatiquement afin que l'userform menu soit opérationnel car pour le moment je suis obligé de le fermer manuellement, d'enregistrer et de l'ouvrir à nouveau pour l'utiliser?

PS: désolé de ne pas mettre les balises je ne les retrouvent pas, si vous pouviez me renseigner sur ce point.
 

job75

XLDnaute Barbatruc
Bonjour fenec,

Pas besoin de fermer et rouvrir le fichier pour afficher l'USF "Menu", mettre à la fin de la macro rec :
Code:
Dim lechemin$, NOM$
lechemin = ActiveWorkbook.Path & "\"
NOM = "Pointage Congés " & Sheets(1).[B5]
Application.DisplayAlerts = False 'si le fichier existe déjà
ThisWorkbook.SaveAs lechemin & NOM & ".xls"
Application.EnableEvents = True 'vous l'aviez oublié !!!
Application.OnTime 1, "ThisWorkbook.AfficheMenu"
J'ai ajouté la macro AfficheMenu dans ThisWorkbook.

Fichier (2).

PS : pour les balises de code, 4ème icône du menu en partant de la droite.

A+
 

Fichiers joints

job75

XLDnaute Barbatruc
Rr,

Si vous préférez rester sur le 1er fichier :
Code:
Dim lechemin$, NOM$
lechemin = ActiveWorkbook.Path & "\"
NOM = "Pointage Congés " & Sheets(1).[B5]
ThisWorkbook.SaveCopyAs lechemin & NOM & ".xls"
Application.EnableEvents = True 'vous l'aviez oublié !!!
Application.OnTime 1, "Rouvre"
ThisWorkbook.Close False
Fichier (2 bis).

A+
 

Fichiers joints

fenec

XLDnaute Impliqué
Re,
Pas sur pour l'instant de vouloir rester sur le premier fichier, verrais en fonction de mon besoin mais je garde cette solution de coté au cas ou.
Par contre je reviens sur votre code, pourquoi mettez vous des $ dans la variable, une explication serait la bienvenue?

Code:
Dim lechemin$, NOM$
 

job75

XLDnaute Barbatruc
Re,
pourquoi mettez vous des $ dans la variable, une explication serait la bienvenue?
Depuis le temps que vous utilisez VBA vous devriez savoir que :

Dim x$ c'est la même chose que Dim x As String
Dim x# c'est la même chose que Dim x As Double
Dim x! c'est la même chose que Dim x As Single
Dim x& c'est la même chose que Dim x As Long
Dim x% c'est la même chose que Dim x As Integer

En plus court.

A+
 

Discussions similaires


Haut Bas