Bonjour à tous.
Que de temps passé sans venir chercher un coup de main dans cette communauté.
Voilà 4ans j'avais posté et partager avec tous une carte de la France après de l'aide qu'on m'avait fourni ici même)
Et me revoilà....
Voilà la situation :
Me voilà depuis peu dans un nouveau boulot et pour pour me faire valoir, je monte une matrice qui permet de faire un gain de temps de 45min... sur 1h de travail. 2 semaines de travail... et je connais le VBA depuis... 2semaines...
Ca fonctionne très bien ! Mais il me faut maintenant sécuriser le tout pour qu'un utilisateur lambda ne fasse pas une fausse manipulation.
Ma demande porte sur la non-édition (et changement surtout) de mes macros.
La feuille est protégée (juste cellules verrouillées ou non de cliquables -faut que je trouve à quel moment les cellules verrouillées le deviennent...), j'ai galéré à rendre les bouton de macro protégés car j'avais un objet caché (je pense) en plein dans zone non verrouillée, zone de calcul), je vais regarder pour protéger la structure aussi car pas mal de feuillets cachés (avec la commande "xxxxx.Activate" pour les lancer).
Le mieux que j'ai trouvé après de nombreuses recherches à extraire des noms/prénoms d'un fichier texte (nom en majuscule et prénom en minuscule), et ne garder que le nom et la 1ère lettre du prénom. Et vu la galère avec les caractères spéciaux, je profite de ce post pour en parler et donner une aide, car j'y ai passé du temps...
Voilà une parenthèse en aide si besoin :
Ouvrir le fichier texte via excel, et là les accents s'aiment à devenir des caractères spéciaux. Pour ne garder que les majuscules (dont la 1ère lettre du prénom) je suis passer par une macro enregistrant un remplacement de caractères (CTRL+H) sur les caractères é è ê ë ö ô ç [...] par du vide (ou une minucule) avec (ALT+239 par ex - voir - Raccourcis clavier pour caractères spéciaux [Résolu] | CommentCaMarche -
Ensuite, j'ai lancé sur la page une macro pour supprimer toutes les minuscules :
Une autre demande :
je n'ai pas prit encore le temps d'apprendre à faire des boucles... et en même temps j'ai le cerveau qui fume à avoir appris en autodidacte le VBA...) mais je remplis un bon de commandes en cliquant sur un bouton-macro qui gères les erreurs, mais au moment où il pioche dans la feuilles d'erreurs et qu'il n'y a plus rien d'inscrit dedans, j'ai un bug... Puis je faire un débug automatique si l'action de la macro ne donne rien ?
Et aussi liées à la protection, si j'ai un utilisateur qui clique qui fait quelque chose dans une cellule verrouillée, y a t-il moyen de mettre un autre message que celui d'Excel donnant a solution pour déprotéger la feuille ? (je ne sais pas si un mot de passe sera le bienvenue pour toute ma protection)
Donc en gros 3 besoins d'aide (en italique) :
1) protéger mes macro de toute écriture
2) éviter un debug à faire (et par là même faire peur à l'utilisateur lamda)
3) Le message de non-droit que je voudrais changer
Je vous remercie d'avance.
(et merci encore et toujours pour l'aide que je trouve au fil des discussions)
Que de temps passé sans venir chercher un coup de main dans cette communauté.
Voilà 4ans j'avais posté et partager avec tous une carte de la France après de l'aide qu'on m'avait fourni ici même)
Et me revoilà....
Voilà la situation :
Me voilà depuis peu dans un nouveau boulot et pour pour me faire valoir, je monte une matrice qui permet de faire un gain de temps de 45min... sur 1h de travail. 2 semaines de travail... et je connais le VBA depuis... 2semaines...
Ca fonctionne très bien ! Mais il me faut maintenant sécuriser le tout pour qu'un utilisateur lambda ne fasse pas une fausse manipulation.
Ma demande porte sur la non-édition (et changement surtout) de mes macros.
La feuille est protégée (juste cellules verrouillées ou non de cliquables -faut que je trouve à quel moment les cellules verrouillées le deviennent...), j'ai galéré à rendre les bouton de macro protégés car j'avais un objet caché (je pense) en plein dans zone non verrouillée, zone de calcul), je vais regarder pour protéger la structure aussi car pas mal de feuillets cachés (avec la commande "xxxxx.Activate" pour les lancer).
Le mieux que j'ai trouvé après de nombreuses recherches à extraire des noms/prénoms d'un fichier texte (nom en majuscule et prénom en minuscule), et ne garder que le nom et la 1ère lettre du prénom. Et vu la galère avec les caractères spéciaux, je profite de ce post pour en parler et donner une aide, car j'y ai passé du temps...
Voilà une parenthèse en aide si besoin :
Ouvrir le fichier texte via excel, et là les accents s'aiment à devenir des caractères spéciaux. Pour ne garder que les majuscules (dont la 1ère lettre du prénom) je suis passer par une macro enregistrant un remplacement de caractères (CTRL+H) sur les caractères é è ê ë ö ô ç [...] par du vide (ou une minucule) avec (ALT+239 par ex - voir - Raccourcis clavier pour caractères spéciaux [Résolu] | CommentCaMarche -
Ensuite, j'ai lancé sur la page une macro pour supprimer toutes les minuscules :
En espérant en aider certains 😉Sub supp_min()
'
' Supp_Min Macro
' Macro enregistrée le 30/05/2012 par 8011386D
'
'
Dim c As Range, r As Range
Dim Tex$, LetCherch1$, LetCherch2$, i As Long
Set r = Selection
For Each c In r
Tex = c.Text
For i = Len(Tex) To 1 Step -1
LetCherch1 = Mid(Tex, i, 1)
LetCherch2 = Mid(UCase(Tex), i, 1)
If LetCherch1 <> LetCherch2 Then Tex = Replace(Tex, LetCherch1, "")
Next
c.Value = Trim(Tex)
Next c
End Sub
Une autre demande :
je n'ai pas prit encore le temps d'apprendre à faire des boucles... et en même temps j'ai le cerveau qui fume à avoir appris en autodidacte le VBA...) mais je remplis un bon de commandes en cliquant sur un bouton-macro qui gères les erreurs, mais au moment où il pioche dans la feuilles d'erreurs et qu'il n'y a plus rien d'inscrit dedans, j'ai un bug... Puis je faire un débug automatique si l'action de la macro ne donne rien ?
Et aussi liées à la protection, si j'ai un utilisateur qui clique qui fait quelque chose dans une cellule verrouillée, y a t-il moyen de mettre un autre message que celui d'Excel donnant a solution pour déprotéger la feuille ? (je ne sais pas si un mot de passe sera le bienvenue pour toute ma protection)
Donc en gros 3 besoins d'aide (en italique) :
1) protéger mes macro de toute écriture
2) éviter un debug à faire (et par là même faire peur à l'utilisateur lamda)
3) Le message de non-droit que je voudrais changer
Je vous remercie d'avance.
(et merci encore et toujours pour l'aide que je trouve au fil des discussions)
Dernière édition: