cad37
Messages postés5Date d'inscriptionlundi 16 octobre 2006StatutMembreDernière intervention18 octobre 2006
-
18 oct. 2006 à 00:32
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 2018
-
18 oct. 2006 à 23:40
salut
étant aller sur le forum de presence-pc.com pour poser mes questions sans réponses précises je me suis inscrit sur celui-ci
j'annonce que je n'y connais pas grand chose en prog
je ne fais que des macros du type enregistrement de suite d'opérations simples copier coller supprimer des caractères
Sous excel, j'ai besoin d'une macro qui se lance à partir d'une date que je fixe dans la macro elle même, qui me permet soit de:
- ne plus pouvoir imprimer les différentes feuilles du fichier ou imprimer des pages vierges (simuler un bug)
- ou solution plus radicale, effacer le contenu du fichier, puis effacer cette meme macro destructive , enregistre le fichier vierge, puis fermer le fichier
j'opterais plus pour la solution de ne plus pouvoir imprimer.
Explication du besoin:
ayant fais des fichiers excel pour le travail, lancement en fabricattion, calcul de débit, calcul de farif en automatique, sans retour positif de la direction qui est bien content de mon travail je souhaite me couvrir dans le temps par une macro du type citer ci dessus. g ces deux solutions mais je suis ouvert à d'autre sans problèmes.
Je ne sais pas le travail qu'il ya à faire sur ça, mais je vous remercie d'avance si on peut me dépanner.
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 18 oct. 2006 à 00:39
Salut,
j'ai pas tout suivi, mais bon, au cas où :
Pour lancer une macro à heure / jour prédéfini :
voir OnTime (attention, le fichier doit être ouvert à ce moment)
Pour effacer un code dans un module :
ragarde ma source, c'est ce qu'elle fait !
Aperçu :
' Il faut rajouter la référence suivante :
' Microsoft Visual Basic for Applications 6.0 Extensibility
' (Program Files\Microsoft Visual Studio\VB98\VB6EXT)
'*** 2 NDE POSSIBILITE : SUPPRESSION CODE DANS OBJET ***
' Càd dans les UserForm, Module, Module de Classe (pour ThisWorkbook_Open, voir 3eme possibilité)
Sub EffaceCodeObjet()
Workbooks.Open ("C:\Chemin\Nom Fichier.xls") 'une boite de dialogue se trouve dans le fichier excel(Zip) pour le
' choix, au lieu de mettre le nom du chemin en dur
On Error Goto ErrHandle
' l'exemple au dessous c'est pour effacer le code dans Module1 (on peut faire pareil
'en remplacant 'Module1' par 'UserForm1', 'Class1'.(bref, mettre les noms de vos objets))
' ici on supprime le code dans "Module1", dans le projet du classeur actif
With ActiveWorkbook.VBProject.VBComponents("Module1").CodeModule
.DeleteLines 1, .CountOfLines 'de la 1ere à la derniere ligne
End With
MsgBox "Le code du Module a été suprimer"
ActiveWorkbook.Close True
Exit Sub
ErrHandle:
MsgBox "ERREUR dans la suppression du code du Module", vbOKOnly + vbCritical
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 18 oct. 2006 à 00:46
Sub Macro2()
' simplification de ta macro :
' Macro enregistrée le 18/10/2006 par - mortalino -
'
Dim i As Integer
For i = 1 To xlBook.Sheets.Count
Sheets(i).Select: Cells.Select: Selection.ClearContents
Select Case i
Case1: Selection.ColumnWidth = 2: Selection.RowHeight = 12
Case2: Selection.ColumnWidth = 2: Selection.RowHeight = 6.75
Case3: Selection.ColumnWidth = 1.71: Selection.RowHeight = 10.5
End Select
Range("A1").Select
Next i
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 18 oct. 2006 à 09:13
Attetion au cadre légal de ton code.
Si ton patron découvre que tu as fait ça volontairement pour nuire au travail de l'entreprise, il peut se retourner contre toi avec à la clé au mieux un avertissement, au pire licencement pour faute grave (immédiat sans imdennités). Et s'il est vraiment en rogne, il pourra te mettre au tribunal pour exiger des compensations financières des pertes engendrées par ton action.
Ca peut etre assimilé à l'introduction volontaire d'un virus dans le système informatique (c'est quelque part une forme de virus).
Plutot que de faire mumuse sur tes fichiers, demande une entrevue avec ton boss, ça te coutera probablement moins cher en cas de problème.
---- Sevyc64 (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Vous n’avez pas trouvé la réponse que vous recherchez ?
cad37
Messages postés5Date d'inscriptionlundi 16 octobre 2006StatutMembreDernière intervention18 octobre 2006 18 oct. 2006 à 19:37
Merci de tous ces conseils, le seul soucis je n'ai plus de patron direct, le patron du site c'est fait viré et le siège du groupe n'est pas à coté, il n'y a que mon responsable qui lui ne détient aucun pouvoir, alors discuter argent avec personne...
Encore merci des réponses et de l'intéret porté
les lignes de codes je les ai testé mais elle ne fonctionne pas il bloque sur l'adresse du fichier
mortalino
Messages postés6786Date d'inscriptionvendredi 16 décembre 2005StatutMembreDernière intervention21 décembre 201118 18 oct. 2006 à 20:33
Pour le OnTime, regarde cet exemple vba :
'V. Un timer (code s'exécutant toutes les x secondes)
'Dans un module tapez le code suivant :
Dim Lheure As Double
Dim Interval as Integer
Sub LancerTimer(NbS as integer)
'L'application ExecutionTimer se lancera toutes les 0 heure, 0 minute et Interval seconde
Interval = NbS
Application.OnTime Now + TimeSerial(0, 0,Interval ), "ExecutionTimer"
End Sub
Sub ArretTimer()
On Error Resume Next
Application.OnTime Lheure, "ExecutionTimer", , False
End Sub
Sub ExecutionTimer()
'code à exécuter à la fin de chaque Interval secondes
'code obligatoire
Lheure = Now + TimeSerial(0, 0, Interval )
Application.OnTime Lheure, "ExecutionTimer"
End Sub
'Vous lancez le timer en appelant la procédure LancerTimer(N), puis elle exécute le 'code de ExecutionTimer toutes les N secondes et enfin, vous l'arrêter avec ArretTimer.
Concernant l'erreur sur les Case, c'est parce que j'ai fait une faute de frappe, c'est pas Case1: mais
Case 1:
(il faut un espace entre Case et le chffre, pareil pour les autres)
@++
<hr width ="100%" size="2" />
--Mortalino--
Le mystérieux chevalier, "Provençal, le Gaulois"
/DIV>
cad37
Messages postés5Date d'inscriptionlundi 16 octobre 2006StatutMembreDernière intervention18 octobre 2006 18 oct. 2006 à 21:22
il ya un bug sur la ligne Fore i...
je ne comprends pas le dernier timer...
qu est ce que le code execute le code
je suis sur que ç'est banal pour vous programmeur mais moi je n'ycomprends pas grand chose, seulement de constater que ça fonctionne ou pas
ma macro :
j'ai un fichier xls qui contient la macro
je m'en sers je l'utilise enregistre dessus, puis à une date précise et à partir de cete date le fichier dès qu'il est ouvert ce met en defaut exemple on ne peut plus imprimer, les imprimantes par défaut ne fonctionnent plus le ctr+p ne marche pas. les imprime écrans non plus on ne peut que visualiser les feuilles du classeurs qui sont protéger au préalable.
solutions moins radicale que de tout saboter
et lorsque cette macro est activé parceque la date est dépassé et que j'ai besoin de le pousser un peu plus loin il me suffit de rentrer dans les code de la macro de changer la date butoir d'enregistré et le tour est joué pour la période voulue
c'est simple à écrire mais le langage vb je ne connais pas. je n'ai pas eu de formation sur ça et ça me manque pour réalisé des choses en automatiques répéttive. mais c'est pas grave je m'y atèle à essayer de comprendre
cs_MPi
Messages postés3877Date d'inscriptionmardi 19 mars 2002StatutMembreDernière intervention17 août 201823 18 oct. 2006 à 23:40
À l'ouverture de ton classeur (workbook_Open), tu peux vérifier la date
du jour par rapport à une date que tu fixes toi-même et fermer le
classeur le cas échéant. Ou encore au début de tes macros, tu fais la
même vérification de date et tu sors si la date excède la limite.
Mais comme on (Casy) t'a dit, ton employeur t'embauche pour effectuer
une tâche: ici c'est celle de créer des classeurs pour fins d'analyse,
des outils pour permettre une meilleure gestion, ... Ces classeurs sont
sa propriété puisqu'il t'a payé pour les créer.
Mais bon, il y a toujours moyen de placer quelques bugs par-ci
par-là... mais arrange-toi pour ne pas qu'il les trouve. Ça pourrait
être un password aléatoire, valable pour X semaines ou mois, dont tu
connais la clé et que tu leur fournis tant que tu es à l'emploi...
Avant de t'aventurer dans ce genre d'exercice, vérifie la légalité de tout ceci ainsi que tes droits d'auteur, s'il en existe...