Compteur automatisé dans useform

moustic54

XLDnaute Occasionnel
Re : Compteur automatisé dans useform

Oui Martial, c'est bien le fichier du post #95 dont il s'agit.
Et dès le post #96 , je t'indiquais
Un autre message lors du clic sur l'image
Erreur d'exécution 9 : L'indice n'appartient pas à la sélection
Erreur qui renvoie à la ligne de code : MotDePasse.Show
Voilà pourquoi j'ai fait ces essais avec Private Sub Workbook_Open()

Pour ma part, je suis sur Excel 2007. Tu crois que cela vient de là ? :confused:
 
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Compteur automatisé dans useform

As-tu testé ce que j'ai mis au post précédent ?

Bon vu l'heure on verra ça demain !!!

Bonne nuit
 

Yaloo

XLDnaute Barbatruc
Re : Compteur automatisé dans useform

As-tu testé ce que j'ai mis au post précédent ?

Bon vu l'heure on verra ça demain !!!

Bonne nuit
 

moustic54

XLDnaute Occasionnel
Re : Compteur automatisé dans useform

Bonjour Martial

1er test : Remplacer Rounded Rectangle par Rectangle à coins arrondis avec un espace après arrondis ou
en l'écrivant Rectangleàcoinsarrondis ne solutionne pas le problème.
Message d'erreur toujours présent à l'ouverture du fichier (cf. image jointe) :confused: :confused:

2eme test : la mise en veille des lignes portant sur les rectangles supprime le message d'erreur à l'ouverture.
Mais toujours impossible d'ouvrir l'USF Mot de passe en cliquant sur l'image.
J'ai fait un essai en associant l'USF à un commandbutton mais là aussi toujours message d'erreur. :confused: :confused:

Je te joins ton fichier modifié selon tes recommandations ainsi que les 2 messages d'erreur.
C'est à n'y rien comprendre :confused::confused:
 

Fichiers joints

Yaloo

XLDnaute Barbatruc
Re : Compteur automatisé dans useform

Bonjour Moustic, le forum,

Je pense qu'il y a un problème sur la sélection des "Rectangles arrondis".
On va faire un test avec l'enregistreur de macro.
Lorsque l'enregistreur de macro est lancé, tu sélectionnes un "Rectangle Arrondi" puis tu changes le nom du rectangle (tu peux mettre n'importe quoi) puis tu arrêtes l'enregistreur et tu nous mets la macro dans ton prochain post.

A te relire

Martial
 

moustic54

XLDnaute Occasionnel
Re : Compteur automatisé dans useform

Re,

Mission accomplie mais Martial, je n'ai pas grand chose à te copier dans ce post.
Tu pourras voir par toi-même, je te joins le fichier sur lesquels figurent 3 test de macro :confused:
 

Fichiers joints

Yaloo

XLDnaute Barbatruc
Re : Compteur automatisé dans useform

Re,

Ce que je voulais, c'est voir lorsque tu sélectionnes l'image, ce qui est écrit dans la macro pour sélectionner l'image.

Un autre test avec le fichier ci-dessous

A+
 

Fichiers joints

moustic54

XLDnaute Occasionnel
Re : Compteur automatisé dans useform

Re,

Il ne se passe pas grand chose justement lors de l'enregistrement de la macro nommée ici pour l'occasion : TEST_iMAGE :confused: :confused:
Au moment de l'enregistrement, je ne peux pas cliquer dessus, j'ai donc fait le test (après avoir sélectionné l'image)
suivant :
1 . sélection de l'image
2. clic droit puis affecter une macro.

Ci-dessous la retranscription de l'enregistreur de macro
Sub TEST_iMAGE()
'
' TEST_iMAGE Macro
'
Selection.OnAction = "Image1_Clic"
End Sub
Pour information, sache qu'à l'ouverture du fichier j'ai eu un nouveau message d'erreur (cf. image) :(
 

Fichiers joints

Yaloo

XLDnaute Barbatruc
Re : Compteur automatisé dans useform

Pour enregistrer la macro :
- tu lances l'enregistreur
- puis pour sélectionner ton rectangle tu fais Ctrl + clic gauche, ton rectangle sera alors sélectionné, tu changes la couleur ou le texte du bouton
- tu postes la macro

A+
 

moustic54

XLDnaute Occasionnel
Re : Compteur automatisé dans useform

Martial

Je t'assure, je sais le faire.
C'est la manip. que j'ai d'ailleurs employée mais il n'en demeure pas moins que depuis le fichier
il n'enregistre rien :( :(

Résultats de la macro pour l'image
Sub testimage()
'
' testimage Macro
'End Sub


Résultats de la macro pour le rectangle
Sub testrestangle()
' testrestangle Macro
' Range("I6").Select
End Sub

J'ai essayé sur 2 postes différents équipés d'Excel 2007 et le résultat est identique : pas plus de lignes de commandes dans la macro enregistrée :confused: :confused:
C'est à y perdre son latin.

Penses-tu qu'en renommant chaque rectangle ex: BOUT1, BOUT2, etc
il y aurait un moyen de contourner le problème ?

Ou puisque l'action depuis ces rectangles se fait par clic, n'est-il pas possible d'annuler cette possibilité (rendre inactif clic sur bouton) en fonction de l'utilisateur ?
Ces propositions vont te paraitre sans doute stupides :eek:
mais je ne m'explique pas le pourquoi de ses dysfonctionnements de boutons comme de lancement de l'USF.
 
Dernière édition:

moustic54

XLDnaute Occasionnel
Re : Compteur automatisé dans useform

Martial,

Voici le résultat de l'enregistrement de macro avec Excel 2010

Code:
Sub Macro2()
'
' Macro2 Macro
'


'
    ActiveSheet.Shapes.Range(Array("Rounded Rectangle 14")).Select
    Selection.ShapeRange(1).TextFrame2.TextRange.Characters.Text = "Moi même"
    With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 8). _
        ParagraphFormat
        .BaselineAlignment = msoBaselineAlignAuto
        .SpaceWithin = 1
        .SpaceBefore = 0
        .SpaceAfter = 0
        .FirstLineIndent = 0
        .Alignment = msoAlignCenter
        .HangingPunctuation = msoTrue
    End With
    With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(1, 3).Font
        .NameComplexScript = "+mn-cs"
        .NameFarEast = "+mn-ea"
        .Fill.Visible = msoTrue
        .Fill.ForeColor.ObjectThemeColor = msoThemeColorLight1
        .Fill.ForeColor.TintAndShade = 0
        .Fill.ForeColor.Brightness = 0
        .Fill.Transparency = 0
        .Fill.Solid
        .Size = 11
        .Name = "+mn-lt"
    End With
    With Selection.ShapeRange(1).TextFrame2.TextRange.Characters(4, 5).Font
        .BaselineOffset = 0
        .NameComplexScript = "+mn-cs"
        .NameFarEast = "+mn-ea"
        .Fill.Visible = msoTrue
        .Fill.ForeColor.ObjectThemeColor = msoThemeColorLight1
        .Fill.ForeColor.TintAndShade = 0
        .Fill.ForeColor.Brightness = 0
        .Fill.Transparency = 0
        .Fill.Solid
        .Size = 11
        .Name = "+mn-lt"
    End With
    Range("F4").Select
End Sub
2. Voici le résultat de l'enregistrement de macro avec Excel 2010 pour l'image

Code:
  Sub Macro3()
'
' Macro3 Macro
'

'
    ActiveSheet.Shapes.Range(Array("Picture 1")).Select
    Range("L9").Select
End Sub
 
Dernière édition:

Yaloo

XLDnaute Barbatruc
Re : Compteur automatisé dans useform

Bonsoir Moustic, le forum,

Sur ton PC avec Excel 2010 le fichier fonctionne ou pas ?

A+
 

moustic54

XLDnaute Occasionnel
Re : Compteur automatisé dans useform

Bonsoir Martial

Pour répondre à ta question : non
J'ai toujours les mêmes messages d'erreur que ceux postés en #104 :(
Mais je continue à chercher et je pense que je vais finir par trouver les bonnes formules.
En revanche cela risque de ne pas être très académique aussi, si cela ne te dérange pas, je viendrais te demander comment mettre le tout à la sauce Excel :eek:
 

Yaloo

XLDnaute Barbatruc
Re : Compteur automatisé dans useform

Bonsoir Moustic, le forum,

Oui, n'hésites pas si je peux t'aider, mais actuellement avec ton soucis je ne vois pas trop, puisque chez moi ça fonctionne correctement.

A+
 

moustic54

XLDnaute Occasionnel
Re : Compteur automatisé dans useform

Bonsoir Martial

Pourrais tu m'expliquer, s'il te plait, la partie du code placé dans USF mot de passe ?

Comment peux-tu savoir quel sera le bouton actif pour le niveau donné ou plus exactement comment savons-nous que
le niveau 1 active tous les commandButtons,
le niveau 2 permet d'activer tous les commandbuttons sauf le commandButton 21
le niveau 3 active les commandbutton 22 à 24 .....


Code:
Private Sub CommandButton1_Click() 'Valider
Dim Ws As Worksheet, Utilisateur$, j&
Application.ScreenUpdating = 0
If TextBox2 = ComboBox1.Column(1) Then
    
  If ComboBox1.Column(2) = "Niveau 1" Then
      j = 3
  
      'Call Affiche_tt_Feuilles
    ElseIf ComboBox1.Column(2) = "Niveau 2" Then j = 2
    ElseIf ComboBox1.Column(2) = "Niveau 3" Then j = 1
    ElseIf ComboBox1.Column(2) = "Niveau 4" Then GoTo Suite
  End If
 Else
  MsgBox "Le mot de passe n'est pas correcte"
  TextBox2.SetFocus
  Exit Sub
End If
For i = 0 To j
  Sheets(1).Shapes("CommandButton" & Bt(i)).Select
  Selection.Enabled = -1
Next
Suite:
[A1].Activate
Unload Me
Application.ScreenUpdating = -1
End Sub
 

Yaloo

XLDnaute Barbatruc
Re : Compteur automatisé dans useform

Salut Moustic, le forum,

Tu as remarqué que tu n'utilisais pas le dernier fichier que j'ai fourni au post #107 !!!!
Je te répond sur la macro dans ton dernier post

VB:
Private Sub CommandButton1_Click() 'Valider
'Déclaration des variables
 Dim Ws As Worksheet, Utilisateur$, j&
'Mise à jour de l'écran non validée
 Application.ScreenUpdating = 0
'Si le TextBox2 = la Colonne 2 du ComboBox1 (puisque nous avons un ComboBox1 multi colonne)
 If TextBox2 = ComboBox1.Column(1) Then
   'Si la 3ème colonne du ComboBox1 correspond à "Niveau 1", alors ...
   If ComboBox1.Column(2) = "Niveau 1" Then
       'j = 3 correspond à la totalité des actions
       j = 3
       'Lorsque ce n'est pas mis en commentaire comme tu l'as fais, ça affiche toutes les feuilles
       'Call Affiche_tt_Feuilles
     'Si la 3ème colonne du ComboBox1 correspond à "Niveau 2", alors ... j = 2
     ElseIf ComboBox1.Column(2) = "Niveau 2" Then j = 2
     'Idem ci-dessus
     ElseIf ComboBox1.Column(2) = "Niveau 3" Then j = 1
     ElseIf ComboBox1.Column(2) = "Niveau 4" Then GoTo Suite
   End If
  Else 'Sinon mot de passe incorrecte
   MsgBox "Le mot de passe n'est pas correcte"
   TextBox2.SetFocus
   Exit Sub
 End If
'Lorsque nous avons définit le j, nous pouvons afficher les boutons
 For i = 0 To j 'De 0 à j (soit 1, 2, 3 ou 4)
   'Bt est un tableau ou array définit au lancement du fichier et déclaré en variable Public (donc accessible à tout moment)
   'Nous sélectionnons le bouton en question
   Sheets(1).Shapes("CommandButton" & Bt(i)).Select
   'Puis nous lui donnons la valeur Vrai 
   Selection.Enabled = -1
 Next
 Suite:
 [A1].Activate
 Unload Me
 Application.ScreenUpdating = -1
 End Sub
Dans la dernière version celle du post #107 il y a 2 array : 1 pour les boutons et 1 pour les Rectangles arrondis

A+

Martial
 

moustic54

XLDnaute Occasionnel
Re : Compteur automatisé dans useform

Bonsoir Martial

Merci pour ces explications.
En effet, je n'ai pas repris le code de ton post #107 parce que n'ayant trouvé l'origine des nombreux messages d'erreur.

J'ai fait de nouvelles tentatives :

A l'ouverture du fichier j'ai réussi à obtenir : depuis Private Sub Workbook_Open()

- Affichage de l'onglet "EDITO" (feuille protégée pour éviter de se promener de cellules en cellules)
- CommandButtons affichés mais non actifs
- Tous les rectangles arrondis masqués
- Affichage de l'USF Mot de passe
- Et le placement dans la cellule N13

J'ai ajouté également 2 images sur le feuille : l'une pour que tout utilisateur puisse verrouiller et obtenir l'affichage initial d'ouverture de fichier sans être obligé de fermer puis d'ouvrir à nouveau (exemple de l'utilisateur 4 qui voudrait passer en utilisateur 1)
L'autre pour afficher à nouveau l'USF Mot de passe.

Et le tout sans le moindre message d'erreur :)

Mais maintenant je vais devoir revoir les codes de l'USF Mot de passe en conséquence et là c'est de nouveau la catastrophe :confused: :confused:

Rendre actifs certains comandbuttons et afficher les rectangles masqués selon le niveau de l'utilisateur

Je ne sais pas par quel bout prendre mon problème. :confused:

Si tu as une idée je veux bien :eek:
 

Yaloo

XLDnaute Barbatruc
Re : Compteur automatisé dans useform

Bonsoir Moustic, le forum,

Tu peux mettre ton fichier, comme ça on va voir l'avancé de tes travaux :)
Quand tu dis que ta feuille EDITO est protégée, elle l'était aussi lorsque tu faisais les tests avec mon fichier ? Car si oui, cela vient peut-être de là.

A+
 

Discussions similaires


Haut Bas