Graphique et formule VBA
Résolu/Fermé
Darkam1
Messages postés
170
Date d'inscription
mardi 9 août 2011
Statut
Membre
Dernière intervention
22 février 2016
-
9 janv. 2012 à 15:09
Darkam1 Messages postés 170 Date d'inscription mardi 9 août 2011 Statut Membre Dernière intervention 22 février 2016 - 11 janv. 2012 à 09:59
Darkam1 Messages postés 170 Date d'inscription mardi 9 août 2011 Statut Membre Dernière intervention 22 février 2016 - 11 janv. 2012 à 09:59
A voir également:
- Graphique et formule VBA
- Formule excel - Guide
- Formule si et - Guide
- Formule moyenne excel - Guide
- Changer carte graphique - Guide
- Formule excel pour additionner plusieurs cellules - Guide
19 réponses
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 10/01/2012 à 10:40
Modifié par lermite222 le 10/01/2012 à 10:40
Re,
ton classeur en retour
Remarques :
Tu n'a aucun contrôle sur le nombre de fois que l'ont a cliquer.
Ce n'est pas fort ergonomique.
C'est inutile de travailler avec un zoom, vaux mieux travailler en normal et quand c'est terminer éventuellement jouer sur le zoom.
Pour le type d'application que tu fais, tu pourrais t'intéresser à cette démo
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
ton classeur en retour
Remarques :
Tu n'a aucun contrôle sur le nombre de fois que l'ont a cliquer.
Ce n'est pas fort ergonomique.
C'est inutile de travailler avec un zoom, vaux mieux travailler en normal et quand c'est terminer éventuellement jouer sur le zoom.
Pour le type d'application que tu fais, tu pourrais t'intéresser à cette démo
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 10/01/2012 à 11:11
Modifié par lermite222 le 10/01/2012 à 11:11
C'est employer pour enlever la croix rouge du formulaire et ainsi obliger l'utilisateur à quitter par le bouton.
Pour que ça fonctionne en 64 faut changer dans les déclarations d'API..
Long par Integer
Exemple :
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Pour que ça fonctionne en 64 faut changer dans les déclarations d'API..
Long par Integer
Exemple :
Declare Function GetWindowLongA Lib "user32" _ (ByVal hwnd As Integer, ByVal nIndex As Integer) As Integer
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Darkam1
Messages postés
170
Date d'inscription
mardi 9 août 2011
Statut
Membre
Dernière intervention
22 février 2016
18
10 janv. 2012 à 11:14
10 janv. 2012 à 11:14
Ok, je regarde ça. Merci bien. Et bonne journée
Darkam1
Messages postés
170
Date d'inscription
mardi 9 août 2011
Statut
Membre
Dernière intervention
22 février 2016
18
9 janv. 2012 à 16:19
9 janv. 2012 à 16:19
J'ai trouvé pour les deuxième et le troisième problème.
Le deuxième il suffisait d'inverser les cellules dans la formule (en cliquant sur le losange rouge).
Pour la troisième il suffisait de modifier "L'axe vertical coupe" (dans options d'axe)
Et de saisir une valeur négatif a l'axe (-20) pour ma part. L'automatique n'est pas en mesure de répondre forcément a nos besoins...
Une solution pour ma première question... ?
Le deuxième il suffisait d'inverser les cellules dans la formule (en cliquant sur le losange rouge).
Pour la troisième il suffisait de modifier "L'axe vertical coupe" (dans options d'axe)
Et de saisir une valeur négatif a l'axe (-20) pour ma part. L'automatique n'est pas en mesure de répondre forcément a nos besoins...
Une solution pour ma première question... ?
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
Modifié par lermite222 le 9/01/2012 à 16:44
Modifié par lermite222 le 9/01/2012 à 16:44
Bonjour,
Tu n'est pas dans la bonne sub.. faut mettre dans WorkSheet_Change
Edit : Mais c'est pas tout, ça ne marchera pas comme tu fais, je reviens avec une solution.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Tu n'est pas dans la bonne sub.. faut mettre dans WorkSheet_Change
Private Sub Worksheet_Change(ByVal Target As Range) End Sub
Edit : Mais c'est pas tout, ça ne marchera pas comme tu fais, je reviens avec une solution.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Darkam1
Messages postés
170
Date d'inscription
mardi 9 août 2011
Statut
Membre
Dernière intervention
22 février 2016
18
9 janv. 2012 à 16:47
9 janv. 2012 à 16:47
Ca ne fonctionne pas.
J'ai changé la formule, mais Excel m'a fait un Mega bug (Il s'est mis sélectionné toutes les cases dues a la fonction "Target")..
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$D$16,$D$23,$D$31,$D$39,$D$47,$D$52" Then Range("D56") = Range("D56") + 0
Range("D16,D23,D31,D39,D47,D52").Select
If Target.Address = "$D$29,$D$30,$D$38,$D$46" Then Range("D56") = Range("D56") + 1
Range("D29,D30,D38,D46").Select
If Target.Address = "$D$15,$D$22,$D$28,$D$37,$D$45,$D$51" Then Range("D56") = Range("D56") + 2
Range("D15,D22,D28,D37,D45,D51").Select
If Target.Address = "$D$14,$D$21,$D$36,$D$44" Then Range("D56") = Range("D56") + 3
Range("D14,D21,D36,D44").Select
If Target.Address = "$D$17,$D$24,$D$32,$D$40,$D$53" Then Range("D56") = Range("D56") - 1
Range("D17,D24,D32,D40,D53").Select
If Target.Address = "$D$18,$D$25,$D$33,$D$41,$D$48,$D$54" Then Range("D56") = Range("D56") - 2
Range("D18,D25,D33,D41,D48,D54").Select
End Sub
Une solution ? Possibilité de faire une boucle plutôt que du gavage de IF ?
J'ai changé la formule, mais Excel m'a fait un Mega bug (Il s'est mis sélectionné toutes les cases dues a la fonction "Target")..
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Address = "$D$16,$D$23,$D$31,$D$39,$D$47,$D$52" Then Range("D56") = Range("D56") + 0
Range("D16,D23,D31,D39,D47,D52").Select
If Target.Address = "$D$29,$D$30,$D$38,$D$46" Then Range("D56") = Range("D56") + 1
Range("D29,D30,D38,D46").Select
If Target.Address = "$D$15,$D$22,$D$28,$D$37,$D$45,$D$51" Then Range("D56") = Range("D56") + 2
Range("D15,D22,D28,D37,D45,D51").Select
If Target.Address = "$D$14,$D$21,$D$36,$D$44" Then Range("D56") = Range("D56") + 3
Range("D14,D21,D36,D44").Select
If Target.Address = "$D$17,$D$24,$D$32,$D$40,$D$53" Then Range("D56") = Range("D56") - 1
Range("D17,D24,D32,D40,D53").Select
If Target.Address = "$D$18,$D$25,$D$33,$D$41,$D$48,$D$54" Then Range("D56") = Range("D56") - 2
Range("D18,D25,D33,D41,D48,D54").Select
End Sub
Une solution ? Possibilité de faire une boucle plutôt que du gavage de IF ?
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
9 janv. 2012 à 17:03
9 janv. 2012 à 17:03
Comme ça ça va aller.. :-)
A+
Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column <> 4 Then Exit Sub 'éviter toutes les autres cellules. If Not Intersect(Target, Union([D16], [D23], [D31], [D39], [D47], [D52])) Is Nothing Then '????????????????? à quoi ça sert Range("D56") = Range("D56") + 0 ElseIf Not Intersect(Target, Union([D29], [D30], [D38], [D46])) Is Nothing Then [D56] = [56] + 1 ElseIf Not Intersect(Target, Union([D15], [D22], [D28], [D37], [D45], [D51])) Is Nothing Then [D56] = [D56] + 2 ElseIf Not Intersect(Target, Union([D14], [D21], [D36], [D44])) Is Nothing Then [D56] = [D56] + 3 ElseIf Not Intersect(Target, Union([D17], [D24], [D32], [D40], [D53])) Is Nothing Then [D56] = [D56] - 1 ElseIf Not Intersect(Target, Union([D18], [D25], [D33], [D41], [D48], [D54])) Is Nothing Then [D56] = [D56] - 2 End If End Sub
A+
Darkam1
Messages postés
170
Date d'inscription
mardi 9 août 2011
Statut
Membre
Dernière intervention
22 février 2016
18
9 janv. 2012 à 17:39
9 janv. 2012 à 17:39
Un très grand merci "Lermite222". Excellent travail.
A bientôt.
A bientôt.
Darkam1
Messages postés
170
Date d'inscription
mardi 9 août 2011
Statut
Membre
Dernière intervention
22 février 2016
18
9 janv. 2012 à 17:58
9 janv. 2012 à 17:58
J'ai voulu faire comme toi mais cela ne fonctionne pas... (J'ai voulu faire le total ATOUT)..
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 4 Then Exit Sub 'éviter toutes les autres cellules.
If Not Intersect(Target, Union([D16], [D23], [D31], [D39], [D47], [D52])) Is Nothing Then
ElseIf Not Intersect(Target, Union([D29], [D30], [D38], [D46])) Is Nothing Then
[D56] = [D56] + 1
ElseIf Not Intersect(Target, Union([D15], [D22], [D28], [D37], [D45], [D51])) Is Nothing Then
[D56] = [D56] + 2
ElseIf Not Intersect(Target, Union([D14], [D21], [D36], [D44])) Is Nothing Then
[D56] = [D56] + 3
ElseIf Not Intersect(Target, Union([D17], [D24], [D32], [D40], [D53])) Is Nothing Then
[D56] = [D56] - 1
ElseIf Not Intersect(Target, Union([D18], [D25], [D33], [D41], [D48], [D54])) Is Nothing Then
[D56] = [D56] - 2
If Not Intersect(Target, Union([I17], [I31], [I37], [I44], [I48])) Is Nothing Then
ElseIf Not Intersect(Target, Union([I16], [I22], [I30], [I36], [I43])) Is Nothing Then
[I56] = [I56] + 1
ElseIf Not Intersect(Target, Union([I15], [I29], [I42])) Is Nothing Then
[I56] = [I56] + 2
ElseIf Not Intersect(Target, Union([I14], [I21], [I28], [I35], [I41])) Is Nothing Then
[I56] = [I56] + 3
ElseIf Not Intersect(Target, Union([I24], [I32], [I45])) Is Nothing Then
[I56] = [I56] - 2
ElseIf Not Intersect(Target, Union([I49])) Is Nothing Then
[I56] = [I56] - 5
End If
End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column <> 4 Then Exit Sub 'éviter toutes les autres cellules.
If Not Intersect(Target, Union([D16], [D23], [D31], [D39], [D47], [D52])) Is Nothing Then
ElseIf Not Intersect(Target, Union([D29], [D30], [D38], [D46])) Is Nothing Then
[D56] = [D56] + 1
ElseIf Not Intersect(Target, Union([D15], [D22], [D28], [D37], [D45], [D51])) Is Nothing Then
[D56] = [D56] + 2
ElseIf Not Intersect(Target, Union([D14], [D21], [D36], [D44])) Is Nothing Then
[D56] = [D56] + 3
ElseIf Not Intersect(Target, Union([D17], [D24], [D32], [D40], [D53])) Is Nothing Then
[D56] = [D56] - 1
ElseIf Not Intersect(Target, Union([D18], [D25], [D33], [D41], [D48], [D54])) Is Nothing Then
[D56] = [D56] - 2
If Not Intersect(Target, Union([I17], [I31], [I37], [I44], [I48])) Is Nothing Then
ElseIf Not Intersect(Target, Union([I16], [I22], [I30], [I36], [I43])) Is Nothing Then
[I56] = [I56] + 1
ElseIf Not Intersect(Target, Union([I15], [I29], [I42])) Is Nothing Then
[I56] = [I56] + 2
ElseIf Not Intersect(Target, Union([I14], [I21], [I28], [I35], [I41])) Is Nothing Then
[I56] = [I56] + 3
ElseIf Not Intersect(Target, Union([I24], [I32], [I45])) Is Nothing Then
[I56] = [I56] - 2
ElseIf Not Intersect(Target, Union([I49])) Is Nothing Then
[I56] = [I56] - 5
End If
End Sub
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
9 janv. 2012 à 18:56
9 janv. 2012 à 18:56
Supprime ces lignes..
Et change la suivante
par
Les 3 lignes du dessus servent à rien.
If Target.Column <> 4 Then Exit Sub 'éviter toutes les autres cellules. If Not Intersect(Target, Union([D16], [D23], [D31], [D39], [D47], [D52])) Is Nothing Then
Et change la suivante
ElseIf Not Intersect(Target, Union([D29], [D30], [D38], [D46])) Is Nothing Then
par
If Not Intersect(Target, Union([D29], [D30], [D38], [D46])) Is Nothing Then
Les 3 lignes du dessus servent à rien.
Darkam1
Messages postés
170
Date d'inscription
mardi 9 août 2011
Statut
Membre
Dernière intervention
22 février 2016
18
10 janv. 2012 à 09:45
10 janv. 2012 à 09:45
Malgrès la suppresion des lignes, cela ne fonctionne toujours pas. Pourtant j'ai suivi a la les lettres tes indications. De plus pour la note "ATOUT", j'ai enlevé la ligne qui stipulé de ne pas réagir face au +0. Il est vrai qu'elle ne servait pas a grand chose.
Voici mon code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union([D29], [D30], [D38], [D46])) Is Nothing Then
[D56] = [D56] + 1
ElseIf Not Intersect(Target, Union([D15], [D22], [D28], [D37], [D45], [D51])) Is Nothing Then
[D56] = [D56] + 2
ElseIf Not Intersect(Target, Union([D14], [D21], [D36], [D44])) Is Nothing Then
[D56] = [D56] + 3
ElseIf Not Intersect(Target, Union([D17], [D24], [D32], [D40], [D53])) Is Nothing Then
[D56] = [D56] - 1
ElseIf Not Intersect(Target, Union([D18], [D25], [D33], [D41], [D48], [D54])) Is Nothing Then
[D56] = [D56] - 2
If Not Intersect(Target, Union([I16], [I22], [I30], [I36], [I43])) Is Nothing Then
[I56] = [I56] + 1
ElseIf Not Intersect(Target, Union([I15], [I29], [I42])) Is Nothing Then
[I56] = [I56] + 2
ElseIf Not Intersect(Target, Union([I14], [I21], [I28], [I35], [I41])) Is Nothing Then
[I56] = [I56] + 3
ElseIf Not Intersect(Target, Union([I24], [I32], [I45])) Is Nothing Then
[I56] = [I56] - 2
ElseIf Not Intersect(Target, Union([I49])) Is Nothing Then
[I56] = [I56] - 5
End If
End Sub
Et voici le fichier qui comprend le code et l'erreur
: https://www.cjoint.com/?BAkjS2MwBxg
Merci
Voici mon code :
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Union([D29], [D30], [D38], [D46])) Is Nothing Then
[D56] = [D56] + 1
ElseIf Not Intersect(Target, Union([D15], [D22], [D28], [D37], [D45], [D51])) Is Nothing Then
[D56] = [D56] + 2
ElseIf Not Intersect(Target, Union([D14], [D21], [D36], [D44])) Is Nothing Then
[D56] = [D56] + 3
ElseIf Not Intersect(Target, Union([D17], [D24], [D32], [D40], [D53])) Is Nothing Then
[D56] = [D56] - 1
ElseIf Not Intersect(Target, Union([D18], [D25], [D33], [D41], [D48], [D54])) Is Nothing Then
[D56] = [D56] - 2
If Not Intersect(Target, Union([I16], [I22], [I30], [I36], [I43])) Is Nothing Then
[I56] = [I56] + 1
ElseIf Not Intersect(Target, Union([I15], [I29], [I42])) Is Nothing Then
[I56] = [I56] + 2
ElseIf Not Intersect(Target, Union([I14], [I21], [I28], [I35], [I41])) Is Nothing Then
[I56] = [I56] + 3
ElseIf Not Intersect(Target, Union([I24], [I32], [I45])) Is Nothing Then
[I56] = [I56] - 2
ElseIf Not Intersect(Target, Union([I49])) Is Nothing Then
[I56] = [I56] - 5
End If
End Sub
Et voici le fichier qui comprend le code et l'erreur
: https://www.cjoint.com/?BAkjS2MwBxg
Merci
Darkam1
Messages postés
170
Date d'inscription
mardi 9 août 2011
Statut
Membre
Dernière intervention
22 février 2016
18
10 janv. 2012 à 10:59
10 janv. 2012 à 10:59
Merci à toi pour ce retour.
J'ai eu un peu de mal à comprendre ton code. Mais finalement, je crois avoir compris.
Merci d'avoir pris le temps de me comprendre et de me répondre.
La démo que tu as faite n'est pas disponible pour les versions 64 bits ? Je tente de voir ce que fait la suppression de ce code :
'pour enlever la croix rouge d'un UF
Declare Function GetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Declare Function SetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Encore un grand merci.
J'ai eu un peu de mal à comprendre ton code. Mais finalement, je crois avoir compris.
Merci d'avoir pris le temps de me comprendre et de me répondre.
La démo que tu as faite n'est pas disponible pour les versions 64 bits ? Je tente de voir ce que fait la suppression de ce code :
'pour enlever la croix rouge d'un UF
Declare Function GetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long) As Long
Declare Function SetWindowLongA Lib "user32" _
(ByVal hwnd As Long, ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long
Declare Function FindWindowA Lib "user32" _
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Encore un grand merci.
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
10 janv. 2012 à 11:49
10 janv. 2012 à 11:49
Probablement que le niveau de cette démo est trop difficile pour toi pour le moment, tu pourras y revenir plus tard mais dans l'immédiat, pour remédier au problème que j'ai soulever plus haut, (pas de contrôle sur les cellules cliquées) donc montant imprévisible regarde si ce ne serait pas mieux avec l'exemple que j'ai mis dans un nouveau classeur
Attention, je n'ai rien fait dans le code et je n'ai fait que la colonne D, si ça t'intéresse je pourrais facilement l'adapter.
Tu dis.
Attention, je n'ai rien fait dans le code et je n'ai fait que la colonne D, si ça t'intéresse je pourrais facilement l'adapter.
Tu dis.
Darkam1
Messages postés
170
Date d'inscription
mardi 9 août 2011
Statut
Membre
Dernière intervention
22 février 2016
18
10 janv. 2012 à 12:58
10 janv. 2012 à 12:58
Oui effectivement je n'ai pas de grande connaissance en VBA. Je jetterai un oeil quand même.
Je viens de voir ce que tu as fait. C'est très intéressant. Si le temps te le permet, se sera avec joie. Pourrait tu ré-inclures sur le coté les indices (+1 +2 +4 -2..etc)
Tu vas t'y prendre comment ?
Merci bien.
Je viens de voir ce que tu as fait. C'est très intéressant. Si le temps te le permet, se sera avec joie. Pourrait tu ré-inclures sur le coté les indices (+1 +2 +4 -2..etc)
Tu vas t'y prendre comment ?
Merci bien.
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
10 janv. 2012 à 13:12
10 janv. 2012 à 13:12
Voir mon dernier poste.
Concernant l'affichage des..indices (+1 +2 +4 -2..etc) possible en ajoutant une colonne mais je pense que se serait contre-productif, l'utilisateur ne devrais pas savoir l'influence que sont choix va avoir sur le résultat final.
Maintenant je ferme, à ce soir.
Concernant l'affichage des..indices (+1 +2 +4 -2..etc) possible en ajoutant une colonne mais je pense que se serait contre-productif, l'utilisateur ne devrais pas savoir l'influence que sont choix va avoir sur le résultat final.
Maintenant je ferme, à ce soir.
Darkam1
Messages postés
170
Date d'inscription
mardi 9 août 2011
Statut
Membre
Dernière intervention
22 février 2016
18
10 janv. 2012 à 15:04
10 janv. 2012 à 15:04
Réponse juste.
Ok je verrais en fonction de mes besoins. Merci :)
Ok je verrais en fonction de mes besoins. Merci :)
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
10 janv. 2012 à 13:06
10 janv. 2012 à 13:06
Je doit partir mais pour pas te faire attendre au cas ou...
Nouveau classeur
Je n'ai fait que les lignes 27 à 48 de la colonne D
T'en fais pas pour les cellules avec des ## ou des chiffres je t'expliquerais après comment faire.
Si tu veux essayer de continuer..
Lier chaque Option avec la cellule de droite de la même ligne colonne D
Ruban Développeur >> cocher Mode Création
Clic droit sur un option >> Propriétés.
Repèrer la propriété LinkedCell et mettre l'adresse de la cellule.
Dans la colonne E copier les formules que j'ai mis dans l'exemple en adaptant les montant à afficher.
Nouveau classeur
Je n'ai fait que les lignes 27 à 48 de la colonne D
T'en fais pas pour les cellules avec des ## ou des chiffres je t'expliquerais après comment faire.
Si tu veux essayer de continuer..
Lier chaque Option avec la cellule de droite de la même ligne colonne D
Ruban Développeur >> cocher Mode Création
Clic droit sur un option >> Propriétés.
Repèrer la propriété LinkedCell et mettre l'adresse de la cellule.
Dans la colonne E copier les formules que j'ai mis dans l'exemple en adaptant les montant à afficher.
Darkam1
Messages postés
170
Date d'inscription
mardi 9 août 2011
Statut
Membre
Dernière intervention
22 février 2016
18
10 janv. 2012 à 14:31
10 janv. 2012 à 14:31
C'est juste excellent.
Du coup j'ai fait toute la colonne de 14 a 55.
Par contre je n'arrive pas a enlever les # ni a voir les vrais chiffres. Les chiffres apparaissent que si seulement on sélectionne la case.
De plus j'aurai une autre question :
Comme tu peux le voir sur la fiche; il est écrit en bas de page :
"Commentaires :
Une affaire 3 fois notée -2 doit être éliminée."
Du coup je voulais savoir via une fonction IF ; si l'utilisateur sélectionne 3 notes a -2 (que se soit ATTRAIT ou ATOUT) une cellule (proche du commentaire) écrivent : "Affaire éliminé" (Si possible en VBA que cette cellule clignote en rouge et blanc).
Amicalement
Très bon travail. Je continue de remplir les deux TOTAUX et puis ensuite je t'envoie le fichier pour que tu m'expliques comment enlever les #et afficher les vrais chiffres.
Du coup j'ai fait toute la colonne de 14 a 55.
Par contre je n'arrive pas a enlever les # ni a voir les vrais chiffres. Les chiffres apparaissent que si seulement on sélectionne la case.
De plus j'aurai une autre question :
Comme tu peux le voir sur la fiche; il est écrit en bas de page :
"Commentaires :
Une affaire 3 fois notée -2 doit être éliminée."
Du coup je voulais savoir via une fonction IF ; si l'utilisateur sélectionne 3 notes a -2 (que se soit ATTRAIT ou ATOUT) une cellule (proche du commentaire) écrivent : "Affaire éliminé" (Si possible en VBA que cette cellule clignote en rouge et blanc).
Amicalement
Très bon travail. Je continue de remplir les deux TOTAUX et puis ensuite je t'envoie le fichier pour que tu m'expliques comment enlever les #et afficher les vrais chiffres.
Darkam1
Messages postés
170
Date d'inscription
mardi 9 août 2011
Statut
Membre
Dernière intervention
22 février 2016
18
10 janv. 2012 à 17:41
10 janv. 2012 à 17:41
Comme tu peux le voir, ça fonctionne. J'ai masqué les cellules qui comprenaient des # (ou réduire).
Malgré mes recherches je n'arrive toujours pas à intégrer une fonction IF (voir ci-dessus) ainsi qu'un code qui fonctionne pour un clignotement. Apparemment le VBA ne gère pas le temps du coup il faut prendre en compte le temps de Windows..
Je te laisse regarder...
Ce n'est pas bien grave si tu ne trouves pas. Dans ce cas; il serait intéressant que si au minimum l'utilisateur prend 3 fois la note -2 alors afficher sur une cellule "ÉLIMINE".
Merci à toi
Malgré mes recherches je n'arrive toujours pas à intégrer une fonction IF (voir ci-dessus) ainsi qu'un code qui fonctionne pour un clignotement. Apparemment le VBA ne gère pas le temps du coup il faut prendre en compte le temps de Windows..
Je te laisse regarder...
Ce n'est pas bien grave si tu ne trouves pas. Dans ce cas; il serait intéressant que si au minimum l'utilisateur prend 3 fois la note -2 alors afficher sur une cellule "ÉLIMINE".
Merci à toi
Darkam1
Messages postés
170
Date d'inscription
mardi 9 août 2011
Statut
Membre
Dernière intervention
22 février 2016
18
10 janv. 2012 à 17:48
10 janv. 2012 à 17:48
Ci joint : https://www.cjoint.com/?BAkrKg1fOLw
lermite222
Messages postés
8702
Date d'inscription
dimanche 8 avril 2007
Statut
Contributeur
Dernière intervention
22 janvier 2020
1 190
11 janv. 2012 à 08:32
11 janv. 2012 à 08:32
Ton classeur
Le cumule du 3 et 4 est limité à 4 >> Fait
Met un troisième -2 pour voir.
Note : J'ai considéré que le -5 était inclus dans l'avertissement, si faut pas tu dis.
A+
Le cumule du 3 et 4 est limité à 4 >> Fait
Met un troisième -2 pour voir.
Note : J'ai considéré que le -5 était inclus dans l'avertissement, si faut pas tu dis.
A+
Darkam1
Messages postés
170
Date d'inscription
mardi 9 août 2011
Statut
Membre
Dernière intervention
22 février 2016
18
11 janv. 2012 à 09:22
11 janv. 2012 à 09:22
Il ne fallait pas considérer le -5 comme dans l'avertissement. J'ai pris le choix de le modifier moi même.
Sinon rien à dire excellent travail. La boîte d'erreur est très bien pensée.
A bientôt.
Sinon rien à dire excellent travail. La boîte d'erreur est très bien pensée.
A bientôt.
Darkam1
Messages postés
170
Date d'inscription
mardi 9 août 2011
Statut
Membre
Dernière intervention
22 février 2016
18
11 janv. 2012 à 09:59
11 janv. 2012 à 09:59
J'avais une autre question. Est-il possible qu'après avoir rempli les deux totaux "Atout Attrait", qu'une Msgbox apparaissent demandant si oui ou non l'utilisateur voudrait une sauvegarde de ça matrice de positionnement (Feuille 2). Ainsi, si l'utilisateur dit OUI, cela sauvegardera la matrice de positionnement à chaque fois qu'il le modifie. (Voir image)
Cela permettra de voir l'évolution de son étude.
Le plus intéressant serait qu'il y est une duplication du point avec la date en dessous :
https://www.cjoint.com/?BAlj2sbqwfu
J'ai pensé à une macro permettant une impression d'écran de la matrice de positionnement à chaque fois que l'utilisateur quitte la page Excel avec une copie de l'image dans une nouvelle feuille. Mais je ne trouve pas d'autre code qu'en 32 bits. De plus, je pense qu'il y'a d'autres solutions. Le graphique d'Excel peut prendre en compte les changements ?
Merci pour tout.
Option Explicit
Private Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
Private Sub commandButton1_Click()
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
Range("A1").Select
ActiveSheet.Paste
End Sub
Cela permettra de voir l'évolution de son étude.
Le plus intéressant serait qu'il y est une duplication du point avec la date en dessous :
https://www.cjoint.com/?BAlj2sbqwfu
J'ai pensé à une macro permettant une impression d'écran de la matrice de positionnement à chaque fois que l'utilisateur quitte la page Excel avec une copie de l'image dans une nouvelle feuille. Mais je ne trouve pas d'autre code qu'en 32 bits. De plus, je pense qu'il y'a d'autres solutions. Le graphique d'Excel peut prendre en compte les changements ?
Merci pour tout.
Option Explicit
Private Declare Sub keybd_event Lib "user32" ( _
ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, _
ByVal dwExtraInfo As Long)
Private Sub commandButton1_Click()
keybd_event vbKeySnapshot, 1, 0&, 0&
DoEvents
Range("A1").Select
ActiveSheet.Paste
End Sub