Besoin d'aide sous VBA pour excell
Résolu
isis1be
-
JvDo Messages postés 1978 Date d'inscription Statut Membre Dernière intervention -
JvDo Messages postés 1978 Date d'inscription Statut Membre Dernière intervention -
A voir également:
- Besoin d'aide sous VBA pour excell
- Excel compter cellule couleur sans vba - Guide
- Formule excel pour additionner plusieurs cellules - Guide
- Liste déroulante excell - Guide
- Incompatibilité de type vba ✓ - Forum VB / VBA
- Erreur 13 incompatibilité de type VBA excel ✓ - Forum Excel
4 réponses
bonsoir,
tiens-tu absolument à passer par VBA?
tu peux le faire directement dans excel avec la fonction recherchev.
si tu avais renseigné ton profil je t'aurais envoyé un classeur xls sur ta messagerie.
en attendant, mais ça va être un peu lourd, prend une feuille vierge, saisis le tableau suivant en I3:J9 :
0% peut mieux faire
50% c'est pas mal
60% c'est bien
70% c'est très bien
80% c'est extra
90% c'est super extra
100% ouaouhhh!!!
ensuite tu te fais une série par pas de 0,01 en partant de 0% jusqu'à 100% en B5:B105.
pour finir, tu met en C5 la formule =RECHERCHEV(B5;$I$3:$J$9;2;VRAI) et tu recopies vers le bas jusqu'en C105.
tu regardes le résultat et tu me dis si ça correspond à ce que tu veux faire.
A+
tiens-tu absolument à passer par VBA?
tu peux le faire directement dans excel avec la fonction recherchev.
si tu avais renseigné ton profil je t'aurais envoyé un classeur xls sur ta messagerie.
en attendant, mais ça va être un peu lourd, prend une feuille vierge, saisis le tableau suivant en I3:J9 :
0% peut mieux faire
50% c'est pas mal
60% c'est bien
70% c'est très bien
80% c'est extra
90% c'est super extra
100% ouaouhhh!!!
ensuite tu te fais une série par pas de 0,01 en partant de 0% jusqu'à 100% en B5:B105.
pour finir, tu met en C5 la formule =RECHERCHEV(B5;$I$3:$J$9;2;VRAI) et tu recopies vers le bas jusqu'en C105.
tu regardes le résultat et tu me dis si ça correspond à ce que tu veux faire.
A+
Salut JvDo
merci pour ta réponse mais je ne doit pas aller aussi loin, et oui je doit passer par VBA car c'est à partir d'une userform que je doit pouvoir encoder des noms et des résultat et à partir de là completer l'attestation.
La seule chose que je doit faire c'est aller de 50% à 100% par pallier de 10 et faire en sorte que si les points encoder dans la userform sont entre 50 et 60% il écrit sur l'attestation "satisfaction".
voiloa j'èspère que c'est assez clair.
p.s: j'ai renseigner mon mail dans mon profil
merci pour ta réponse mais je ne doit pas aller aussi loin, et oui je doit passer par VBA car c'est à partir d'une userform que je doit pouvoir encoder des noms et des résultat et à partir de là completer l'attestation.
La seule chose que je doit faire c'est aller de 50% à 100% par pallier de 10 et faire en sorte que si les points encoder dans la userform sont entre 50 et 60% il écrit sur l'attestation "satisfaction".
voiloa j'èspère que c'est assez clair.
p.s: j'ai renseigner mon mail dans mon profil
Bonjour,
si tu dois passer par un userform, c'est encore plus simple, tu n'as pas besoin de code :
dans ton userform, tu met une listbox POINTS que tu adosses à la zone I3:J7 de ta feuille de calcul (celle où se trouve l'attestation) et tu lui mets les propriétés suivantes :
points.BoundColumn = 2 'tu renvoies la 2ème colonne en A9
points.ColumnCount = 1 'tu n'affiche qu'une colonne
points.Columnhead = TRUE 'I2:J2 sert d'en-tête
points.Columnwidth = 59 pt 'là, rien à dire
points.ControlSource = "a9" ' la colonne 2 se mettra en A9
points.RowSource = "i3:j7" 'tableau source des données
points.textcolumn = 1 'c'est la colonne 1 qui sera retournée par points.text
la zone I2:J7 ressemble à ça :
Résultat Avis] 50 à 60% ] c'est bien
] 60 à 70% ] c'est très bien
] 70 à 80% ] c'est extra
] 80 à 90% ] c'est super extra
] 90 à 100% ] ouaouhhh!!!
Remarque : si tu mets les autres champs de ton userform en controlsource directement sur ton attestation, tu n'as plus besoin de code sauf pour ton bouton "imprime" (je suppose qu'il y en a un sur ton userform)
A+
si tu dois passer par un userform, c'est encore plus simple, tu n'as pas besoin de code :
dans ton userform, tu met une listbox POINTS que tu adosses à la zone I3:J7 de ta feuille de calcul (celle où se trouve l'attestation) et tu lui mets les propriétés suivantes :
points.BoundColumn = 2 'tu renvoies la 2ème colonne en A9
points.ColumnCount = 1 'tu n'affiche qu'une colonne
points.Columnhead = TRUE 'I2:J2 sert d'en-tête
points.Columnwidth = 59 pt 'là, rien à dire
points.ControlSource = "a9" ' la colonne 2 se mettra en A9
points.RowSource = "i3:j7" 'tableau source des données
points.textcolumn = 1 'c'est la colonne 1 qui sera retournée par points.text
la zone I2:J7 ressemble à ça :
Résultat Avis] 50 à 60% ] c'est bien
] 60 à 70% ] c'est très bien
] 70 à 80% ] c'est extra
] 80 à 90% ] c'est super extra
] 90 à 100% ] ouaouhhh!!!
Remarque : si tu mets les autres champs de ton userform en controlsource directement sur ton attestation, tu n'as plus besoin de code sauf pour ton bouton "imprime" (je suppose qu'il y en a un sur ton userform)
A+
Merçi pour le coup de main.
End If
If points.Value < 50 Then
Sheets("attestation").Cells(9, 1).Formula = "à échoué"
Range("A9").Select
Selection.Font.Bold = True
End If
If points.Value > 50 Then
Sheets("attestation").Cells(9, 1).Formula = "à reussi"
Range("A9").Select
Selection.Font.Bold = True