Aide sur la compatibilité
#1
Régulier XLPages

Inscription: 24/12/2007

Messages: 59

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 31-12-2007 12h12
Bonjour
J'ai fait une macro qui s'execute automatiquement dès l'ouverture de mon classeur. Je l'ai envoyer à un ami et il m'a dit que la macro ne s'executait pas (il a Excel 2003 et je ne le croit pas toujours et en plus il ne connait rien en Excel). Cette macro sert à verrouiller le classeur une fois la période d'éssaie écoulait (dans ce cas-là 30 jours à compter de la première ouverture).

Au revoir et merci pour vos info et j'adore votre forum !
Pièce jointe:
xls Classeur1.xls   [ Taille: 56.50 Ko - Téléchargements: 522 ]

Venez sur mon nouvau site: http://www.power-plus-technologie.fr.tc/
Hors Ligne
Rapport   Haut 

Re: Aide sur la compatibilité
#2
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 31-12-2007 13h30
Bonjour PowerPlus, le Forum,

Je te rassure, ta procédure Workbook_Open() située dans ThisWorbook se lance bien à l'ouverture du classeur (à condition que l'utilisateur active bien les macros à l'ouverture du classeur )

Tout d'abord, un avis personnel : les classeurs verrouillés (avec ou sans période d'essai), je n'y crois pas. N'importe quel utilisateur un peu averti saura contourner le verrouillage de toutes façons. D'ailleurs, tu en as l'aperçu ici, si l'utilisateur n'active pas les macros à l'ouverture du classeur, ton code ne sert plus à rien... Par ailleurs, je ne suis pas trop fan non plus des applications avec période d'essai et paiement ensuite...

Concernant ton code VBA maintenant, juste quelques remarques pour l'instant (que j'espère constructives) et se limitant à la syntaxe utilisée :[list=1]
[*]Procédure Workbook_Open :
Tu devrais échanger l'expression
Application.Run "test"
par
Test
(on peut aussi utiliser l'instruction Call mais c'est inutile ici).
L'unique nom de ta macro suffit à appeler cette dernière.

[*]Procédure CommandButton1_Click :
Plutôt que
Range("secur!B11").Value
j'utiliserais
Sheets("secur").Range("B11").Value
Pour faire référence à une cellule (ou une plage de cellules) d'une feuille de calcul particulière, on cible l'objet par une expression comme : Sheets("NomDeLaFeuille").Range("ReferenceDeCellule"). On respecte ainsi la hiérarchie des objets. De même, si on veut cibler une plage dans un autre classeur, on fera :
Workbooks("NomDuClasseur").Sheets("NomDeLaFeuille").Range("ReferenceDeCellule")

[*]Procédure TextBox1_Change :
L'expression [secur!B11] équivaut à Sheets("secur").Range("F11"). Même si c'est plus court, je te conseillerais d'utiliser la seconde façon de l'exprimer. Utiliser les crochets [] revient à utiliser la méthode evaluate() qui force donc Excel à évaluer l'expression comprise entre crochets et qui, à mon avis, utilisé sans mesure, peut ralentir une application VBA (c'est un avis tout à fait personnel). Par ailleurs, pourquoi utiliser tantôt une méthode et tantôt une autre dans un même projet ?

[*]Procédure Test :
La ligne de code :
Dim nombre As Integer
devrait se trouver juste après la ligne Sub Test(). Les déclarations de variable se font toujours en début de procédure, jamais en plein milieu.
[/list]
Voilà, j'espère que ces quelques points te seront utiles.

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Aide sur la compatibilité
#3
Régulier XLPages

Inscription: 24/12/2007

Messages: 59

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 31-12-2007 13h44
Merci pour toutes vos explications. Mais je tient quand même à vous précisez que je n'est pas l'intention de faire payer mes classeurs Excel ! Je râle moi-même quand il s'agit de payer alors ce n'est pas pour faire pareil. Si je fait ça c'est seleument parce que j'ai découvert quelque nouvelles formuls (les conditions et le verrouillage).

Je suis d'accord avec vous quand il s'agit de contourner, mais l'utilisation serai restreinte: il ne pourrait plus executer de macro. Et s'il execute les macro il ne pourra plus se servir du classeur.

Enfin ne vous inquiétes pas je ne ferai rien payer. C'est juste un entrainement pour trouver d'autre application par la suite.

Mais je ne sais pas si vous avez Excel 2003 car vous n'avez pas préciser que vous avez ouvert mon classeur avec cette version.

Merci et bonnes continuation.

Venez sur mon nouvau site: http://www.power-plus-technologie.fr.tc/
Hors Ligne
Rapport   Haut 

Re: Aide sur la compatibilité
#4
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 31-12-2007 14h11
Re,

Si les membres de ce site complètent leur profil (comme nous l'avons fait tout les deux), tu peux voir la(les) version(s) Excel qu'ils utilisent ci-contre :
Image redimensionnée

Effectivement PowerPlus, j'ai bien fait le test sous XL 2003.

Citation :
PowerPlus a dit :
Enfin ne vous inquiétes pas je ne ferai rien payer. C'est juste un entrainement pour trouver d'autre application par la suite.

Pas de problème PowerPlus.
De toutes façons je ne juge pas, chacun fait comme il l'entend pour peu qu'il s'agisse d'un travail personnel.
Je donnais simplement mon avis même si certains freewares que j'ai pu voir sur le net mériteraient bien récompense (alors que d'autres circulant en tant que sharewares ne valent rien du tout).

Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 

Re: Aide sur la compatibilité
#5
Régulier XLPages

Inscription: 24/12/2007

Messages: 59

Système d'exploitation:
PC
Version Excel utilisée:
2007
Posté le : 31-12-2007 15h02
Comment peut-on simplifier (si possible) ce code.

Sheets("Graphique").Select
    Columns
("k:L").Select
    Selection
.PasteSpecial Paste:=xlPasteValuesOperation:=xlNoneSkipBlanks _
        
:=FalseTranspose:=False

Venez sur mon nouvau site: http://www.power-plus-technologie.fr.tc/
Hors Ligne
Rapport   Haut 

Re: Aide sur la compatibilité
#6
Webmestre

Inscription: 18/05/2006
De Saône-et-Loire (71)

Messages: 1539

Système d'exploitation:
PC
Version Excel utilisée:
97, 2000, 2002, 2003, 2007, 2010, 2013, 2016 et 365
Posté le : 31-12-2007 15h21
Re,

Normalement, tu devrais pouvoir faire comme ça :
Sheets("Graphique").Columns("k:L").PasteSpecial Paste:=xlPasteValues


Comme dans cet exemple :
Sheets("Feuil1").Columns("k:L").Copy
Sheets
("Graphique").Columns("k:L").PasteSpecial Paste:=xlPasteValues


D'une manière générale, les sélections de cellules sont souvent inutiles (voire déconseillées et sources de problème) en VBA.

Image redimensionnée


Par ailleurs PowerPlus, merci à toi de créer un nouveau sujet dans le forum si la question posée n'a pas de rapport avec la précédente.
De plus, je déplace le présent fil de discussions dans le forum Espace Débutants (VBA) si tu n'y vois pas d'inconvénient.


Cordialement,

Didier_mDF
Image redimensionnée
Le Webmaster

La réponse vous satisfait ? Merci de revenir solder le sujet en [résolu], voir ce lien
Hors Ligne
Rapport   Haut 


Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Qui consulte actuellement ce sujet ?   1 Utilisateur(s) anonymes