Selection ou execution sur des cellules Cachees
Résolu
Kill3Hoshigaki
Messages postés
11
Date d'inscription
Statut
Membre
Dernière intervention
-
Kill3Hoshigaki Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
Kill3Hoshigaki Messages postés 11 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerai envoyer une plage de cellule via mail sur excel automatiquement. Je ne suis pas tres competent dans ce domaine mais j'ai pu trouver un code sur des differents sites qui me permet de le faire. Actuellement j'ai 2 problemes, le premier, lorsque la feuille est verouillee et cachee (Feuille contenant les resultats), la plage de cellule selectionnee (contenant le resultat) que je suis cense recevoir par mail n'apparait pas (ou encore selectionne toute la feuille). Le second, lorsque j'execute la commande envoi mail en cliquant sur le bouton (Feuille principale contenant les questions) sachant que la feuille est protegee (et les elements de la seconde feuille caches), elle ne s'execute pas.
Voici le code:
Je vous remercie de votre bonne volonte dans la resolution de mon probleme.
Cordialement,
Ps:Le code fonctionne tant que les cellules/les feuilles ne sont pas verouillees, ni cachees.
J'aimerai envoyer une plage de cellule via mail sur excel automatiquement. Je ne suis pas tres competent dans ce domaine mais j'ai pu trouver un code sur des differents sites qui me permet de le faire. Actuellement j'ai 2 problemes, le premier, lorsque la feuille est verouillee et cachee (Feuille contenant les resultats), la plage de cellule selectionnee (contenant le resultat) que je suis cense recevoir par mail n'apparait pas (ou encore selectionne toute la feuille). Le second, lorsque j'execute la commande envoi mail en cliquant sur le bouton (Feuille principale contenant les questions) sachant que la feuille est protegee (et les elements de la seconde feuille caches), elle ne s'execute pas.
Voici le code:
Private Sub CommandButton1_Click()
'Select the range of cells on the active worksheet.
'Procédure de sélection d'une plage de cellules dans une autre feuille de calcul du même classeur.
Sheets("Confidential").Activate
ActiveSheet.Range("C31:F42").Select
ActiveWorkbook.EnvelopeVisible = True ' Show the envelope on the ActiveWorkbook.
'Set the optional introduction
With ActiveSheet.MailEnvelope
.Introduction = "This is your result for the weekly quiz based on Standards."
.Item.To = Range("G60")
.Item.Cc = "Test@exchange.com" 'In Cc
.Item.Subject = "Feedback_Quiz_Evaluation" 'Subject lines.
.Item.Send 'Finally the message is sent.
End With
End Sub
Je vous remercie de votre bonne volonte dans la resolution de mon probleme.
Cordialement,
Ps:Le code fonctionne tant que les cellules/les feuilles ne sont pas verouillees, ni cachees.
A voir également:
- Selection ou execution sur des cellules Cachees
- Verrouiller des cellules excel - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Comment fusionner deux cellules sur excel - Guide
- Comment retrouver une conversation cachée sur whatsapp - Guide
- Codes secrets Android : accéder aux fonctions cachées - Guide
6 réponses
Bonjour,
Il me semble que le premier problème vient du fait que les feuilles soient verrouillées. En effet les actions du VBA seront interprété comme des actions d'utilisateur par excel et donc subirons les mêmes restrictions.
Ce que vous pouvez faire dans un premier temps est de déverrouiller la feuille dont vous allez vous servir en début de fonction, puis de la déverrouiller. Pour cela, après l'instruction "Sheets("Confidential").Activate" utiliser celle-ci pour déverrouiller la feuille:"ActiveSheet.Unprotect".
A la fin de votre code utiliser cette instruction pour reverrouiller la feuille : ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True
Attention : "ActiveSheet.Protect" permet de protéger la feuille sélectionnée le reste sont les restriction à mettre en place (type sélection de cellule vérouillée, etc.)
--
Il me semble que le premier problème vient du fait que les feuilles soient verrouillées. En effet les actions du VBA seront interprété comme des actions d'utilisateur par excel et donc subirons les mêmes restrictions.
Ce que vous pouvez faire dans un premier temps est de déverrouiller la feuille dont vous allez vous servir en début de fonction, puis de la déverrouiller. Pour cela, après l'instruction "Sheets("Confidential").Activate" utiliser celle-ci pour déverrouiller la feuille:"ActiveSheet.Unprotect".
A la fin de votre code utiliser cette instruction pour reverrouiller la feuille : ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFormattingColumns:=True, _
AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows _
:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, _
AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, _
AllowUsingPivotTables:=True
Attention : "ActiveSheet.Protect" permet de protéger la feuille sélectionnée le reste sont les restriction à mettre en place (type sélection de cellule vérouillée, etc.)
--
Bonjour Borisdu59,
Je vous remercie pour votre aide, j'ai insere l'instruction, voici ce que j'ai:
Une partie du probleme a ete resolu, lorsque je decide de cacher les cellules, le mail est envoye sans le contenu, des que je le rend visible, il apparait dans le mail. est il possible d'avoir une instruction pour rendre visible la plage de cellule selectionnee momentanement.
Si vous avez d'autres suggestions, je vous remercie d'avance.
Je vous remercie pour votre aide, j'ai insere l'instruction, voici ce que j'ai:
Private Sub CommandButton1_Click()
'Select the range of cells on the active worksheet.
'Procédure de sélection d'une plage de cellules dans une autre feuille de calcul du même classeur.
Sheets("Confidential").Activate
ActiveSheet.Unprotect "Admin" 'deverouiller provisoirement le mot de passe
ActiveSheet.Range("C31:F42").Select
ActiveWorkbook.EnvelopeVisible = True ' Show the envelope on the ActiveWorkbook.
'Set the optional introduction
With ActiveSheet.MailEnvelope
.Introduction = "This is your result for the weekly quiz based on DTR Standards."
.Item.To = Range("G60")
.Item.Cc = "CLorbo@slb.com" 'In Cc
.Item.Subject = "Feedback_Quiz_Evaluation-BDTSQ" 'Subject lines.
.Item.Send 'Finally the message is sent.
End With
ActiveSheet.Protect "Admin", DrawingObjects:=False, Contents:=True, Scenarios:=False, AllowFormattingCells:=True, AllowFormattingColumns:=True, AllowFormattingRows:=True, AllowInsertingColumns:=True, AllowInsertingRows:=True, AllowInsertingHyperlinks:=True, AllowDeletingColumns:=True, AllowDeletingRows:=True, AllowSorting:=True, AllowFiltering:=True, AllowUsingPivotTables:=True
End Sub
Une partie du probleme a ete resolu, lorsque je decide de cacher les cellules, le mail est envoye sans le contenu, des que je le rend visible, il apparait dans le mail. est il possible d'avoir une instruction pour rendre visible la plage de cellule selectionnee momentanement.
Si vous avez d'autres suggestions, je vous remercie d'avance.
Bonjour
Avec le mot de passe écrit dans le code, la confidentialité ne semblerait pas être assurée...
Avec le mot de passe écrit dans le code, la confidentialité ne semblerait pas être assurée...
Bonjour
Le principe serait de demander le mot de passe à l'ouverture du classeur la feuille "secrète" étant en "veryhidden"
pour qu'un petit curieux ne puisse voir ce mot de passe tu peux le crypter: le petit curieux verra la clé mais pas le mot. vous pouvez être plusieurs avec chacun votre mot de passe
je fais des fouilles archéologiques dans mon disque dur et t'envoie un exemple à adapter
Le principe serait de demander le mot de passe à l'ouverture du classeur la feuille "secrète" étant en "veryhidden"
pour qu'un petit curieux ne puisse voir ce mot de passe tu peux le crypter: le petit curieux verra la clé mais pas le mot. vous pouvez être plusieurs avec chacun votre mot de passe
je fais des fouilles archéologiques dans mon disque dur et t'envoie un exemple à adapter
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re
la clé de cryptage est basée sur "XL-2345" que tu peux changer à ta guise dans les 2 classeurs
sur le classeur administrateur:
en tapant ton pseudo ou ce que tu veux tu obtiens le mot de passe (nota: ca reste quand même naïf puisqu'on se base sur l'additions des codes ascii --> "toto"="otto"); classeur à enregistrer sur clé USB si parano et/ou ambiance dans la boite!
Sur le classeur utilisateur:
l'utilisateur pour accéder au classeur doit taper ton pseudo et ton mot de passe dans un textbox ( pour camoufler le mdp par des étoiles)
dans cette maquette-démo le code exact marque "gagné" avec la voix de Coluche.
Le petit curieux peut voir le code avec la clé mais comme il ne connait ni ton pseudo ni ton code...
A toi alors de l'adapter pour accéder à ta feuille "secrète" (passer de veryhidden à visible ?)
Il serait à installer sur ta feuille publique à mettre dans un coin peut-être dans des colonnes masquées. à toi de voir
de même mettre un mdp pour l'accès aux feuilles VBA et voir si encore utile de protéger la feuille secrète
La bête:
http://www.cjoint.com/c/FBniFOXktwr
Michel
la clé de cryptage est basée sur "XL-2345" que tu peux changer à ta guise dans les 2 classeurs
sur le classeur administrateur:
en tapant ton pseudo ou ce que tu veux tu obtiens le mot de passe (nota: ca reste quand même naïf puisqu'on se base sur l'additions des codes ascii --> "toto"="otto"); classeur à enregistrer sur clé USB si parano et/ou ambiance dans la boite!
Sur le classeur utilisateur:
l'utilisateur pour accéder au classeur doit taper ton pseudo et ton mot de passe dans un textbox ( pour camoufler le mdp par des étoiles)
dans cette maquette-démo le code exact marque "gagné" avec la voix de Coluche.
Le petit curieux peut voir le code avec la clé mais comme il ne connait ni ton pseudo ni ton code...
A toi alors de l'adapter pour accéder à ta feuille "secrète" (passer de veryhidden à visible ?)
Il serait à installer sur ta feuille publique à mettre dans un coin peut-être dans des colonnes masquées. à toi de voir
de même mettre un mdp pour l'accès aux feuilles VBA et voir si encore utile de protéger la feuille secrète
La bête:
http://www.cjoint.com/c/FBniFOXktwr
Michel
Bonjour Michel,
Je vous remercie pour le fichier, j'ai bien aime et cela me donne des idees pour mon prochain projet, formidable vous etes.
J'ai trouve une autre methode et simple pour empecher de visualiser le Code
protéger le code VBA :D
1 - Ouvrir VBE (Alt + F11)
2 - Se placer sur le projet VBA du classeur
C'est du style : VBAProject(Classeur1)
Si la fenêtre des projets n'est pas visible, il suffit de cliquer sur le menu Affichage > Explorateur de projets.
3 - Faire un clic droit et choisir "Propriétés de VBAProject..."
4 - Cliquer sur l'onglet "Protection"
5 - Cocher la case "Verrouiller le projet pour affichage"
6 - Mettre un mot de passe (le répéter dans les 2 textbox) et cliquer sur OK
A la prochaine ouverture du classeur le code VBA sera protégé par le mot de passe.
Je vous remercie pour le fichier, j'ai bien aime et cela me donne des idees pour mon prochain projet, formidable vous etes.
J'ai trouve une autre methode et simple pour empecher de visualiser le Code
protéger le code VBA :D
1 - Ouvrir VBE (Alt + F11)
2 - Se placer sur le projet VBA du classeur
C'est du style : VBAProject(Classeur1)
Si la fenêtre des projets n'est pas visible, il suffit de cliquer sur le menu Affichage > Explorateur de projets.
3 - Faire un clic droit et choisir "Propriétés de VBAProject..."
4 - Cliquer sur l'onglet "Protection"
5 - Cocher la case "Verrouiller le projet pour affichage"
6 - Mettre un mot de passe (le répéter dans les 2 textbox) et cliquer sur OK
A la prochaine ouverture du classeur le code VBA sera protégé par le mot de passe.
je vais être plus précis pour détailler mon problème qui persiste. Lorsque vous cachez une cellule (colonne/ligne) ou encore une feuille excel, tous les codes, instructions ne marchent plus. par exemple, j'utilise un code pour afficher les données qui sont sur une plage de cellules sélectionnées, une fois cachée, les données ne sont plus visibles ni exploitable mais la macro s’exécute.
Y a t-il un moyen d'exploiter les données qui sont sur une feuille excel cachée?
Y a t-il un moyen d'exploiter les données qui sont sur une feuille excel cachée?
J’ai trouvé une alternative bien que cela ne soit pas parfait. J’ai rendu visible et active la feuille contenant les informations dont j’ai besoin,
ensuite le mail est envoyé avec les éléments dont j'ai besoin.
Apres je cache la feuille et je rends visible une autre.
Je persiste à croire qu’il y a un moyen plus simple que celui-ci.
Je vous remercie pour toutes vos lumières.
Sheets("Confidential").Visible = True
Sheets("Confidential").Activate
ensuite le mail est envoyé avec les éléments dont j'ai besoin.
Apres je cache la feuille et je rends visible une autre.
Sheets("Confidential").Visible = xlSheetVeryHidden
Sheets("Activation").Visible = -1
Je persiste à croire qu’il y a un moyen plus simple que celui-ci.
Je vous remercie pour toutes vos lumières.